Merge branch 'develop' into feature/fga/room_directory
This commit is contained in:
@@ -23,8 +23,6 @@ appId: ${MAESTRO_APP_ID}
|
||||
- inputText: ${MAESTRO_PASSWORD}
|
||||
- pressKey: Enter
|
||||
- tapOn: "Continue"
|
||||
- runFlow: ../assertions/assertWelcomeScreenDisplayed.yaml
|
||||
- tapOn: "Continue"
|
||||
- runFlow: ../assertions/assertAnalyticsDisplayed.yaml
|
||||
- tapOn: "Not now"
|
||||
- runFlow: ../assertions/assertHomeDisplayed.yaml
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
appId: ${MAESTRO_APP_ID}
|
||||
---
|
||||
- extendedWaitUntil:
|
||||
visible:
|
||||
id: "welcome_screen-title"
|
||||
timeout: 10000
|
||||
20
CHANGES.md
20
CHANGES.md
@@ -1,3 +1,23 @@
|
||||
Changes in Element X v0.4.7 (2024-03-26)
|
||||
========================================
|
||||
|
||||
Features ✨
|
||||
----------
|
||||
- Enable the feature "RoomList filters". ([#2603](https://github.com/element-hq/element-x-android/issues/2603))
|
||||
- Enable the feature "Mark as unread" ([#2261](https://github.com/element-hq/element-x-android/issues/2261))
|
||||
- Implement MSC2530 (Body field as media caption) ([#2521](https://github.com/element-hq/element-x-android/issues/2521))
|
||||
|
||||
Bugfixes 🐛
|
||||
----------
|
||||
- Use user avatar from cache if available. ([#2488](https://github.com/element-hq/element-x-android/issues/2488))
|
||||
- Update member list after changing member roles and when the room member list is opened. ([#2590](https://github.com/element-hq/element-x-android/issues/2590))
|
||||
|
||||
Other changes
|
||||
-------------
|
||||
- Compound: add `BigIcon`, `BigCheckmark` and `PageTitle` components. ([#2574](https://github.com/element-hq/element-x-android/issues/2574))
|
||||
- Remove Welcome screen from the FTUE. ([#2584](https://github.com/element-hq/element-x-android/issues/2584))
|
||||
|
||||
|
||||
Changes in Element X v0.4.6 (2024-03-15)
|
||||
========================================
|
||||
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
Enable the feature "Mark as unread"
|
||||
@@ -1 +0,0 @@
|
||||
Use user avatar from cache if available.
|
||||
@@ -1 +0,0 @@
|
||||
Implement MSC2530 (Body field as media caption)
|
||||
@@ -1 +0,0 @@
|
||||
Compound: add `BigIcon`, `BigCheckmark` and `PageTitle` components.
|
||||
1
changelog.d/2608.misc
Normal file
1
changelog.d/2608.misc
Normal file
@@ -0,0 +1 @@
|
||||
Make completed poll more clearly visible
|
||||
1
changelog.d/2612.bugfix
Normal file
1
changelog.d/2612.bugfix
Normal file
@@ -0,0 +1 @@
|
||||
Fix analytics issue around room considered as space by mistake.
|
||||
2
fastlane/metadata/android/en-US/changelogs/40004070.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40004070.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Main changes in this version: Enable the feature "RoomList filters" and "Mark as unread".
|
||||
Full changelog: https://github.com/element-hq/element-x-android/releases
|
||||
@@ -36,7 +36,6 @@ import io.element.android.features.ftue.api.FtueEntryPoint
|
||||
import io.element.android.features.ftue.impl.notifications.NotificationsOptInNode
|
||||
import io.element.android.features.ftue.impl.state.DefaultFtueState
|
||||
import io.element.android.features.ftue.impl.state.FtueStep
|
||||
import io.element.android.features.ftue.impl.welcome.WelcomeNode
|
||||
import io.element.android.features.lockscreen.api.LockScreenEntryPoint
|
||||
import io.element.android.libraries.architecture.BackstackView
|
||||
import io.element.android.libraries.architecture.BaseFlowNode
|
||||
@@ -73,9 +72,6 @@ class FtueFlowNode @AssistedInject constructor(
|
||||
@Parcelize
|
||||
data object Placeholder : NavTarget
|
||||
|
||||
@Parcelize
|
||||
data object WelcomeScreen : NavTarget
|
||||
|
||||
@Parcelize
|
||||
data object NotificationsOptIn : NavTarget
|
||||
|
||||
@@ -110,15 +106,6 @@ class FtueFlowNode @AssistedInject constructor(
|
||||
NavTarget.Placeholder -> {
|
||||
createNode<PlaceholderNode>(buildContext)
|
||||
}
|
||||
NavTarget.WelcomeScreen -> {
|
||||
val callback = object : WelcomeNode.Callback {
|
||||
override fun onContinueClicked() {
|
||||
ftueState.setWelcomeScreenShown()
|
||||
lifecycleScope.launch { moveToNextStep() }
|
||||
}
|
||||
}
|
||||
createNode<WelcomeNode>(buildContext, listOf(callback))
|
||||
}
|
||||
NavTarget.NotificationsOptIn -> {
|
||||
val callback = object : NotificationsOptInNode.Callback {
|
||||
override fun onNotificationsOptInFinished() {
|
||||
@@ -146,9 +133,6 @@ class FtueFlowNode @AssistedInject constructor(
|
||||
|
||||
private fun moveToNextStep() {
|
||||
when (ftueState.getNextStep()) {
|
||||
FtueStep.WelcomeScreen -> {
|
||||
backstack.newRoot(NavTarget.WelcomeScreen)
|
||||
}
|
||||
FtueStep.NotificationsOptIn -> {
|
||||
backstack.newRoot(NavTarget.NotificationsOptIn)
|
||||
}
|
||||
|
||||
@@ -21,7 +21,6 @@ import android.os.Build
|
||||
import androidx.annotation.VisibleForTesting
|
||||
import com.squareup.anvil.annotations.ContributesBinding
|
||||
import io.element.android.features.ftue.api.state.FtueState
|
||||
import io.element.android.features.ftue.impl.welcome.state.WelcomeScreenState
|
||||
import io.element.android.features.lockscreen.api.LockScreenService
|
||||
import io.element.android.libraries.di.SessionScope
|
||||
import io.element.android.libraries.permissions.api.PermissionStateProvider
|
||||
@@ -40,14 +39,12 @@ class DefaultFtueState @Inject constructor(
|
||||
private val sdkVersionProvider: BuildVersionSdkIntProvider,
|
||||
coroutineScope: CoroutineScope,
|
||||
private val analyticsService: AnalyticsService,
|
||||
private val welcomeScreenState: WelcomeScreenState,
|
||||
private val permissionStateProvider: PermissionStateProvider,
|
||||
private val lockScreenService: LockScreenService,
|
||||
) : FtueState {
|
||||
override val shouldDisplayFlow = MutableStateFlow(isAnyStepIncomplete())
|
||||
|
||||
override suspend fun reset() {
|
||||
welcomeScreenState.reset()
|
||||
analyticsService.reset()
|
||||
if (sdkVersionProvider.isAtLeast(Build.VERSION_CODES.TIRAMISU)) {
|
||||
permissionStateProvider.resetPermission(Manifest.permission.POST_NOTIFICATIONS)
|
||||
@@ -62,12 +59,7 @@ class DefaultFtueState @Inject constructor(
|
||||
|
||||
fun getNextStep(currentStep: FtueStep? = null): FtueStep? =
|
||||
when (currentStep) {
|
||||
null -> if (shouldDisplayWelcomeScreen()) {
|
||||
FtueStep.WelcomeScreen
|
||||
} else {
|
||||
getNextStep(FtueStep.WelcomeScreen)
|
||||
}
|
||||
FtueStep.WelcomeScreen -> if (shouldAskNotificationPermissions()) {
|
||||
null -> if (shouldAskNotificationPermissions()) {
|
||||
FtueStep.NotificationsOptIn
|
||||
} else {
|
||||
getNextStep(FtueStep.NotificationsOptIn)
|
||||
@@ -87,7 +79,6 @@ class DefaultFtueState @Inject constructor(
|
||||
|
||||
private fun isAnyStepIncomplete(): Boolean {
|
||||
return listOf(
|
||||
{ shouldDisplayWelcomeScreen() },
|
||||
{ shouldAskNotificationPermissions() },
|
||||
{ needsAnalyticsOptIn() },
|
||||
{ shouldDisplayLockscreenSetup() },
|
||||
@@ -99,10 +90,6 @@ class DefaultFtueState @Inject constructor(
|
||||
return runBlocking { analyticsService.didAskUserConsent().first().not() }
|
||||
}
|
||||
|
||||
private fun shouldDisplayWelcomeScreen(): Boolean {
|
||||
return welcomeScreenState.isWelcomeScreenNeeded()
|
||||
}
|
||||
|
||||
private fun shouldAskNotificationPermissions(): Boolean {
|
||||
return if (sdkVersionProvider.isAtLeast(Build.VERSION_CODES.TIRAMISU)) {
|
||||
val permission = Manifest.permission.POST_NOTIFICATIONS
|
||||
@@ -120,11 +107,6 @@ class DefaultFtueState @Inject constructor(
|
||||
}
|
||||
}
|
||||
|
||||
fun setWelcomeScreenShown() {
|
||||
welcomeScreenState.setWelcomeScreenShown()
|
||||
updateState()
|
||||
}
|
||||
|
||||
@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
|
||||
internal fun updateState() {
|
||||
shouldDisplayFlow.value = isAnyStepIncomplete()
|
||||
@@ -132,7 +114,6 @@ class DefaultFtueState @Inject constructor(
|
||||
}
|
||||
|
||||
sealed interface FtueStep {
|
||||
data object WelcomeScreen : FtueStep
|
||||
data object NotificationsOptIn : FtueStep
|
||||
data object AnalyticsOptIn : FtueStep
|
||||
data object LockscreenSetup : FtueStep
|
||||
|
||||
@@ -20,7 +20,6 @@ import android.os.Build
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import io.element.android.features.ftue.impl.state.DefaultFtueState
|
||||
import io.element.android.features.ftue.impl.state.FtueStep
|
||||
import io.element.android.features.ftue.impl.welcome.state.FakeWelcomeState
|
||||
import io.element.android.features.lockscreen.api.LockScreenService
|
||||
import io.element.android.features.lockscreen.test.FakeLockScreenService
|
||||
import io.element.android.libraries.permissions.impl.FakePermissionStateProvider
|
||||
@@ -47,7 +46,6 @@ class DefaultFtueStateTests {
|
||||
|
||||
@Test
|
||||
fun `given all checks being true, should display flow is false`() = runTest {
|
||||
val welcomeState = FakeWelcomeState()
|
||||
val analyticsService = FakeAnalyticsService()
|
||||
val permissionStateProvider = FakePermissionStateProvider(permissionGranted = true)
|
||||
val lockScreenService = FakeLockScreenService()
|
||||
@@ -55,13 +53,11 @@ class DefaultFtueStateTests {
|
||||
|
||||
val state = createState(
|
||||
coroutineScope = coroutineScope,
|
||||
welcomeState = welcomeState,
|
||||
analyticsService = analyticsService,
|
||||
permissionStateProvider = permissionStateProvider,
|
||||
lockScreenService = lockScreenService,
|
||||
)
|
||||
|
||||
welcomeState.setWelcomeScreenShown()
|
||||
analyticsService.setDidAskUserConsent()
|
||||
permissionStateProvider.setPermissionGranted()
|
||||
lockScreenService.setIsPinSetup(true)
|
||||
@@ -75,7 +71,6 @@ class DefaultFtueStateTests {
|
||||
|
||||
@Test
|
||||
fun `traverse flow`() = runTest {
|
||||
val welcomeState = FakeWelcomeState()
|
||||
val analyticsService = FakeAnalyticsService()
|
||||
val permissionStateProvider = FakePermissionStateProvider(permissionGranted = false)
|
||||
val lockScreenService = FakeLockScreenService()
|
||||
@@ -83,26 +78,21 @@ class DefaultFtueStateTests {
|
||||
|
||||
val state = createState(
|
||||
coroutineScope = coroutineScope,
|
||||
welcomeState = welcomeState,
|
||||
analyticsService = analyticsService,
|
||||
permissionStateProvider = permissionStateProvider,
|
||||
lockScreenService = lockScreenService,
|
||||
)
|
||||
val steps = mutableListOf<FtueStep?>()
|
||||
|
||||
// First step, welcome screen
|
||||
steps.add(state.getNextStep(steps.lastOrNull()))
|
||||
welcomeState.setWelcomeScreenShown()
|
||||
|
||||
// Second step, notifications opt in
|
||||
// Notifications opt in
|
||||
steps.add(state.getNextStep(steps.lastOrNull()))
|
||||
permissionStateProvider.setPermissionGranted()
|
||||
|
||||
// Third step, entering PIN code
|
||||
// Entering PIN code
|
||||
steps.add(state.getNextStep(steps.lastOrNull()))
|
||||
lockScreenService.setIsPinSetup(true)
|
||||
|
||||
// Fourth step, analytics opt in
|
||||
// Analytics opt in
|
||||
steps.add(state.getNextStep(steps.lastOrNull()))
|
||||
analyticsService.setDidAskUserConsent()
|
||||
|
||||
@@ -110,7 +100,6 @@ class DefaultFtueStateTests {
|
||||
steps.add(state.getNextStep(steps.lastOrNull()))
|
||||
|
||||
assertThat(steps).containsExactly(
|
||||
FtueStep.WelcomeScreen,
|
||||
FtueStep.NotificationsOptIn,
|
||||
FtueStep.LockscreenSetup,
|
||||
FtueStep.AnalyticsOptIn,
|
||||
@@ -135,15 +124,14 @@ class DefaultFtueStateTests {
|
||||
lockScreenService = lockScreenService,
|
||||
)
|
||||
|
||||
// Skip first 3 steps
|
||||
state.setWelcomeScreenShown()
|
||||
// Skip first 2 steps
|
||||
permissionStateProvider.setPermissionGranted()
|
||||
lockScreenService.setIsPinSetup(true)
|
||||
|
||||
assertThat(state.getNextStep()).isEqualTo(FtueStep.AnalyticsOptIn)
|
||||
|
||||
analyticsService.setDidAskUserConsent()
|
||||
assertThat(state.getNextStep(FtueStep.WelcomeScreen)).isNull()
|
||||
assertThat(state.getNextStep(null)).isNull()
|
||||
|
||||
// Cleanup
|
||||
coroutineScope.cancel()
|
||||
@@ -162,14 +150,12 @@ class DefaultFtueStateTests {
|
||||
lockScreenService = lockScreenService,
|
||||
)
|
||||
|
||||
assertThat(state.getNextStep()).isEqualTo(FtueStep.WelcomeScreen)
|
||||
state.setWelcomeScreenShown()
|
||||
lockScreenService.setIsPinSetup(true)
|
||||
|
||||
assertThat(state.getNextStep()).isEqualTo(FtueStep.AnalyticsOptIn)
|
||||
|
||||
analyticsService.setDidAskUserConsent()
|
||||
assertThat(state.getNextStep(FtueStep.WelcomeScreen)).isNull()
|
||||
assertThat(state.getNextStep(null)).isNull()
|
||||
|
||||
// Cleanup
|
||||
coroutineScope.cancel()
|
||||
@@ -177,7 +163,6 @@ class DefaultFtueStateTests {
|
||||
|
||||
private fun createState(
|
||||
coroutineScope: CoroutineScope,
|
||||
welcomeState: FakeWelcomeState = FakeWelcomeState(),
|
||||
analyticsService: AnalyticsService = FakeAnalyticsService(),
|
||||
permissionStateProvider: FakePermissionStateProvider = FakePermissionStateProvider(permissionGranted = false),
|
||||
lockScreenService: LockScreenService = FakeLockScreenService(),
|
||||
@@ -187,7 +172,6 @@ class DefaultFtueStateTests {
|
||||
sdkVersionProvider = FakeBuildVersionSdkIntProvider(sdkIntVersion),
|
||||
coroutineScope = coroutineScope,
|
||||
analyticsService = analyticsService,
|
||||
welcomeScreenState = welcomeState,
|
||||
permissionStateProvider = permissionStateProvider,
|
||||
lockScreenService = lockScreenService,
|
||||
)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="leave_conversation_alert_subtitle">"Apakah Anda yakin ingin keluar dari percakapan ini? Percakapan ini tidak umum dan Anda tidak akan dapat bergabung lagi tanpa undangan."</string>
|
||||
<string name="leave_room_alert_empty_subtitle">"Apakah Anda yakin ingin meninggalkan ruangan ini? Anda adalah orang satu-satunya di sini. Jika Anda pergi, tidak akan ada yang bisa bergabung di masa depan, termasuk Anda."</string>
|
||||
<string name="leave_room_alert_private_subtitle">"Apakah Anda yakin ingin meninggalkan ruangan ini? Ruangan ini tidak umum dan Anda tidak akan dapat bergabung kembali tanpa undangan."</string>
|
||||
<string name="leave_room_alert_subtitle">"Apakah Anda yakin ingin meninggalkan ruangan?"</string>
|
||||
|
||||
@@ -50,6 +50,7 @@ dependencies {
|
||||
implementation(projects.libraries.testtags)
|
||||
implementation(projects.libraries.uiStrings)
|
||||
implementation(libs.androidx.browser)
|
||||
implementation(platform(libs.network.retrofit.bom))
|
||||
implementation(libs.network.retrofit)
|
||||
implementation(libs.serialization.json)
|
||||
api(projects.features.login.api)
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
<string name="screen_change_account_provider_subtitle">"Gunakan penyedia akun yang berbeda, seperti server pribadi Anda sendiri atau akun kerja."</string>
|
||||
<string name="screen_change_account_provider_title">"Ubah penyedia akun"</string>
|
||||
<string name="screen_change_server_error_invalid_homeserver">"Kami tidak dapat menjangkau server ini. Periksa apakah Anda telah memasukkan URL homeserver dengan benar. Jika URL sudah benar, hubungi administrator homeserver Anda untuk bantuan lebih lanjut."</string>
|
||||
<string name="screen_change_server_error_invalid_well_known">"Sliding sync tidak tersedia karena adanya masalah dalam berkas .well-known:
|
||||
%1$s"</string>
|
||||
<string name="screen_change_server_error_no_sliding_sync_message">"Server ini saat ini tidak mendukung sinkronisasi geser."</string>
|
||||
<string name="screen_change_server_form_header">"URL Homeserver"</string>
|
||||
<string name="screen_change_server_form_notice">"Anda hanya dapat terhubung ke server yang ada yang mendukung sinkronisasi geser. Admin homeserver Anda perlu mengaturnya. %1$s"</string>
|
||||
@@ -22,6 +24,7 @@
|
||||
<string name="screen_login_error_deactivated_account">"Akun ini telah dinonaktifkan."</string>
|
||||
<string name="screen_login_error_invalid_credentials">"Nama pengguna dan/atau kata sandi salah"</string>
|
||||
<string name="screen_login_error_invalid_user_id">"Ini bukan pengenal pengguna yang valid. Format yang diharapkan: \'@pengguna:homeserver.org\'"</string>
|
||||
<string name="screen_login_error_refresh_tokens">"Server ini diatur untuk menggunakan token penyegaran. Ini tidak didukung ketika menggunakan log masuk berbasis kata sandi."</string>
|
||||
<string name="screen_login_error_unsupported_authentication">"Homeserver yang dipilih tidak mendukung log masuk kata sandi atau OIDC. Silakan hubungi admin Anda atau pilih homeserver yang lain."</string>
|
||||
<string name="screen_login_form_header">"Masukkan detail Anda"</string>
|
||||
<string name="screen_login_subtitle">"Matrix adalah jaringan terbuka untuk komunikasi yang aman dan terdesentralisasi."</string>
|
||||
|
||||
@@ -40,4 +40,11 @@
|
||||
<plurals name="screen_room_timeline_state_changes">
|
||||
<item quantity="other">"%1$d perubahan ruangan"</item>
|
||||
</plurals>
|
||||
<plurals name="screen_room_typing_many_members">
|
||||
<item quantity="other">"%1$s, %2$s, dan %3$d lainnya"</item>
|
||||
</plurals>
|
||||
<plurals name="screen_room_typing_notification">
|
||||
<item quantity="other">"%1$s sedang mengetik"</item>
|
||||
</plurals>
|
||||
<string name="screen_room_typing_two_members">"%1$s dan %2$s"</string>
|
||||
</resources>
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
<string name="screen_room_attachment_text_formatting">"格式化文字"</string>
|
||||
<string name="screen_room_invite_again_alert_message">"您想要邀請他們回來嗎?"</string>
|
||||
<string name="screen_room_invite_again_alert_title">"此聊天室只有您一個人"</string>
|
||||
<string name="screen_room_mentions_at_room_subtitle">"通知整個聊天室"</string>
|
||||
<string name="screen_room_mentions_at_room_title">"所有人"</string>
|
||||
<string name="screen_room_retry_send_menu_send_again_action">"重傳"</string>
|
||||
<string name="screen_room_retry_send_menu_title">"無法傳送您的訊息"</string>
|
||||
|
||||
@@ -25,7 +25,7 @@ import io.element.android.libraries.matrix.api.poll.PollAnswer
|
||||
* @property isSelected whether the user has selected this answer.
|
||||
* @property isEnabled whether the answer can be voted.
|
||||
* @property isWinner whether this is the winner answer in the poll.
|
||||
* @property isDisclosed whether the votes for this answer should be disclosed.
|
||||
* @property showVotes whether the votes for this answer should be displayed.
|
||||
* @property votesCount the number of votes for this answer.
|
||||
* @property percentage the percentage of votes for this answer.
|
||||
*/
|
||||
@@ -34,7 +34,7 @@ data class PollAnswerItem(
|
||||
val isSelected: Boolean,
|
||||
val isEnabled: Boolean,
|
||||
val isWinner: Boolean,
|
||||
val isDisclosed: Boolean,
|
||||
val showVotes: Boolean,
|
||||
val votesCount: Int,
|
||||
val percentage: Float,
|
||||
)
|
||||
|
||||
@@ -41,6 +41,7 @@ import io.element.android.libraries.designsystem.theme.components.LinearProgress
|
||||
import io.element.android.libraries.designsystem.theme.components.Text
|
||||
import io.element.android.libraries.designsystem.theme.progressIndicatorTrackColor
|
||||
import io.element.android.libraries.designsystem.toEnabledColor
|
||||
import io.element.android.libraries.designsystem.utils.CommonDrawables
|
||||
import io.element.android.libraries.ui.strings.CommonPlurals
|
||||
|
||||
@Composable
|
||||
@@ -79,17 +80,36 @@ internal fun PollAnswerView(
|
||||
text = answerItem.answer.text,
|
||||
style = if (answerItem.isWinner) ElementTheme.typography.fontBodyLgMedium else ElementTheme.typography.fontBodyLgRegular,
|
||||
)
|
||||
if (answerItem.isDisclosed) {
|
||||
Text(
|
||||
modifier = Modifier.align(Alignment.Bottom),
|
||||
text = pluralStringResource(
|
||||
id = CommonPlurals.common_poll_votes_count,
|
||||
count = answerItem.votesCount,
|
||||
answerItem.votesCount
|
||||
),
|
||||
style = if (answerItem.isWinner) ElementTheme.typography.fontBodySmMedium else ElementTheme.typography.fontBodySmRegular,
|
||||
color = if (answerItem.isWinner) ElementTheme.colors.textPrimary else ElementTheme.colors.textSecondary,
|
||||
if (answerItem.showVotes) {
|
||||
val text = pluralStringResource(
|
||||
id = CommonPlurals.common_poll_votes_count,
|
||||
count = answerItem.votesCount,
|
||||
answerItem.votesCount
|
||||
)
|
||||
Row(
|
||||
modifier = Modifier.align(Alignment.Bottom),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
) {
|
||||
if (answerItem.isWinner) {
|
||||
Icon(
|
||||
resourceId = CommonDrawables.ic_winner,
|
||||
contentDescription = null,
|
||||
tint = ElementTheme.colors.iconAccentTertiary,
|
||||
)
|
||||
Spacer(modifier = Modifier.width(2.dp))
|
||||
Text(
|
||||
text = text,
|
||||
style = ElementTheme.typography.fontBodySmMedium,
|
||||
color = ElementTheme.colors.textPrimary,
|
||||
)
|
||||
} else {
|
||||
Text(
|
||||
text = text,
|
||||
style = ElementTheme.typography.fontBodySmRegular,
|
||||
color = ElementTheme.colors.textSecondary,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Spacer(modifier = Modifier.height(10.dp))
|
||||
@@ -98,7 +118,7 @@ internal fun PollAnswerView(
|
||||
color = if (answerItem.isWinner) ElementTheme.colors.textSuccessPrimary else answerItem.isEnabled.toEnabledColor(),
|
||||
progress = {
|
||||
when {
|
||||
answerItem.isDisclosed -> answerItem.percentage
|
||||
answerItem.showVotes -> answerItem.percentage
|
||||
answerItem.isSelected -> 1f
|
||||
else -> 0f
|
||||
}
|
||||
@@ -114,7 +134,7 @@ internal fun PollAnswerView(
|
||||
@Composable
|
||||
internal fun PollAnswerDisclosedNotSelectedPreview() = ElementPreview {
|
||||
PollAnswerView(
|
||||
answerItem = aPollAnswerItem(isDisclosed = true, isSelected = false),
|
||||
answerItem = aPollAnswerItem(showVotes = true, isSelected = false),
|
||||
)
|
||||
}
|
||||
|
||||
@@ -122,7 +142,7 @@ internal fun PollAnswerDisclosedNotSelectedPreview() = ElementPreview {
|
||||
@Composable
|
||||
internal fun PollAnswerDisclosedSelectedPreview() = ElementPreview {
|
||||
PollAnswerView(
|
||||
answerItem = aPollAnswerItem(isDisclosed = true, isSelected = true),
|
||||
answerItem = aPollAnswerItem(showVotes = true, isSelected = true),
|
||||
)
|
||||
}
|
||||
|
||||
@@ -130,7 +150,7 @@ internal fun PollAnswerDisclosedSelectedPreview() = ElementPreview {
|
||||
@Composable
|
||||
internal fun PollAnswerUndisclosedNotSelectedPreview() = ElementPreview {
|
||||
PollAnswerView(
|
||||
answerItem = aPollAnswerItem(isDisclosed = false, isSelected = false),
|
||||
answerItem = aPollAnswerItem(showVotes = false, isSelected = false),
|
||||
)
|
||||
}
|
||||
|
||||
@@ -138,7 +158,7 @@ internal fun PollAnswerUndisclosedNotSelectedPreview() = ElementPreview {
|
||||
@Composable
|
||||
internal fun PollAnswerUndisclosedSelectedPreview() = ElementPreview {
|
||||
PollAnswerView(
|
||||
answerItem = aPollAnswerItem(isDisclosed = false, isSelected = true),
|
||||
answerItem = aPollAnswerItem(showVotes = false, isSelected = true),
|
||||
)
|
||||
}
|
||||
|
||||
@@ -146,7 +166,7 @@ internal fun PollAnswerUndisclosedSelectedPreview() = ElementPreview {
|
||||
@Composable
|
||||
internal fun PollAnswerEndedWinnerNotSelectedPreview() = ElementPreview {
|
||||
PollAnswerView(
|
||||
answerItem = aPollAnswerItem(isDisclosed = true, isSelected = false, isEnabled = false, isWinner = true),
|
||||
answerItem = aPollAnswerItem(showVotes = true, isSelected = false, isEnabled = false, isWinner = true),
|
||||
)
|
||||
}
|
||||
|
||||
@@ -154,7 +174,7 @@ internal fun PollAnswerEndedWinnerNotSelectedPreview() = ElementPreview {
|
||||
@Composable
|
||||
internal fun PollAnswerEndedWinnerSelectedPreview() = ElementPreview {
|
||||
PollAnswerView(
|
||||
answerItem = aPollAnswerItem(isDisclosed = true, isSelected = true, isEnabled = false, isWinner = true),
|
||||
answerItem = aPollAnswerItem(showVotes = true, isSelected = true, isEnabled = false, isWinner = true),
|
||||
)
|
||||
}
|
||||
|
||||
@@ -162,6 +182,6 @@ internal fun PollAnswerEndedWinnerSelectedPreview() = ElementPreview {
|
||||
@Composable
|
||||
internal fun PollAnswerEndedSelectedPreview() = ElementPreview {
|
||||
PollAnswerView(
|
||||
answerItem = aPollAnswerItem(isDisclosed = true, isSelected = true, isEnabled = false, isWinner = false),
|
||||
answerItem = aPollAnswerItem(showVotes = true, isSelected = true, isEnabled = false, isWinner = false),
|
||||
)
|
||||
}
|
||||
|
||||
@@ -27,11 +27,11 @@ fun aPollQuestion() = "What type of food should we have at the party?"
|
||||
fun aPollAnswerItemList(
|
||||
hasVotes: Boolean = true,
|
||||
isEnded: Boolean = false,
|
||||
isDisclosed: Boolean = true,
|
||||
showVotes: Boolean = true,
|
||||
) = persistentListOf(
|
||||
aPollAnswerItem(
|
||||
answer = PollAnswer("option_1", "Italian \uD83C\uDDEE\uD83C\uDDF9"),
|
||||
isDisclosed = isDisclosed,
|
||||
showVotes = showVotes,
|
||||
isEnabled = !isEnded,
|
||||
isWinner = isEnded,
|
||||
votesCount = if (hasVotes) 5 else 0,
|
||||
@@ -39,7 +39,7 @@ fun aPollAnswerItemList(
|
||||
),
|
||||
aPollAnswerItem(
|
||||
answer = PollAnswer("option_2", "Chinese \uD83C\uDDE8\uD83C\uDDF3"),
|
||||
isDisclosed = isDisclosed,
|
||||
showVotes = showVotes,
|
||||
isEnabled = !isEnded,
|
||||
isWinner = false,
|
||||
votesCount = 0,
|
||||
@@ -47,7 +47,7 @@ fun aPollAnswerItemList(
|
||||
),
|
||||
aPollAnswerItem(
|
||||
answer = PollAnswer("option_3", "Brazilian \uD83C\uDDE7\uD83C\uDDF7"),
|
||||
isDisclosed = isDisclosed,
|
||||
showVotes = showVotes,
|
||||
isEnabled = !isEnded,
|
||||
isWinner = false,
|
||||
isSelected = true,
|
||||
@@ -55,7 +55,7 @@ fun aPollAnswerItemList(
|
||||
percentage = if (hasVotes) 0.1f else 0f
|
||||
),
|
||||
aPollAnswerItem(
|
||||
isDisclosed = isDisclosed,
|
||||
showVotes = showVotes,
|
||||
isEnabled = !isEnded,
|
||||
votesCount = if (hasVotes) 4 else 0,
|
||||
percentage = if (hasVotes) 0.4f else 0f,
|
||||
@@ -70,7 +70,7 @@ fun aPollAnswerItem(
|
||||
isSelected: Boolean = false,
|
||||
isEnabled: Boolean = true,
|
||||
isWinner: Boolean = false,
|
||||
isDisclosed: Boolean = true,
|
||||
showVotes: Boolean = true,
|
||||
votesCount: Int = 4,
|
||||
percentage: Float = 0.4f,
|
||||
) = PollAnswerItem(
|
||||
@@ -78,7 +78,7 @@ fun aPollAnswerItem(
|
||||
isSelected = isSelected,
|
||||
isEnabled = isEnabled,
|
||||
isWinner = isWinner,
|
||||
isDisclosed = isDisclosed,
|
||||
showVotes = showVotes,
|
||||
votesCount = votesCount,
|
||||
percentage = percentage
|
||||
)
|
||||
@@ -87,14 +87,14 @@ fun aPollContentState(
|
||||
eventId: EventId? = null,
|
||||
isMine: Boolean = false,
|
||||
isEnded: Boolean = false,
|
||||
isDisclosed: Boolean = true,
|
||||
showVotes: Boolean = true,
|
||||
isPollEditable: Boolean = true,
|
||||
hasVotes: Boolean = true,
|
||||
question: String = aPollQuestion(),
|
||||
pollKind: PollKind = PollKind.Disclosed,
|
||||
answerItems: ImmutableList<PollAnswerItem> = aPollAnswerItemList(
|
||||
isEnded = isEnded,
|
||||
isDisclosed = isDisclosed,
|
||||
showVotes = showVotes,
|
||||
hasVotes = hasVotes
|
||||
),
|
||||
) = PollContentState(
|
||||
|
||||
@@ -245,7 +245,7 @@ internal fun PollContentUndisclosedPreview() = ElementPreview {
|
||||
PollContentView(
|
||||
eventId = EventId("\$anEventId"),
|
||||
question = "What type of food should we have at the party?",
|
||||
answerItems = aPollAnswerItemList(isDisclosed = false),
|
||||
answerItems = aPollAnswerItemList(showVotes = false),
|
||||
pollKind = PollKind.Undisclosed,
|
||||
isPollEnded = false,
|
||||
isPollEditable = false,
|
||||
|
||||
@@ -60,7 +60,7 @@ class DefaultPollContentStateFactory @Inject constructor(
|
||||
isSelected = isSelected,
|
||||
isEnabled = !isPollEnded,
|
||||
isWinner = isWinner,
|
||||
isDisclosed = content.kind.isDisclosed || isPollEnded,
|
||||
showVotes = content.kind.isDisclosed || isPollEnded,
|
||||
votesCount = answerVoteCount,
|
||||
percentage = percentage,
|
||||
)
|
||||
|
||||
@@ -131,7 +131,7 @@ class PollContentStateFactoryTest {
|
||||
val state = factory.create(eventTimelineItem, aPollContent(PollKind.Undisclosed))
|
||||
val expectedState = aPollContentState(pollKind = PollKind.Undisclosed).let {
|
||||
it.copy(
|
||||
answerItems = it.answerItems.map { answerItem -> answerItem.copy(isDisclosed = false) }.toImmutableList()
|
||||
answerItems = it.answerItems.map { answerItem -> answerItem.copy(showVotes = false) }.toImmutableList()
|
||||
)
|
||||
}
|
||||
assertThat(state).isEqualTo(expectedState)
|
||||
@@ -147,10 +147,10 @@ class PollContentStateFactoryTest {
|
||||
val expectedState = aPollContentState(
|
||||
pollKind = PollKind.Undisclosed,
|
||||
answerItems = listOf(
|
||||
aPollAnswerItem(answer = A_POLL_ANSWER_1, isDisclosed = false, votesCount = 3, percentage = 0.3f),
|
||||
aPollAnswerItem(answer = A_POLL_ANSWER_2, isDisclosed = false, isSelected = true, votesCount = 6, percentage = 0.6f),
|
||||
aPollAnswerItem(answer = A_POLL_ANSWER_3, isDisclosed = false),
|
||||
aPollAnswerItem(answer = A_POLL_ANSWER_4, isDisclosed = false, votesCount = 1, percentage = 0.1f),
|
||||
aPollAnswerItem(answer = A_POLL_ANSWER_1, showVotes = false, votesCount = 3, percentage = 0.3f),
|
||||
aPollAnswerItem(answer = A_POLL_ANSWER_2, showVotes = false, isSelected = true, votesCount = 6, percentage = 0.6f),
|
||||
aPollAnswerItem(answer = A_POLL_ANSWER_3, showVotes = false),
|
||||
aPollAnswerItem(answer = A_POLL_ANSWER_4, showVotes = false, votesCount = 1, percentage = 0.1f),
|
||||
),
|
||||
)
|
||||
assertThat(state).isEqualTo(expectedState)
|
||||
@@ -164,7 +164,7 @@ class PollContentStateFactoryTest {
|
||||
pollKind = PollKind.Undisclosed
|
||||
).let {
|
||||
it.copy(
|
||||
answerItems = it.answerItems.map { answerItem -> answerItem.copy(isDisclosed = true, isEnabled = false) }.toImmutableList(),
|
||||
answerItems = it.answerItems.map { answerItem -> answerItem.copy(showVotes = true, isEnabled = false) }.toImmutableList(),
|
||||
)
|
||||
}
|
||||
assertThat(state).isEqualTo(expectedState)
|
||||
@@ -258,7 +258,7 @@ class PollContentStateFactoryTest {
|
||||
isSelected: Boolean = false,
|
||||
isEnabled: Boolean = true,
|
||||
isWinner: Boolean = false,
|
||||
isDisclosed: Boolean = true,
|
||||
showVotes: Boolean = true,
|
||||
votesCount: Int = 0,
|
||||
percentage: Float = 0f,
|
||||
) = PollAnswerItem(
|
||||
@@ -266,7 +266,7 @@ class PollContentStateFactoryTest {
|
||||
isSelected = isSelected,
|
||||
isEnabled = isEnabled,
|
||||
isWinner = isWinner,
|
||||
isDisclosed = isDisclosed,
|
||||
showVotes = showVotes,
|
||||
votesCount = votesCount,
|
||||
percentage = percentage,
|
||||
)
|
||||
|
||||
@@ -6,10 +6,16 @@
|
||||
<string name="screen_advanced_settings_element_call_base_url_description">"Tetapkan URL dasar khusus untuk Element Call."</string>
|
||||
<string name="screen_advanced_settings_element_call_base_url_validation_error">"URL tidak valid, pastikan Anda menyertakan protokol (http/https) dan alamat yang benar."</string>
|
||||
<string name="screen_advanced_settings_rich_text_editor_description">"Nonaktifkan penyunting teks kaya untuk mengetik Markdown secara manual."</string>
|
||||
<string name="screen_advanced_settings_send_read_receipts">"Laporan dibaca"</string>
|
||||
<string name="screen_advanced_settings_send_read_receipts_description">"Jika dimatikan, laporan dibaca Anda tidak akan dikirim kepada siapa pun. Anda masih akan menerima laporan dibaca dari pengguna lain."</string>
|
||||
<string name="screen_advanced_settings_share_presence">"Bagikan presensi"</string>
|
||||
<string name="screen_advanced_settings_share_presence_description">"Jika dimatikan, Anda tidak akan dapat mengirim atau menerima laporan dibaca atau notifikasi pengetikan"</string>
|
||||
<string name="screen_advanced_settings_view_source_description">"Aktifkan opsi untuk melihat sumber pesan dalam lini masa."</string>
|
||||
<string name="screen_blocked_users_empty">"Anda tidak memiliki pengguna yang diblokir"</string>
|
||||
<string name="screen_blocked_users_unblock_alert_action">"Buka blokir"</string>
|
||||
<string name="screen_blocked_users_unblock_alert_description">"Anda akan dapat melihat semua pesan dari mereka lagi."</string>
|
||||
<string name="screen_blocked_users_unblock_alert_title">"Buka blokir pengguna"</string>
|
||||
<string name="screen_blocked_users_unblocking">"Membatalkan pemblokiran…"</string>
|
||||
<string name="screen_edit_profile_display_name">"Nama tampilan"</string>
|
||||
<string name="screen_edit_profile_display_name_placeholder">"Nama tampilan Anda"</string>
|
||||
<string name="screen_edit_profile_error">"Terjadi kesalahan yang tidak diketahui dan informasi tidak dapat diubah."</string>
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="crash_detection_dialog_content">"Пры апошнім выкарыстанні %1$s адбыўся збой. Жадаеце падзяліцца справаздачай аб збоі?"</string>
|
||||
<string name="rageshake_detection_dialog_content">"Падобна, што вы трасеце тэлефон. Жадаеце адкрыць экран паведамлення пра памылку?"</string>
|
||||
<string name="settings_rageshake">"Rageshake"</string>
|
||||
<string name="settings_rageshake_detection_threshold">"Парог выяўлення"</string>
|
||||
</resources>
|
||||
|
||||
@@ -7,9 +7,11 @@
|
||||
<string name="screen_bug_report_editor_description">"Silakan jelaskan masalah tersebut. Apa yang Anda lakukan? Apa yang Anda harapkan untuk terjadi? Apa yang sebenarnya terjadi? Jelaskan sedetail mungkin."</string>
|
||||
<string name="screen_bug_report_editor_placeholder">"Jelaskan masalah tersebut…"</string>
|
||||
<string name="screen_bug_report_editor_supporting">"Jika memungkinkan, silakan tulis deskripsi dalam bahasa Inggris."</string>
|
||||
<string name="screen_bug_report_error_description_too_short">"Deskripsinya terlalu pendek, silakan menyediakan detail tambahan tentang apa yang terjadi. Terima kasih!"</string>
|
||||
<string name="screen_bug_report_include_crash_logs">"Kirim log kerusakan"</string>
|
||||
<string name="screen_bug_report_include_logs">"Izinkan log"</string>
|
||||
<string name="screen_bug_report_include_screenshot">"Kirim tangkapan layar"</string>
|
||||
<string name="screen_bug_report_logs_description">"Log akan disertakan dengan pesan Anda untuk memastikan bahwa semuanya berfungsi dengan baik. Untuk mengirimkan pesan Anda tanpa log, matikan pengaturan ini."</string>
|
||||
<string name="screen_bug_report_rash_logs_alert_title">"%1$s mengalami kemogokan saat terakhir kali digunakan. Apakah Anda ingin berbagi laporan kerusakan dengan kami?"</string>
|
||||
<string name="screen_bug_report_view_logs">"Tampilkan catatan"</string>
|
||||
</resources>
|
||||
|
||||
@@ -178,7 +178,7 @@ fun RoomDetailsView(
|
||||
|
||||
if (state.displayRolesAndPermissionsSettings) {
|
||||
ListItem(
|
||||
headlineContent = { Text("Roles and permissions") },
|
||||
headlineContent = { Text(stringResource(R.string.screen_room_details_roles_and_permissions)) },
|
||||
leadingContent = ListItemContent.Icon(IconSource.Vector(CompoundIcons.Admin())),
|
||||
onClick = openAdminSettings,
|
||||
)
|
||||
|
||||
@@ -30,11 +30,13 @@ class RoomMemberListDataSource @Inject constructor(
|
||||
) {
|
||||
suspend fun search(query: String): List<RoomMember> = withContext(coroutineDispatchers.io) {
|
||||
val roomMembersState = room.membersStateFlow.value
|
||||
val roomMembers = roomMembersState.roomMembers().orEmpty()
|
||||
val activeRoomMembers = roomMembersState.roomMembers()
|
||||
?.filter { it.membership.isActive() }
|
||||
.orEmpty()
|
||||
val filteredMembers = if (query.isBlank()) {
|
||||
roomMembers
|
||||
activeRoomMembers
|
||||
} else {
|
||||
roomMembers.filter { member ->
|
||||
activeRoomMembers.filter { member ->
|
||||
member.userId.value.contains(query, ignoreCase = true) ||
|
||||
member.displayName?.contains(query, ignoreCase = true).orFalse()
|
||||
}
|
||||
|
||||
@@ -84,6 +84,11 @@ class RoomMemberListPresenter @AssistedInject constructor(
|
||||
remember { roomMembersModerationPresenter.dummyState() }
|
||||
}
|
||||
|
||||
// Ensure we load the latest data when entering this screen
|
||||
LaunchedEffect(Unit) {
|
||||
room.updateMembers()
|
||||
}
|
||||
|
||||
LaunchedEffect(membersState) {
|
||||
if (membersState is MatrixRoomMembersState.Unknown) {
|
||||
return@LaunchedEffect
|
||||
|
||||
@@ -216,6 +216,8 @@ class ChangeRolesPresenter @AssistedInject constructor(
|
||||
}
|
||||
.onSuccess {
|
||||
saveState.value = AsyncAction.Success(Unit)
|
||||
// Asynchronously reload the room members
|
||||
launch { room.updateMembers() }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,6 +30,8 @@
|
||||
<string name="screen_room_change_role_confirm_demote_self_description">"Вы не зможаце адмяніць гэтае змяненне, бо паніжаеце сябе. Калі вы апошні адміністратар у пакоі, вярнуць права будзе немагчыма."</string>
|
||||
<string name="screen_room_change_role_confirm_demote_self_title">"Панізіць сябе?"</string>
|
||||
<string name="screen_room_change_role_moderators_title">"Рэдагаваць мадэратараў"</string>
|
||||
<string name="screen_room_change_role_unsaved_changes_description">"У вас ёсць незахаваныя змены."</string>
|
||||
<string name="screen_room_change_role_unsaved_changes_title">"Захаваць змены?"</string>
|
||||
<string name="screen_room_details_add_topic_title">"Дадаць тэму"</string>
|
||||
<string name="screen_room_details_already_a_member">"Ужо ўдзельнік"</string>
|
||||
<string name="screen_room_details_already_invited">"Ужо запрасілі"</string>
|
||||
@@ -56,27 +58,29 @@
|
||||
<string name="screen_room_member_list_ban_member_confirmation_action">"Заблакіраваць"</string>
|
||||
<string name="screen_room_member_list_ban_member_confirmation_description">"Яны не змогуць зноў далучыцца да гэтага пакоя, калі іх запросяць."</string>
|
||||
<string name="screen_room_member_list_ban_member_confirmation_title">"Вы ўпэўнены, што хочаце заблакіраваць гэтага карыстальніка?"</string>
|
||||
<string name="screen_room_member_list_banned_empty">"У гэтым пакоі няма заблакіраваных удзельнікаў."</string>
|
||||
<string name="screen_room_member_list_banning_user">"Блакіроўка %1$s"</string>
|
||||
<plurals name="screen_room_member_list_header_title">
|
||||
<item quantity="one">"%1$d карыстальнік"</item>
|
||||
<item quantity="few">"%1$d карыстальнікаў"</item>
|
||||
<item quantity="many">"%1$d карыстальнікаў"</item>
|
||||
</plurals>
|
||||
<string name="screen_room_member_list_manage_member_remove">"Выдаліць удзельніка"</string>
|
||||
<string name="screen_room_member_list_manage_member_ban">"Выдаліць і заблакіраваць удзельніка"</string>
|
||||
<string name="screen_room_member_list_manage_member_remove">"Выдаліць удзельніка з пакоя"</string>
|
||||
<string name="screen_room_member_list_manage_member_remove_confirmation_ban">"Выдаліць і заблакіраваць удзельніка"</string>
|
||||
<string name="screen_room_member_list_manage_member_remove_confirmation_kick">"Толькі выдаліць удзельніка"</string>
|
||||
<string name="screen_room_member_list_manage_member_remove_confirmation_title">"Выдаліць удзельніка і забараніць далучацца ў будучыні?"</string>
|
||||
<string name="screen_room_member_list_manage_member_unban_action">"Разблакіраваць"</string>
|
||||
<string name="screen_room_member_list_manage_member_unban_message">"Яны змогуць зноў далучыцца да гэтага пакоя, калі іх запросяць."</string>
|
||||
<string name="screen_room_member_list_manage_member_unban_title">"Разблакіраваць карыстальніка"</string>
|
||||
<string name="screen_room_member_list_manage_member_user_info">"Інфармацыю пра карыстальніка"</string>
|
||||
<string name="screen_room_member_list_manage_member_unban_title">"Разблакіраваць удзельніка"</string>
|
||||
<string name="screen_room_member_list_manage_member_user_info">"Інфармацыя пра ўдзельніка"</string>
|
||||
<string name="screen_room_member_list_mode_banned">"Заблакіраваны"</string>
|
||||
<string name="screen_room_member_list_mode_members">"Удзельнікі"</string>
|
||||
<string name="screen_room_member_list_pending_header_title">"У чаканні"</string>
|
||||
<string name="screen_room_member_list_removing_user">"Выдаленне %1$s …"</string>
|
||||
<string name="screen_room_member_list_role_administrator">"Адміністратар"</string>
|
||||
<string name="screen_room_member_list_role_moderator">"Мадэратар"</string>
|
||||
<string name="screen_room_member_list_room_members_header_title">"Карыстальнікі пакоя"</string>
|
||||
<string name="screen_room_member_list_room_members_header_title">"Удзельнікі пакоя"</string>
|
||||
<string name="screen_room_member_list_unbanning_user">"Разблакіроўка %1$s"</string>
|
||||
<string name="screen_room_notification_settings_allow_custom">"Дазволіць карыстальніцкую наладу"</string>
|
||||
<string name="screen_room_notification_settings_allow_custom_footnote">"Калі гэта ўключыць, ваша налада па змаўчанні будзе адменена"</string>
|
||||
@@ -93,11 +97,16 @@
|
||||
<string name="screen_room_notification_settings_mode_mentions_and_keywords">"Толькі згадванні і ключавыя словы"</string>
|
||||
<string name="screen_room_notification_settings_room_custom_settings_title">"У гэтым пакоі паведаміце мяне пра"</string>
|
||||
<string name="screen_room_roles_and_permissions_admins">"Адміністратары"</string>
|
||||
<string name="screen_room_roles_and_permissions_change_my_role">"Змяніць маю роль"</string>
|
||||
<string name="screen_room_roles_and_permissions_change_role_demote_to_member">"Панізіць да ўдзельніка"</string>
|
||||
<string name="screen_room_roles_and_permissions_change_role_demote_to_moderator">"Панізіць да мадэратара"</string>
|
||||
<string name="screen_room_roles_and_permissions_member_moderation">"Мадэрацыя ўдзельнікаў"</string>
|
||||
<string name="screen_room_roles_and_permissions_messages_and_content">"Паведамленні і змест"</string>
|
||||
<string name="screen_room_roles_and_permissions_moderators">"Мадэратары"</string>
|
||||
<string name="screen_room_roles_and_permissions_permissions_header">"Дазволы"</string>
|
||||
<string name="screen_room_roles_and_permissions_reset">"Скінуць дазволы"</string>
|
||||
<string name="screen_room_roles_and_permissions_reset_confirm_description">"Пасля скіду дазволаў вы страціце бягучыя налады."</string>
|
||||
<string name="screen_room_roles_and_permissions_reset_confirm_title">"Скінуць дазволы?"</string>
|
||||
<string name="screen_room_roles_and_permissions_roles_header">"Ролі"</string>
|
||||
<string name="screen_room_roles_and_permissions_room_details">"Дэталі пакоя"</string>
|
||||
<string name="screen_room_roles_and_permissions_title">"Ролі і дазволы"</string>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<string name="screen_polls_history_title">"Umfragen"</string>
|
||||
<string name="screen_room_change_permissions_administrators">"Nur Administratoren"</string>
|
||||
<string name="screen_room_change_permissions_ban_people">"Mitglieder sperren"</string>
|
||||
<string name="screen_room_change_permissions_delete_messages">"Nachrichten löschen"</string>
|
||||
<string name="screen_room_change_permissions_delete_messages">"Nachrichten anderer Mitgliedern löschen"</string>
|
||||
<string name="screen_room_change_permissions_everyone">"Alle"</string>
|
||||
<string name="screen_room_change_permissions_invite_people">"Personen einladen"</string>
|
||||
<string name="screen_room_change_permissions_member_moderation">"Moderation der Mitglieder"</string>
|
||||
|
||||
@@ -103,9 +103,9 @@
|
||||
<string name="screen_room_roles_and_permissions_messages_and_content">"Messages et contenus"</string>
|
||||
<string name="screen_room_roles_and_permissions_moderators">"Modérateurs"</string>
|
||||
<string name="screen_room_roles_and_permissions_permissions_header">"Autorisations"</string>
|
||||
<string name="screen_room_roles_and_permissions_reset">"Réinitialisation des permissions"</string>
|
||||
<string name="screen_room_roles_and_permissions_reset_confirm_description">"La réinitialisation des permissions entraîne la perte des réglages actuels."</string>
|
||||
<string name="screen_room_roles_and_permissions_reset_confirm_title">"Réinitialisation des permissions?"</string>
|
||||
<string name="screen_room_roles_and_permissions_reset">"Réinitialisation des autorisations"</string>
|
||||
<string name="screen_room_roles_and_permissions_reset_confirm_description">"La réinitialisation des autorisations entraîne la perte des réglages actuels."</string>
|
||||
<string name="screen_room_roles_and_permissions_reset_confirm_title">"Réinitialisation des autorisations?"</string>
|
||||
<string name="screen_room_roles_and_permissions_roles_header">"Rôles"</string>
|
||||
<string name="screen_room_roles_and_permissions_room_details">"Détails du salon"</string>
|
||||
<string name="screen_room_roles_and_permissions_title">"Rôles et autorisations"</string>
|
||||
|
||||
@@ -9,7 +9,29 @@
|
||||
<string name="screen_notification_settings_edit_failed_updating_default_mode">"Terjadi kesalahan saat memperbarui pengaturan pemberitahuan."</string>
|
||||
<string name="screen_notification_settings_mentions_only_disclaimer">"Homeserver Anda tidak mendukung opsi ini dalam ruangan terenkripsi, Anda mungkin tidak diberi tahu dalam beberapa ruangan."</string>
|
||||
<string name="screen_polls_history_title">"Pemungutan suara"</string>
|
||||
<string name="screen_room_change_permissions_administrators">"Hanya admin"</string>
|
||||
<string name="screen_room_change_permissions_ban_people">"Cekal orang-orang"</string>
|
||||
<string name="screen_room_change_permissions_delete_messages">"Hapus pesan"</string>
|
||||
<string name="screen_room_change_permissions_everyone">"Semua orang"</string>
|
||||
<string name="screen_room_change_permissions_invite_people">"Undang orang-orang"</string>
|
||||
<string name="screen_room_change_permissions_member_moderation">"Moderasi anggota"</string>
|
||||
<string name="screen_room_change_permissions_messages_and_content">"Pesan dan konten"</string>
|
||||
<string name="screen_room_change_permissions_moderators">"Admin dan moderator"</string>
|
||||
<string name="screen_room_change_permissions_remove_people">"Keluarkan orang-orang"</string>
|
||||
<string name="screen_room_change_permissions_room_avatar">"Ubah avatar ruangan"</string>
|
||||
<string name="screen_room_change_permissions_room_details">"Detail ruangan"</string>
|
||||
<string name="screen_room_change_permissions_room_name">"Ubah nama ruangan"</string>
|
||||
<string name="screen_room_change_permissions_room_topic">"Ubah topik ruangan"</string>
|
||||
<string name="screen_room_change_permissions_send_messages">"Kirim pesan"</string>
|
||||
<string name="screen_room_change_role_administrators_title">"Sunting Admin"</string>
|
||||
<string name="screen_room_change_role_confirm_add_admin_description">"Anda tidak akan dapat mengurungkan tindakan ini. Anda mempromosikan pengguna untuk memiliki tingkat daya yang sama seperti Anda."</string>
|
||||
<string name="screen_room_change_role_confirm_add_admin_title">"Tambahkan Admin?"</string>
|
||||
<string name="screen_room_change_role_confirm_demote_self_action">"Turunkan"</string>
|
||||
<string name="screen_room_change_role_confirm_demote_self_description">"Anda tidak akan dapat mengurungkan perubahan ini karena Anda sedang menurunkan Anda sendiri, jika Anda merupakan pengguna dengan hak khusus dalam ruangan maka tidak akan memungkinkan untuk mendapatkan hak tersebut lagi."</string>
|
||||
<string name="screen_room_change_role_confirm_demote_self_title">"Turunkan Anda sendiri?"</string>
|
||||
<string name="screen_room_change_role_moderators_title">"Sunting Moderator"</string>
|
||||
<string name="screen_room_change_role_unsaved_changes_description">"Anda memiliki perubahan yang belum disimpan."</string>
|
||||
<string name="screen_room_change_role_unsaved_changes_title">"Simpan perubahan?"</string>
|
||||
<string name="screen_room_details_add_topic_title">"Tambahkan topik"</string>
|
||||
<string name="screen_room_details_already_a_member">"Sudah menjadi anggota"</string>
|
||||
<string name="screen_room_details_already_invited">"Sudah diundang"</string>
|
||||
@@ -22,20 +44,42 @@
|
||||
<string name="screen_room_details_error_muting">"Gagal membisukan ruangan ini, silakan coba lagi."</string>
|
||||
<string name="screen_room_details_error_unmuting">"Gagal membunyikan ruangan ini, silakan coba lagi."</string>
|
||||
<string name="screen_room_details_invite_people_title">"Undang orang-orang"</string>
|
||||
<string name="screen_room_details_leave_conversation_title">"Tinggalkan percakapan"</string>
|
||||
<string name="screen_room_details_leave_room_title">"Tinggalkan ruangan"</string>
|
||||
<string name="screen_room_details_notification_mode_custom">"Khusus"</string>
|
||||
<string name="screen_room_details_notification_mode_default">"Bawaan"</string>
|
||||
<string name="screen_room_details_notification_title">"Pemberitahuan"</string>
|
||||
<string name="screen_room_details_roles_and_permissions">"Peran dan perizinan"</string>
|
||||
<string name="screen_room_details_room_name_label">"Nama ruangan"</string>
|
||||
<string name="screen_room_details_security_title">"Keamanan"</string>
|
||||
<string name="screen_room_details_share_room_title">"Bagikan ruangan"</string>
|
||||
<string name="screen_room_details_topic_title">"Topik"</string>
|
||||
<string name="screen_room_details_updating_room">"Memperbarui ruangan…"</string>
|
||||
<string name="screen_room_member_list_ban_member_confirmation_action">"Cekal"</string>
|
||||
<string name="screen_room_member_list_ban_member_confirmation_description">"Mereka tidak akan dapat bergabung ke ruangan ini lagi jika diundang."</string>
|
||||
<string name="screen_room_member_list_ban_member_confirmation_title">"Apakah Anda yakin ingin mencekal anggota ini?"</string>
|
||||
<string name="screen_room_member_list_banned_empty">"Tidak ada pengguna yang dicekal dalam ruangan ini."</string>
|
||||
<string name="screen_room_member_list_banning_user">"Mencekal %1$s"</string>
|
||||
<plurals name="screen_room_member_list_header_title">
|
||||
<item quantity="other">"%1$d orang"</item>
|
||||
</plurals>
|
||||
<string name="screen_room_member_list_manage_member_ban">"Keluarkan dan cekal anggota"</string>
|
||||
<string name="screen_room_member_list_manage_member_remove">"Keluarkan dari ruangan"</string>
|
||||
<string name="screen_room_member_list_manage_member_remove_confirmation_ban">"Keluarkan dan cekal anggota"</string>
|
||||
<string name="screen_room_member_list_manage_member_remove_confirmation_kick">"Hanya keluarkan anggota"</string>
|
||||
<string name="screen_room_member_list_manage_member_remove_confirmation_title">"Keluarkan pengguna dan cekal pengguna bergabung lagi di masa mendatang?"</string>
|
||||
<string name="screen_room_member_list_manage_member_unban_action">"Batalkan pencekalan"</string>
|
||||
<string name="screen_room_member_list_manage_member_unban_message">"Pengguna dapat bergabung ke ruangan ini lagi jika diundang."</string>
|
||||
<string name="screen_room_member_list_manage_member_unban_title">"Batalkan pencekalan pengguna"</string>
|
||||
<string name="screen_room_member_list_manage_member_user_info">"Tampilkan profil"</string>
|
||||
<string name="screen_room_member_list_mode_banned">"Tercekal"</string>
|
||||
<string name="screen_room_member_list_mode_members">"Anggota"</string>
|
||||
<string name="screen_room_member_list_pending_header_title">"Tertunda"</string>
|
||||
<string name="screen_room_member_list_removing_user">"Mengeluarkan %1$s…"</string>
|
||||
<string name="screen_room_member_list_role_administrator">"Admin"</string>
|
||||
<string name="screen_room_member_list_role_moderator">"Moderator"</string>
|
||||
<string name="screen_room_member_list_room_members_header_title">"Anggota ruangan"</string>
|
||||
<string name="screen_room_member_list_unbanning_user">"Membatalkan cekalan %1$s"</string>
|
||||
<string name="screen_room_notification_settings_allow_custom">"Izinkan pengaturan khusus"</string>
|
||||
<string name="screen_room_notification_settings_allow_custom_footnote">"Mengaktifkan ini akan mengganti pengaturan bawaan Anda"</string>
|
||||
<string name="screen_room_notification_settings_custom_settings_title">"Beri tahu saya di obrolan ini tentang"</string>
|
||||
@@ -50,5 +94,19 @@
|
||||
<string name="screen_room_notification_settings_mode_all_messages">"Semua pesan"</string>
|
||||
<string name="screen_room_notification_settings_mode_mentions_and_keywords">"Sebutan dan Kata Kunci saja"</string>
|
||||
<string name="screen_room_notification_settings_room_custom_settings_title">"Di ruangan ini, beri tahu saya tentang"</string>
|
||||
<string name="screen_room_roles_and_permissions_admins">"Admin"</string>
|
||||
<string name="screen_room_roles_and_permissions_change_my_role">"Ubah peran saya"</string>
|
||||
<string name="screen_room_roles_and_permissions_change_role_demote_to_member">"Turunkan ke anggota"</string>
|
||||
<string name="screen_room_roles_and_permissions_change_role_demote_to_moderator">"Turunkan ke moderator"</string>
|
||||
<string name="screen_room_roles_and_permissions_member_moderation">"Moderasi anggota"</string>
|
||||
<string name="screen_room_roles_and_permissions_messages_and_content">"Pesan dan konten"</string>
|
||||
<string name="screen_room_roles_and_permissions_moderators">"Moderator"</string>
|
||||
<string name="screen_room_roles_and_permissions_permissions_header">"Perizinan"</string>
|
||||
<string name="screen_room_roles_and_permissions_reset">"Atur ulang perizinan"</string>
|
||||
<string name="screen_room_roles_and_permissions_reset_confirm_description">"Setelah Anda mengatur ulang perizinan, Anda akan kehilangan pengaturan Anda saat ini."</string>
|
||||
<string name="screen_room_roles_and_permissions_reset_confirm_title">"Atur ulang perizinan?"</string>
|
||||
<string name="screen_room_roles_and_permissions_roles_header">"Peran"</string>
|
||||
<string name="screen_room_roles_and_permissions_room_details">"Detail ruangan"</string>
|
||||
<string name="screen_room_roles_and_permissions_title">"Peran dan perizinan"</string>
|
||||
<string name="screen_start_chat_error_starting_chat">"Terjadi kesalahan saat mencoba memulai obrolan"</string>
|
||||
</resources>
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
<string name="screen_room_details_error_muting">"無法關閉聊天室通知,請再試一次。"</string>
|
||||
<string name="screen_room_details_error_unmuting">"無法開啟聊天室通知,請再試一次。"</string>
|
||||
<string name="screen_room_details_invite_people_title">"邀請夥伴"</string>
|
||||
<string name="screen_room_details_leave_conversation_title">"離開對話"</string>
|
||||
<string name="screen_room_details_leave_room_title">"離開聊天室"</string>
|
||||
<string name="screen_room_details_notification_mode_custom">"自訂"</string>
|
||||
<string name="screen_room_details_notification_mode_default">"預設"</string>
|
||||
|
||||
@@ -8,13 +8,23 @@
|
||||
<string name="screen_roomlist_empty_message">"Пачніце з паведамлення каму-небудзь."</string>
|
||||
<string name="screen_roomlist_empty_title">"Пакуль няма чатаў."</string>
|
||||
<string name="screen_roomlist_filter_favourites">"Абранае"</string>
|
||||
<string name="screen_roomlist_filter_favourites_empty_state_subtitle">"Дадаць чат у абранае можна ў наладах чата.
|
||||
На дадзены момант вы можаце прыбраць фільтры, каб убачыць іншыя вашыя чаты."</string>
|
||||
<string name="screen_roomlist_filter_favourites_empty_state_title">"У вас пакуль няма абраных чатаў"</string>
|
||||
<string name="screen_roomlist_filter_low_priority">"Нізкі прыярытэт"</string>
|
||||
<string name="screen_roomlist_filter_mixed_empty_state_subtitle">"Вы можаце прыбраць фільтры, каб убачыць іншыя вашыя чаты."</string>
|
||||
<string name="screen_roomlist_filter_mixed_empty_state_title">"У вас няма чатаў для гэтай катэгорыі"</string>
|
||||
<string name="screen_roomlist_filter_people">"Людзі"</string>
|
||||
<string name="screen_roomlist_filter_people_empty_state_title">"У вас пакуль няма асабістых паведамленняў"</string>
|
||||
<string name="screen_roomlist_filter_rooms">"Пакоі"</string>
|
||||
<string name="screen_roomlist_filter_rooms_empty_state_title">"Вас пакуль няма ў ніводным пакоі"</string>
|
||||
<string name="screen_roomlist_filter_unreads">"Непрачытаныя"</string>
|
||||
<string name="screen_roomlist_filter_unreads_empty_state_title">"Віншуем!
|
||||
У вас няма непрачытаных паведамленняў!"</string>
|
||||
<string name="screen_roomlist_main_space_title">"Усе чаты"</string>
|
||||
<string name="screen_roomlist_mark_as_read">"Пазначыць як прачытанае"</string>
|
||||
<string name="screen_roomlist_mark_as_unread">"Пазначыць як непрачытанае"</string>
|
||||
<string name="screen_roomlist_room_directory_button_title">"Праглядзець усе пакоі"</string>
|
||||
<string name="session_verification_banner_message">"Здаецца, вы карыстаецеся новай прыладай. Праверце з дапамогай іншай прылады, каб атрымаць доступ да зашыфраваных паведамленняў."</string>
|
||||
<string name="session_verification_banner_title">"Пацвердзіце, што гэта вы"</string>
|
||||
</resources>
|
||||
|
||||
@@ -24,6 +24,7 @@ Nemáte žádné nepřečtené zprávy!"</string>
|
||||
<string name="screen_roomlist_main_space_title">"Všechny chaty"</string>
|
||||
<string name="screen_roomlist_mark_as_read">"Označit jako přečtené"</string>
|
||||
<string name="screen_roomlist_mark_as_unread">"Označit jako nepřečtené"</string>
|
||||
<string name="screen_roomlist_room_directory_button_title">"Procházet všechny místnosti"</string>
|
||||
<string name="session_verification_banner_message">"Zdá se, že používáte nové zařízení. Ověřte přihlášení, abyste měli přístup k zašifrovaným zprávám."</string>
|
||||
<string name="session_verification_banner_title">"Ověřte, že jste to vy"</string>
|
||||
</resources>
|
||||
|
||||
@@ -24,6 +24,7 @@ Du hast keine ungelesenen Nachrichten!"</string>
|
||||
<string name="screen_roomlist_main_space_title">"Chats"</string>
|
||||
<string name="screen_roomlist_mark_as_read">"Als gelesen markieren"</string>
|
||||
<string name="screen_roomlist_mark_as_unread">"Als ungelesen markieren"</string>
|
||||
<string name="screen_roomlist_room_directory_button_title">"Alle Räume durchsuchen"</string>
|
||||
<string name="session_verification_banner_message">"Es sieht aus, als würdest du ein neues Gerät verwenden. Verifiziere es mit einem anderen Gerät, damit du auf deine verschlüsselten Nachrichten zugreifen kannst."</string>
|
||||
<string name="session_verification_banner_title">"Bestätige deine Identität"</string>
|
||||
</resources>
|
||||
|
||||
@@ -24,6 +24,7 @@ Vous n’avez plus de messages non-lus!"</string>
|
||||
<string name="screen_roomlist_main_space_title">"Conversations"</string>
|
||||
<string name="screen_roomlist_mark_as_read">"Marquer comme lu"</string>
|
||||
<string name="screen_roomlist_mark_as_unread">"Marquer comme non lu"</string>
|
||||
<string name="screen_roomlist_room_directory_button_title">"Parcourir tous les salons"</string>
|
||||
<string name="session_verification_banner_message">"Il semblerait que vous utilisiez un nouvel appareil. Vérifiez la session avec un autre de vos appareils pour accéder à vos messages chiffrés."</string>
|
||||
<string name="session_verification_banner_title">"Vérifier que c’est bien vous"</string>
|
||||
</resources>
|
||||
|
||||
@@ -7,8 +7,23 @@
|
||||
<string name="screen_roomlist_a11y_create_message">"Buat percakapan atau ruangan baru"</string>
|
||||
<string name="screen_roomlist_empty_message">"Mulailah dengan mengirim pesan kepada seseorang."</string>
|
||||
<string name="screen_roomlist_empty_title">"Belum ada obrolan."</string>
|
||||
<string name="screen_roomlist_filter_favourites">"Favorit"</string>
|
||||
<string name="screen_roomlist_filter_favourites_empty_state_subtitle">"Anda dapat menambahkan percakapan ke favorit Anda dalam pengaturan percakapan.
|
||||
Untuk sementara, Anda dapat membatalkan pilihan saringan untuk melihat percakapan Anda yang lain"</string>
|
||||
<string name="screen_roomlist_filter_favourites_empty_state_title">"Anda belum memiliki percakapan favorit"</string>
|
||||
<string name="screen_roomlist_filter_low_priority">"Prioritas Rendah"</string>
|
||||
<string name="screen_roomlist_filter_mixed_empty_state_subtitle">"Anda dapat membatalkan pilihan saringan untuk melihat percakapan Anda yang lain"</string>
|
||||
<string name="screen_roomlist_filter_mixed_empty_state_title">"Anda tidak memiliki percakapan untuk pemilihan ini"</string>
|
||||
<string name="screen_roomlist_filter_people">"Orang"</string>
|
||||
<string name="screen_roomlist_filter_people_empty_state_title">"Anda belum memiliki percakapan langsung"</string>
|
||||
<string name="screen_roomlist_filter_rooms">"Ruangan"</string>
|
||||
<string name="screen_roomlist_filter_rooms_empty_state_title">"Anda belum berada dalam ruangan"</string>
|
||||
<string name="screen_roomlist_filter_unreads">"Belum dibaca"</string>
|
||||
<string name="screen_roomlist_filter_unreads_empty_state_title">"Selamat!
|
||||
Anda tidak memiliki pesan yang belum dibaca!"</string>
|
||||
<string name="screen_roomlist_main_space_title">"Semua Obrolan"</string>
|
||||
<string name="screen_roomlist_mark_as_read">"Tandai sebagai dibaca"</string>
|
||||
<string name="screen_roomlist_mark_as_unread">"Tandai sebagai belum dibaca"</string>
|
||||
<string name="session_verification_banner_message">"Sepertinya Anda menggunakan perangkat baru. Verifikasi dengan perangkat lain untuk mengakses pesan terenkripsi Anda selanjutnya."</string>
|
||||
<string name="session_verification_banner_title">"Verifikasi bahwa ini Anda"</string>
|
||||
</resources>
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
<string name="screen_roomlist_main_space_title">"Все чаты"</string>
|
||||
<string name="screen_roomlist_mark_as_read">"Пометить как прочитанное"</string>
|
||||
<string name="screen_roomlist_mark_as_unread">"Пометить как непрочитанное"</string>
|
||||
<string name="screen_roomlist_room_directory_button_title">"Просмотреть все комнаты"</string>
|
||||
<string name="session_verification_banner_message">"Похоже, вы используете новое устройство. Чтобы получить доступ к зашифрованным сообщениям пройдите верификацию с другим устройством."</string>
|
||||
<string name="session_verification_banner_title">"Подтвердите, что это вы"</string>
|
||||
</resources>
|
||||
|
||||
@@ -24,6 +24,7 @@ Nemáte žiadne neprečítané správy!"</string>
|
||||
<string name="screen_roomlist_main_space_title">"Všetky konverzácie"</string>
|
||||
<string name="screen_roomlist_mark_as_read">"Označiť ako prečítané"</string>
|
||||
<string name="screen_roomlist_mark_as_unread">"Označiť ako neprečítané"</string>
|
||||
<string name="screen_roomlist_room_directory_button_title">"Prehliadať všetky miestnosti"</string>
|
||||
<string name="session_verification_banner_message">"Vyzerá to tak, že používate nové zariadenie. Overte svoj prístup k zašifrovaným správam pomocou vášho druhého zariadenia."</string>
|
||||
<string name="session_verification_banner_title">"Overte, že ste to vy"</string>
|
||||
</resources>
|
||||
|
||||
@@ -24,6 +24,7 @@ You don’t have any unread messages!"</string>
|
||||
<string name="screen_roomlist_main_space_title">"Chats"</string>
|
||||
<string name="screen_roomlist_mark_as_read">"Mark as read"</string>
|
||||
<string name="screen_roomlist_mark_as_unread">"Mark as unread"</string>
|
||||
<string name="screen_roomlist_room_directory_button_title">"Browse all rooms"</string>
|
||||
<string name="session_verification_banner_message">"Looks like you’re using a new device. Verify with another device to access your encrypted messages."</string>
|
||||
<string name="session_verification_banner_title">"Verify it’s you"</string>
|
||||
</resources>
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="screen_chat_backup_key_backup_action_disable">"Stäng av säkerhetskopiering"</string>
|
||||
<string name="screen_chat_backup_key_backup_action_enable">"Slå på säkerhetskopiering"</string>
|
||||
<string name="screen_chat_backup_key_backup_description">"Säkerhetskopior ser till att du inte blir av med din meddelandehistorik. %1$s."</string>
|
||||
<string name="screen_chat_backup_key_backup_title">"Säkerhetskopia"</string>
|
||||
<string name="screen_chat_backup_recovery_action_setup">"Ställ in återställning"</string>
|
||||
</resources>
|
||||
@@ -6,6 +6,7 @@
|
||||
<string name="screen_session_verification_compare_numbers_subtitle">"Konfirmasikan bahwa angka-angka di bawah ini sesuai dengan yang ditampilkan pada sesi Anda yang lain."</string>
|
||||
<string name="screen_session_verification_compare_numbers_title">"Bandingkan angka"</string>
|
||||
<string name="screen_session_verification_complete_subtitle">"Sesi baru Anda sekarang diverifikasi. Ini memiliki akses ke pesan terenkripsi Anda, dan pengguna lain akan melihatnya sebagai tepercaya."</string>
|
||||
<string name="screen_session_verification_enter_recovery_key">"Masukkan kunci pemulihan"</string>
|
||||
<string name="screen_session_verification_open_existing_session_subtitle">"Buktikan bahwa ini memang Anda untuk mengakses riwayat pesan terenkripsi Anda."</string>
|
||||
<string name="screen_session_verification_open_existing_session_title">"Buka sesi yang sudah ada"</string>
|
||||
<string name="screen_session_verification_positive_button_canceled">"Verifikasi ulang"</string>
|
||||
|
||||
@@ -39,7 +39,7 @@ showkase = "1.0.2"
|
||||
appyx = "1.4.0"
|
||||
sqldelight = "2.0.1"
|
||||
wysiwyg = "2.34.0"
|
||||
telephoto = "0.8.0"
|
||||
telephoto = "0.9.0"
|
||||
|
||||
# DI
|
||||
dagger = "2.51"
|
||||
@@ -63,7 +63,7 @@ kotlin_gradle_plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", v
|
||||
kover_gradle_plugin = { module = "org.jetbrains.kotlinx:kover-gradle-plugin", version.ref = "kover" }
|
||||
gms_google_services = "com.google.gms:google-services:4.4.1"
|
||||
# https://firebase.google.com/docs/android/setup#available-libraries
|
||||
google_firebase_bom = "com.google.firebase:firebase-bom:32.7.4"
|
||||
google_firebase_bom = "com.google.firebase:firebase-bom:32.8.0"
|
||||
firebase_appdistribution_gradle = { module = "com.google.firebase:firebase-appdistribution-gradle", version.ref = "firebaseAppDistribution" }
|
||||
autonomousapps_dependencyanalysis_plugin = { module = "com.autonomousapps:dependency-analysis-gradle-plugin", version.ref = "dependencyAnalysis" }
|
||||
|
||||
@@ -120,8 +120,9 @@ network_okhttp_logging = { module = "com.squareup.okhttp3:logging-interceptor" }
|
||||
network_okhttp_okhttp = { module = "com.squareup.okhttp3:okhttp" }
|
||||
network_okhttp = { module = "com.squareup.okhttp3:okhttp" }
|
||||
network_mockwebserver = { module = "com.squareup.okhttp3:mockwebserver" }
|
||||
network_retrofit = "com.squareup.retrofit2:retrofit:2.9.0"
|
||||
network_retrofit_converter_serialization = "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:1.0.0"
|
||||
network_retrofit_bom = "com.squareup.retrofit2:retrofit-bom:2.10.0"
|
||||
network_retrofit = { module = "com.squareup.retrofit2:retrofit" }
|
||||
network_retrofit_converter_serialization = { module = "com.squareup.retrofit2:converter-kotlinx-serialization" }
|
||||
|
||||
# Test
|
||||
test_core = { module = "androidx.test:core", version.ref = "test_core" }
|
||||
@@ -151,9 +152,9 @@ showkase = { module = "com.airbnb.android:showkase", version.ref = "showkase" }
|
||||
showkase_processor = { module = "com.airbnb.android:showkase-processor", version.ref = "showkase" }
|
||||
jsoup = "org.jsoup:jsoup:1.17.2"
|
||||
appyx_core = { module = "com.bumble.appyx:core", version.ref = "appyx" }
|
||||
molecule-runtime = "app.cash.molecule:molecule-runtime:1.4.1"
|
||||
molecule-runtime = "app.cash.molecule:molecule-runtime:1.4.2"
|
||||
timber = "com.jakewharton.timber:timber:5.0.1"
|
||||
matrix_sdk = "org.matrix.rustcomponents:sdk-android:0.2.11"
|
||||
matrix_sdk = "org.matrix.rustcomponents:sdk-android:0.2.12"
|
||||
matrix_richtexteditor = { module = "io.element.android:wysiwyg", version.ref = "wysiwyg" }
|
||||
matrix_richtexteditor_compose = { module = "io.element.android:wysiwyg-compose", version.ref = "wysiwyg" }
|
||||
sqldelight-driver-android = { module = "app.cash.sqldelight:android-driver", version.ref = "sqldelight" }
|
||||
@@ -163,7 +164,7 @@ sqlcipher = "net.zetetic:android-database-sqlcipher:4.5.4"
|
||||
sqlite = "androidx.sqlite:sqlite-ktx:2.4.0"
|
||||
unifiedpush = "com.github.UnifiedPush:android-connector:2.1.1"
|
||||
otaliastudios_transcoder = "com.otaliastudios:transcoder:0.10.5"
|
||||
vanniktech_blurhash = "com.vanniktech:blurhash:0.2.0"
|
||||
vanniktech_blurhash = "com.vanniktech:blurhash:0.3.0"
|
||||
telephoto_zoomableimage = { module = "me.saket.telephoto:zoomable-image-coil", version.ref = "telephoto" }
|
||||
telephoto_flick = { module = "me.saket.telephoto:flick-android", version.ref = "telephoto" }
|
||||
statemachine = "com.freeletics.flowredux:compose:1.2.1"
|
||||
@@ -174,7 +175,7 @@ opusencoder = "io.element.android:opusencoder:1.1.0"
|
||||
kotlinpoet = "com.squareup:kotlinpoet:1.16.0"
|
||||
|
||||
# Analytics
|
||||
posthog = "com.posthog:posthog-android:3.1.15"
|
||||
posthog = "com.posthog:posthog-android:3.1.16"
|
||||
sentry = "io.sentry:sentry-android:7.6.0"
|
||||
matrix_analytics_events = "com.github.matrix-org:matrix-analytics-events:0.14.0"
|
||||
|
||||
@@ -213,7 +214,7 @@ kotlin_serialization = { id = "org.jetbrains.kotlin.plugin.serialization", versi
|
||||
kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" }
|
||||
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
|
||||
anvil = { id = "com.squareup.anvil", version.ref = "anvil" }
|
||||
detekt = "io.gitlab.arturbosch.detekt:1.23.5"
|
||||
detekt = "io.gitlab.arturbosch.detekt:1.23.6"
|
||||
ktlint = "org.jlleitschuh.gradle.ktlint:12.1.0"
|
||||
dependencygraph = "com.savvasdalkitsis.module-dependency-graph:0.12"
|
||||
dependencycheck = "org.owasp.dependencycheck:9.0.10"
|
||||
|
||||
28
libraries/designsystem/src/main/res/drawable/ic_winner.xml
Normal file
28
libraries/designsystem/src/main/res/drawable/ic_winner.xml
Normal file
@@ -0,0 +1,28 @@
|
||||
<!--
|
||||
~ Copyright (c) 2024 New Vector Ltd
|
||||
~
|
||||
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||
~ you may not use this file except in compliance with the License.
|
||||
~ You may obtain a copy of the License at
|
||||
~
|
||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing, software
|
||||
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
~ See the License for the specific language governing permissions and
|
||||
~ limitations under the License.
|
||||
-->
|
||||
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="16dp"
|
||||
android:height="16dp"
|
||||
android:viewportWidth="16"
|
||||
android:viewportHeight="16">
|
||||
<group>
|
||||
<clip-path android:pathData="M0,0h16v16h-16z" />
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M12.667,3.333H11.333V2.667C11.333,2.3 11.033,2 10.667,2H5.333C4.967,2 4.667,2.3 4.667,2.667V3.333H3.333C2.6,3.333 2,3.933 2,4.667V5.333C2,7.033 3.28,8.42 4.927,8.627C5.347,9.627 6.247,10.38 7.333,10.6V12.667H5.333C4.967,12.667 4.667,12.967 4.667,13.333C4.667,13.7 4.967,14 5.333,14H10.667C11.033,14 11.333,13.7 11.333,13.333C11.333,12.967 11.033,12.667 10.667,12.667H8.667V10.6C9.753,10.38 10.653,9.627 11.073,8.627C12.72,8.42 14,7.033 14,5.333V4.667C14,3.933 13.4,3.333 12.667,3.333ZM3.333,5.333V4.667H4.667V7.213C3.893,6.933 3.333,6.2 3.333,5.333ZM12.667,5.333C12.667,6.2 12.107,6.933 11.333,7.213V4.667H12.667V5.333Z" />
|
||||
</group>
|
||||
</vector>
|
||||
@@ -3,12 +3,16 @@
|
||||
<string name="state_event_avatar_changed_too">"(аватар таксама быў зменены)"</string>
|
||||
<string name="state_event_avatar_url_changed">"%1$s змяніў аватар"</string>
|
||||
<string name="state_event_avatar_url_changed_by_you">"Вы змянілі свой аватар"</string>
|
||||
<string name="state_event_demoted_to_member">"%1$s быў паніжаны да ўдзельніка"</string>
|
||||
<string name="state_event_demoted_to_moderator">"%1$s быў паніжаны да мадэратара"</string>
|
||||
<string name="state_event_display_name_changed_from">"%1$s змяніў сваё адлюстраванае імя з %2$s на %3$s"</string>
|
||||
<string name="state_event_display_name_changed_from_by_you">"Вы змянілі сваё адлюстраванае імя з %1$s на %2$s"</string>
|
||||
<string name="state_event_display_name_removed">"%1$s выдаліў сваё адлюстраванае імя (яно было %2$s)"</string>
|
||||
<string name="state_event_display_name_removed_by_you">"Вы выдалілі сваё адлюстраванае імя (яно было %1$s)"</string>
|
||||
<string name="state_event_display_name_set">"%1$s усталявалі сваё адлюстраванае імя на %2$s"</string>
|
||||
<string name="state_event_display_name_set_by_you">"Вы ўстанавілі адлюстраванае імя на %1$s"</string>
|
||||
<string name="state_event_promoted_to_administrator">"%1$s быў павышаны да адміністратара"</string>
|
||||
<string name="state_event_promoted_to_moderator">"%1$s быў павышаны да мадэратара"</string>
|
||||
<string name="state_event_room_avatar_changed">"%1$s змяніў аватар пакоя"</string>
|
||||
<string name="state_event_room_avatar_changed_by_you">"Вы змянілі аватар пакоя"</string>
|
||||
<string name="state_event_room_avatar_removed">"%1$s выдаліў(-ла) аватар пакоя"</string>
|
||||
|
||||
@@ -3,12 +3,16 @@
|
||||
<string name="state_event_avatar_changed_too">"(avatar byl také změněn)"</string>
|
||||
<string name="state_event_avatar_url_changed">"%1$s změnil(a) svůj profilový obrázek"</string>
|
||||
<string name="state_event_avatar_url_changed_by_you">"Změnili jste svůj profilový obrázek"</string>
|
||||
<string name="state_event_demoted_to_member">"%1$s byl(a) degradován(a) na člena"</string>
|
||||
<string name="state_event_demoted_to_moderator">"%1$s byl(a) degradován(a) na moderátora"</string>
|
||||
<string name="state_event_display_name_changed_from">"%1$s změnil(a) své zobrazované jméno z %2$s na %3$s"</string>
|
||||
<string name="state_event_display_name_changed_from_by_you">"Změnili jste své zobrazované jméno z %1$s na %2$s"</string>
|
||||
<string name="state_event_display_name_removed">"%1$s odstranil(a) své zobrazované jméno (%2$s)"</string>
|
||||
<string name="state_event_display_name_removed_by_you">"Odstranili jste své zobrazované jméno (%1$s)"</string>
|
||||
<string name="state_event_display_name_set">"%1$s nastavil(a) své zobrazované jméno na %2$s"</string>
|
||||
<string name="state_event_display_name_set_by_you">"Změnili jste své zobrazované jméno na %1$s"</string>
|
||||
<string name="state_event_promoted_to_administrator">"%1$s byl(a) povýšen(a) na administrátora"</string>
|
||||
<string name="state_event_promoted_to_moderator">"%1$s byl(a) povýšen(a) na moderátora"</string>
|
||||
<string name="state_event_room_avatar_changed">"%1$s změnil(a) obrázek místnosti"</string>
|
||||
<string name="state_event_room_avatar_changed_by_you">"Změnili jste obrázek místnosti"</string>
|
||||
<string name="state_event_room_avatar_removed">"%1$s odstranili obrázek místnosti"</string>
|
||||
|
||||
@@ -3,12 +3,16 @@
|
||||
<string name="state_event_avatar_changed_too">"(avatar juga diubah)"</string>
|
||||
<string name="state_event_avatar_url_changed">"%1$s mengubah avatarnya"</string>
|
||||
<string name="state_event_avatar_url_changed_by_you">"Anda mengubah avatar sendiri"</string>
|
||||
<string name="state_event_demoted_to_member">"%1$s telah diturunkan menjadi anggota"</string>
|
||||
<string name="state_event_demoted_to_moderator">"%1$s telah diturunkan menjadi moderator"</string>
|
||||
<string name="state_event_display_name_changed_from">"%1$s mengubah nama tampilannya dari %2$s menjadi %3$s"</string>
|
||||
<string name="state_event_display_name_changed_from_by_you">"Anda mengubah nama tampilan sendiri dari %1$s menjadi %2$s"</string>
|
||||
<string name="state_event_display_name_removed">"%1$s menghapus nama tampilannya (sebelumnya %2$s)"</string>
|
||||
<string name="state_event_display_name_removed_by_you">"Anda menghapus nama tampilan sendiri (sebelumnya %1$s)"</string>
|
||||
<string name="state_event_display_name_set">"%1$s menetapkan nama tampilannya menjadi %2$s"</string>
|
||||
<string name="state_event_display_name_set_by_you">"Anda menetapkan nama tampilan sendiri menjadi %1$s"</string>
|
||||
<string name="state_event_promoted_to_administrator">"%1$s telah dipromosikan menjadi admin"</string>
|
||||
<string name="state_event_promoted_to_moderator">"%1$s telah dipromosikan menjadi moderator"</string>
|
||||
<string name="state_event_room_avatar_changed">"%1$s mengubah avatar ruangan"</string>
|
||||
<string name="state_event_room_avatar_changed_by_you">"Anda mengubah avatar ruangan"</string>
|
||||
<string name="state_event_room_avatar_removed">"%1$s menghapus avatar ruangan"</string>
|
||||
@@ -39,6 +43,8 @@
|
||||
<string name="state_event_room_name_changed_by_you">"Anda mengubah nama ruangan menjadi: %1$s"</string>
|
||||
<string name="state_event_room_name_removed">"%1$s menghapus nama ruangan"</string>
|
||||
<string name="state_event_room_name_removed_by_you">"Anda menghapus nama ruangan"</string>
|
||||
<string name="state_event_room_none">"%1$s tidak membuat perubahan"</string>
|
||||
<string name="state_event_room_none_by_you">"Anda tidak membuat perubahan"</string>
|
||||
<string name="state_event_room_reject">"%1$s menolak undangan"</string>
|
||||
<string name="state_event_room_reject_by_you">"Anda menolak undangan"</string>
|
||||
<string name="state_event_room_remove">"%1$s mengeluarkan %2$s"</string>
|
||||
|
||||
@@ -3,12 +3,16 @@
|
||||
<string name="state_event_avatar_changed_too">"(аватар теж було змінено)"</string>
|
||||
<string name="state_event_avatar_url_changed">"%1$s змінив (-ла) свій аватар"</string>
|
||||
<string name="state_event_avatar_url_changed_by_you">"Ви змінили свій аватар"</string>
|
||||
<string name="state_event_demoted_to_member">"%1$s був понижений до члена"</string>
|
||||
<string name="state_event_demoted_to_moderator">"%1$s був понижений до модератора"</string>
|
||||
<string name="state_event_display_name_changed_from">"%1$s змінив (-ла) своє імʼя з %2$s на %3$s"</string>
|
||||
<string name="state_event_display_name_changed_from_by_you">"Ви змінили своє ім\'я з %1$s на %2$s"</string>
|
||||
<string name="state_event_display_name_removed">"%1$s видалив (-ла) своє ім\'я (було %2$s)"</string>
|
||||
<string name="state_event_display_name_removed_by_you">"Ви видалили своє ім\'я (було%1$s)"</string>
|
||||
<string name="state_event_display_name_set">"%1$s змінив (-ла) своє ім\'я на %2$s"</string>
|
||||
<string name="state_event_display_name_set_by_you">"Ви змінили своє імʼя на %1$s"</string>
|
||||
<string name="state_event_promoted_to_administrator">"%1$s був підвищений до адміністратора"</string>
|
||||
<string name="state_event_promoted_to_moderator">"%1$s був підвищений до модератора"</string>
|
||||
<string name="state_event_room_avatar_changed">"%1$s змінив (-ла) аватар кімнати"</string>
|
||||
<string name="state_event_room_avatar_changed_by_you">"Ви змінили аватар кімнати"</string>
|
||||
<string name="state_event_room_avatar_removed">"%1$s видалив (-ла) аватар кімнати"</string>
|
||||
|
||||
@@ -40,7 +40,7 @@ class StaticFeatureFlagProvider @Inject constructor() :
|
||||
FeatureFlags.PinUnlock -> true
|
||||
FeatureFlags.Mentions -> true
|
||||
FeatureFlags.MarkAsUnread -> true
|
||||
FeatureFlags.RoomListFilters -> false
|
||||
FeatureFlags.RoomListFilters -> true
|
||||
FeatureFlags.RoomModeration -> false
|
||||
FeatureFlags.RoomDirectorySearch -> false
|
||||
}
|
||||
|
||||
@@ -55,6 +55,7 @@ interface MatrixRoom : Closeable {
|
||||
val topic: String?
|
||||
val avatarUrl: String?
|
||||
val isEncrypted: Boolean
|
||||
val isSpace: Boolean
|
||||
val isDirect: Boolean
|
||||
val isPublic: Boolean
|
||||
val activeMemberCount: Long
|
||||
|
||||
@@ -66,7 +66,9 @@ enum class RoomMembershipState {
|
||||
INVITE,
|
||||
JOIN,
|
||||
KNOCK,
|
||||
LEAVE
|
||||
LEAVE;
|
||||
|
||||
fun isActive(): Boolean = this == JOIN || this == INVITE
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -213,6 +213,9 @@ class RustMatrixRoom(
|
||||
override val isPublic: Boolean
|
||||
get() = innerRoom.isPublic()
|
||||
|
||||
override val isSpace: Boolean
|
||||
get() = innerRoom.isSpace()
|
||||
|
||||
override val isDirect: Boolean
|
||||
get() = innerRoom.isDirect()
|
||||
|
||||
|
||||
@@ -77,6 +77,7 @@ class FakeMatrixRoom(
|
||||
override val alias: String? = null,
|
||||
override val alternativeAliases: List<String> = emptyList(),
|
||||
override val isPublic: Boolean = true,
|
||||
override val isSpace: Boolean = false,
|
||||
override val isDirect: Boolean = false,
|
||||
override val isOneToOne: Boolean = false,
|
||||
override val joinedMemberCount: Long = 123L,
|
||||
|
||||
@@ -41,6 +41,7 @@ dependencies {
|
||||
implementation(platform(libs.network.okhttp.bom))
|
||||
implementation(libs.network.okhttp)
|
||||
implementation(libs.network.okhttp.logging)
|
||||
implementation(platform(libs.network.retrofit.bom))
|
||||
implementation(libs.network.retrofit)
|
||||
implementation(libs.network.retrofit.converter.serialization)
|
||||
implementation(libs.serialization.json)
|
||||
|
||||
@@ -16,12 +16,12 @@
|
||||
|
||||
package io.element.android.libraries.network
|
||||
|
||||
import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory
|
||||
import io.element.android.libraries.core.uri.ensureTrailingSlash
|
||||
import kotlinx.serialization.json.Json
|
||||
import okhttp3.MediaType.Companion.toMediaType
|
||||
import okhttp3.OkHttpClient
|
||||
import retrofit2.Retrofit
|
||||
import retrofit2.converter.kotlinx.serialization.asConverterFactory
|
||||
import javax.inject.Inject
|
||||
import javax.inject.Provider
|
||||
|
||||
|
||||
@@ -38,6 +38,7 @@ dependencies {
|
||||
implementation(libs.androidx.corektx)
|
||||
implementation(libs.androidx.datastore.preferences)
|
||||
implementation(libs.androidx.security.crypto)
|
||||
implementation(platform(libs.network.retrofit.bom))
|
||||
implementation(libs.network.retrofit)
|
||||
implementation(libs.serialization.json)
|
||||
implementation(libs.coil)
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
<item quantity="other">"%d pesan baru"</item>
|
||||
</plurals>
|
||||
<string name="notification_reaction_body">"Menghapus dengan %1$s"</string>
|
||||
<string name="notification_room_action_mark_as_read">"Tandai sebagai dibaca"</string>
|
||||
<string name="notification_room_action_quick_reply">"Balas cepat"</string>
|
||||
<string name="notification_room_invite_body">"Mengundang Anda untuk bergabung ke ruangan"</string>
|
||||
<string name="notification_sender_me">"Saya"</string>
|
||||
|
||||
@@ -42,6 +42,7 @@ dependencies {
|
||||
implementation(projects.libraries.network)
|
||||
implementation(platform(libs.network.okhttp.bom))
|
||||
implementation(libs.network.okhttp.okhttp)
|
||||
implementation(platform(libs.network.retrofit.bom))
|
||||
implementation(libs.network.retrofit)
|
||||
|
||||
implementation(libs.serialization.json)
|
||||
|
||||
@@ -51,6 +51,7 @@
|
||||
<string name="action_decline">"Адхіліць"</string>
|
||||
<string name="action_delete_poll">"Выдаліць апытанне"</string>
|
||||
<string name="action_disable">"Адключыць"</string>
|
||||
<string name="action_discard">"Адмяніць"</string>
|
||||
<string name="action_done">"Гатова"</string>
|
||||
<string name="action_edit">"Рэдагаваць"</string>
|
||||
<string name="action_edit_poll">"Рэдагаваць апытанне"</string>
|
||||
@@ -59,6 +60,7 @@
|
||||
<string name="action_enter_pin">"Увядзіце PIN-код"</string>
|
||||
<string name="action_forgot_password">"Забылі пароль?"</string>
|
||||
<string name="action_forward">"Пераслаць"</string>
|
||||
<string name="action_go_back">"Вярнуцца"</string>
|
||||
<string name="action_invite">"Запрасіць"</string>
|
||||
<string name="action_invite_friends">"Запрасіць карыстальникаў"</string>
|
||||
<string name="action_invite_friends_to_app">"Запрасіць карыстальнікаў у %1$s"</string>
|
||||
@@ -86,6 +88,7 @@
|
||||
<string name="action_reply_in_thread">"Адказаць у гутаркі"</string>
|
||||
<string name="action_report_bug">"Паведаміць пра памылку"</string>
|
||||
<string name="action_report_content">"Паскардзіцца на змест"</string>
|
||||
<string name="action_reset">"Скінуць"</string>
|
||||
<string name="action_retry">"Паўтарыць"</string>
|
||||
<string name="action_retry_decryption">"Паўтарыце расшыфроўку"</string>
|
||||
<string name="action_save">"Захаваць"</string>
|
||||
@@ -115,6 +118,7 @@
|
||||
<string name="common_audio">"Аўдыё"</string>
|
||||
<string name="common_blocked_users">"Заблакіраваныя карыстальнікі"</string>
|
||||
<string name="common_bubbles">"Бурбалкі"</string>
|
||||
<string name="common_call_invite">"Ідзе выклік (не падтрымліваецца)"</string>
|
||||
<string name="common_chat_backup">"Рэзервовае капіраванне чата"</string>
|
||||
<string name="common_copyright">"Аўтарскае права"</string>
|
||||
<string name="common_creating_room">"Стварэнне пакоя…"</string>
|
||||
@@ -131,7 +135,7 @@
|
||||
<string name="common_error">"Памылка"</string>
|
||||
<string name="common_everyone">"Усе"</string>
|
||||
<string name="common_failed">"Памылка"</string>
|
||||
<string name="common_favourite">"Захаванае"</string>
|
||||
<string name="common_favourite">"Абраць"</string>
|
||||
<string name="common_favourited">"Абранае"</string>
|
||||
<string name="common_file">"Файл"</string>
|
||||
<string name="common_file_saved_on_disk_android">"Файл захаваны ў папку Спампоўкі"</string>
|
||||
@@ -185,6 +189,7 @@
|
||||
<string name="common_room">"Пакой"</string>
|
||||
<string name="common_room_name">"Назва пакоя"</string>
|
||||
<string name="common_room_name_placeholder">"напрыклад, назва вашага праекта"</string>
|
||||
<string name="common_saved_changes">"Захаваныя змены"</string>
|
||||
<string name="common_saving">"Захаванне"</string>
|
||||
<string name="common_screen_lock">"Блакіроўка экрана"</string>
|
||||
<string name="common_search_for_someone">"Шукаць карыстальніка"</string>
|
||||
@@ -228,6 +233,8 @@
|
||||
<string name="dialog_title_error">"Памылка"</string>
|
||||
<string name="dialog_title_success">"Поспех"</string>
|
||||
<string name="dialog_title_warning">"Папярэджанне"</string>
|
||||
<string name="dialog_unsaved_changes_description_android">"Вашы змены не былі захаваны. Вы ўпэўнены, што хочаце вярнуцца?"</string>
|
||||
<string name="dialog_unsaved_changes_title">"Захаваць змены?"</string>
|
||||
<string name="error_failed_creating_the_permalink">"Не атрымалася стварыць пастаянную спасылку"</string>
|
||||
<string name="error_failed_loading_map">"%1$s не атрымалася загрузіць карту. Калі ласка паспрабуйце зноў пазней."</string>
|
||||
<string name="error_failed_loading_messages">"Не ўдалося загрузіць паведамленні"</string>
|
||||
@@ -242,9 +249,17 @@
|
||||
<string name="invite_friends_text">"Гэй, пагавары са мной у %1$s: %2$s"</string>
|
||||
<string name="login_initial_device_name_android">"%1$s Android"</string>
|
||||
<string name="preference_rageshake">"Rageshake паведаміць пра памылку"</string>
|
||||
<string name="screen_identity_confirmation_subtitle">"Пацвердзіце гэтую прыладу, каб наладзіць бяспечны абмен паведамленнямі."</string>
|
||||
<string name="screen_identity_confirmation_title">"Пацвердзіце, што гэта вы"</string>
|
||||
<string name="screen_identity_confirmed_subtitle">"Цяпер вы можаце бяспечна чытаць і адпраўляць паведамленні, і ўсе, з кім вы маеце зносіны ў чаце, таксама могуць давяраць гэтай прыладзе."</string>
|
||||
<string name="screen_identity_confirmed_title">"Прылада праверана"</string>
|
||||
<string name="screen_identity_use_another_device">"Выкарыстоўвайце іншую прыладу"</string>
|
||||
<string name="screen_identity_waiting_on_other_device">"Чакаем іншую прыладу…"</string>
|
||||
<string name="screen_media_picker_error_failed_selection">"Не ўдалося выбраць носьбіт, паўтарыце спробу."</string>
|
||||
<string name="screen_media_upload_preview_error_failed_processing">"Не атрымалася апрацаваць медыяфайл для загрузкі, паспрабуйце яшчэ раз."</string>
|
||||
<string name="screen_media_upload_preview_error_failed_sending">"Не атрымалася загрузіць медыяфайлы, паспрабуйце яшчэ раз."</string>
|
||||
<string name="screen_room_directory_search_loading_error">"Памылка загрузкі"</string>
|
||||
<string name="screen_room_directory_search_title">"Каталог пакояў"</string>
|
||||
<string name="screen_room_error_failed_processing_media">"Не атрымалася апрацаваць медыяфайл для загрузкі, паспрабуйце яшчэ раз."</string>
|
||||
<string name="screen_room_error_failed_retrieving_user_details">"Не ўдалося атрымаць інфармацыю пра карыстальніка"</string>
|
||||
<string name="screen_room_member_details_block_alert_action">"Заблакіраваць"</string>
|
||||
|
||||
@@ -51,6 +51,7 @@
|
||||
<string name="action_decline">"Odmítnout"</string>
|
||||
<string name="action_delete_poll">"Odstranit hlasování"</string>
|
||||
<string name="action_disable">"Zakázat"</string>
|
||||
<string name="action_discard">"Vyřadit"</string>
|
||||
<string name="action_done">"Hotovo"</string>
|
||||
<string name="action_edit">"Upravit"</string>
|
||||
<string name="action_edit_poll">"Upravit hlasování"</string>
|
||||
@@ -248,9 +249,17 @@
|
||||
<string name="invite_friends_text">"Ahoj, ozvi se mi na %1$s: %2$s"</string>
|
||||
<string name="login_initial_device_name_android">"%1$s Android"</string>
|
||||
<string name="preference_rageshake">"Zatřeste zařízením pro nahlášení chyby"</string>
|
||||
<string name="screen_identity_confirmation_subtitle">"Ověřte toto zařízení a nastavte zabezpečené zasílání zpráv."</string>
|
||||
<string name="screen_identity_confirmation_title">"Potvrďte, že jste to vy"</string>
|
||||
<string name="screen_identity_confirmed_subtitle">"Nyní můžete bezpečně číst nebo odesílat zprávy, a kdokoli, s kým chatujete, může tomuto zařízení důvěřovat."</string>
|
||||
<string name="screen_identity_confirmed_title">"Zařízení ověřeno"</string>
|
||||
<string name="screen_identity_use_another_device">"Použít jiné zařízení"</string>
|
||||
<string name="screen_identity_waiting_on_other_device">"Čekání na jiném zařízení…"</string>
|
||||
<string name="screen_media_picker_error_failed_selection">"Výběr média se nezdařil, zkuste to prosím znovu."</string>
|
||||
<string name="screen_media_upload_preview_error_failed_processing">"Nahrání média se nezdařilo, zkuste to prosím znovu."</string>
|
||||
<string name="screen_media_upload_preview_error_failed_sending">"Nahrání média se nezdařilo, zkuste to prosím znovu."</string>
|
||||
<string name="screen_room_directory_search_loading_error">"Načítání se nezdařilo"</string>
|
||||
<string name="screen_room_directory_search_title">"Adresář místností"</string>
|
||||
<string name="screen_room_error_failed_processing_media">"Nahrání média se nezdařilo, zkuste to prosím znovu."</string>
|
||||
<string name="screen_room_error_failed_retrieving_user_details">"Nepodařilo se načíst údaje o uživateli"</string>
|
||||
<string name="screen_room_member_details_block_alert_action">"Zablokovat"</string>
|
||||
|
||||
@@ -245,9 +245,17 @@
|
||||
<string name="invite_friends_text">"Hey, sprich mit mir auf %1$s: %2$s"</string>
|
||||
<string name="login_initial_device_name_android">"%1$s Android"</string>
|
||||
<string name="preference_rageshake">"Schüttel heftig zum Melden von Fehlern"</string>
|
||||
<string name="screen_identity_confirmation_subtitle">"Verifiziere dieses Gerät, um sicheres Messaging einzurichten."</string>
|
||||
<string name="screen_identity_confirmation_title">"Bestätige, dass du es bist"</string>
|
||||
<string name="screen_identity_confirmed_subtitle">"Du kannst nun verschlüsselte Nachrichten lesen oder versenden."</string>
|
||||
<string name="screen_identity_confirmed_title">"Gerät verifiziert"</string>
|
||||
<string name="screen_identity_use_another_device">"Ein anderes Gerät verwenden"</string>
|
||||
<string name="screen_identity_waiting_on_other_device">"Bitte warten bis das andere Gerät bereit ist."</string>
|
||||
<string name="screen_media_picker_error_failed_selection">"Medienauswahl fehlgeschlagen, bitte versuche es erneut."</string>
|
||||
<string name="screen_media_upload_preview_error_failed_processing">"Fehler beim Verarbeiten des hochgeladenen Mediums. Bitte versuche es erneut."</string>
|
||||
<string name="screen_media_upload_preview_error_failed_sending">"Das Hochladen der Medien ist fehlgeschlagen. Bitte versuche es erneut."</string>
|
||||
<string name="screen_room_directory_search_loading_error">"Fehler beim Laden"</string>
|
||||
<string name="screen_room_directory_search_title">"Raumverzeichnis"</string>
|
||||
<string name="screen_room_error_failed_processing_media">"Fehler beim Verarbeiten des hochgeladenen Mediums. Bitte versuche es erneut."</string>
|
||||
<string name="screen_room_error_failed_retrieving_user_details">"Benutzerdetails konnten nicht abgerufen werden"</string>
|
||||
<string name="screen_room_member_details_block_alert_action">"Blockieren"</string>
|
||||
|
||||
@@ -245,9 +245,17 @@
|
||||
<string name="invite_friends_text">"Salut, parle-moi sur %1$s : %2$s"</string>
|
||||
<string name="login_initial_device_name_android">"%1$s Android"</string>
|
||||
<string name="preference_rageshake">"Rageshake pour signaler un problème"</string>
|
||||
<string name="screen_identity_confirmation_subtitle">"Vérifier cette session pour configurer votre messagerie sécurisée."</string>
|
||||
<string name="screen_identity_confirmation_title">"Confirmez votre identité"</string>
|
||||
<string name="screen_identity_confirmed_subtitle">"Vous pouvez désormais lire ou envoyer des messages en toute sécurité, et toute personne avec qui vous discutez peut également faire confiance à cette session."</string>
|
||||
<string name="screen_identity_confirmed_title">"Session vérifiée"</string>
|
||||
<string name="screen_identity_use_another_device">"Utiliser une autre session"</string>
|
||||
<string name="screen_identity_waiting_on_other_device">"En attente d’une autre session…"</string>
|
||||
<string name="screen_media_picker_error_failed_selection">"Échec de la sélection du média, veuillez réessayer."</string>
|
||||
<string name="screen_media_upload_preview_error_failed_processing">"Échec du traitement des médias à télécharger, veuillez réessayer."</string>
|
||||
<string name="screen_media_upload_preview_error_failed_sending">"Échec du téléchargement du média, veuillez réessayer."</string>
|
||||
<string name="screen_room_directory_search_loading_error">"Échec du chargement"</string>
|
||||
<string name="screen_room_directory_search_title">"Annuaire des salons"</string>
|
||||
<string name="screen_room_error_failed_processing_media">"Échec du traitement des médias à télécharger, veuillez réessayer."</string>
|
||||
<string name="screen_room_error_failed_retrieving_user_details">"Impossible de récupérer les détails de l’utilisateur"</string>
|
||||
<string name="screen_room_member_details_block_alert_action">"Bloquer"</string>
|
||||
@@ -261,7 +269,7 @@
|
||||
<string name="screen_share_open_apple_maps">"Ouvrir dans Apple Maps"</string>
|
||||
<string name="screen_share_open_google_maps">"Ouvrir dans Google Maps"</string>
|
||||
<string name="screen_share_open_osm_maps">"Ouvrir dans OpenStreetMap"</string>
|
||||
<string name="screen_share_this_location_action">"Partager cet position"</string>
|
||||
<string name="screen_share_this_location_action">"Partager cette position"</string>
|
||||
<string name="screen_view_location_title">"Position"</string>
|
||||
<string name="settings_version_number">"Version : %1$s ( %2$s )"</string>
|
||||
<string name="test_language_identifier">"Ang."</string>
|
||||
|
||||
@@ -245,6 +245,10 @@
|
||||
<string name="invite_friends_text">"Beszélgessünk a(z) %1$s: %2$s -n"</string>
|
||||
<string name="login_initial_device_name_android">"%1$s Android"</string>
|
||||
<string name="preference_rageshake">"Az eszköz rázása a hibajelentéshez"</string>
|
||||
<string name="screen_identity_confirmation_subtitle">"A biztonságos üzenetkezelés beállításához ellenőrizze ezt az eszközt."</string>
|
||||
<string name="screen_identity_confirmation_title">"Erősítse meg, hogy Ön az"</string>
|
||||
<string name="screen_identity_confirmed_subtitle">"Mostantól biztonságosan olvashat vagy küldhet üzeneteket, és bármelyik csevegőpartnere megbízhat ebben az eszközben."</string>
|
||||
<string name="screen_identity_confirmed_title">"Eszköz ellenőrizve"</string>
|
||||
<string name="screen_media_picker_error_failed_selection">"Nem sikerült kiválasztani a médiát, próbálja újra."</string>
|
||||
<string name="screen_media_upload_preview_error_failed_processing">"Nem sikerült feldolgozni a feltöltendő médiát, próbálja újra."</string>
|
||||
<string name="screen_media_upload_preview_error_failed_sending">"Nem sikerült a média feltöltése, próbálja újra."</string>
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
<string name="action_decline">"Tolak"</string>
|
||||
<string name="action_delete_poll">"Hapus pemungutan suara"</string>
|
||||
<string name="action_disable">"Nonaktifkan"</string>
|
||||
<string name="action_discard">"Abaikan"</string>
|
||||
<string name="action_done">"Selesai"</string>
|
||||
<string name="action_edit">"Sunting"</string>
|
||||
<string name="action_edit_poll">"Sunting pemungutan suara"</string>
|
||||
@@ -55,6 +56,7 @@
|
||||
<string name="action_enter_pin">"Masukkan PIN"</string>
|
||||
<string name="action_forgot_password">"Lupa kata sandi?"</string>
|
||||
<string name="action_forward">"Teruskan"</string>
|
||||
<string name="action_go_back">"Kembali"</string>
|
||||
<string name="action_invite">"Undang"</string>
|
||||
<string name="action_invite_friends">"Undang orang-orang"</string>
|
||||
<string name="action_invite_friends_to_app">"Undang orang-orang ke %1$s"</string>
|
||||
@@ -63,6 +65,7 @@
|
||||
<string name="action_join">"Gabung"</string>
|
||||
<string name="action_learn_more">"Pelajari lebih lanjut"</string>
|
||||
<string name="action_leave">"Tinggalkan"</string>
|
||||
<string name="action_leave_conversation">"Tinggalkan percakapan"</string>
|
||||
<string name="action_leave_room">"Tinggalkan ruangan"</string>
|
||||
<string name="action_load_more">"Muat lainnya"</string>
|
||||
<string name="action_manage_account">"Kelola akun"</string>
|
||||
@@ -81,6 +84,7 @@
|
||||
<string name="action_reply_in_thread">"Balas dalam utas"</string>
|
||||
<string name="action_report_bug">"Laporkan kutu"</string>
|
||||
<string name="action_report_content">"Laporkan Konten"</string>
|
||||
<string name="action_reset">"Atur ulang"</string>
|
||||
<string name="action_retry">"Coba lagi"</string>
|
||||
<string name="action_retry_decryption">"Coba dekripsi ulang"</string>
|
||||
<string name="action_save">"Simpan"</string>
|
||||
@@ -108,7 +112,9 @@
|
||||
<string name="common_analytics">"Analitik"</string>
|
||||
<string name="common_appearance">"Penampilan"</string>
|
||||
<string name="common_audio">"Audio"</string>
|
||||
<string name="common_blocked_users">"Pengguna yang diblokir"</string>
|
||||
<string name="common_bubbles">"Gelembung"</string>
|
||||
<string name="common_call_invite">"Panggilan sedang berjalan (tidak didukung)"</string>
|
||||
<string name="common_chat_backup">"Pencadangan percakapan"</string>
|
||||
<string name="common_copyright">"Hak cipta"</string>
|
||||
<string name="common_creating_room">"Membuat ruangan…"</string>
|
||||
@@ -124,6 +130,9 @@
|
||||
<string name="common_enter_your_pin">"Masukkan PIN Anda"</string>
|
||||
<string name="common_error">"Eror"</string>
|
||||
<string name="common_everyone">"Semua orang"</string>
|
||||
<string name="common_failed">"Gagal"</string>
|
||||
<string name="common_favourite">"Favorit"</string>
|
||||
<string name="common_favourited">"Difavoritkan"</string>
|
||||
<string name="common_file">"Berkas"</string>
|
||||
<string name="common_file_saved_on_disk_android">"Berkas disimpan ke Unduhan"</string>
|
||||
<string name="common_forward_message">"Teruskan pesan"</string>
|
||||
@@ -147,6 +156,7 @@
|
||||
<string name="common_mute">"Bisukan"</string>
|
||||
<string name="common_no_results">"Tidak ada hasil"</string>
|
||||
<string name="common_offline">"Luring"</string>
|
||||
<string name="common_or">"atau"</string>
|
||||
<string name="common_password">"Kata sandi"</string>
|
||||
<string name="common_people">"Orang"</string>
|
||||
<string name="common_permalink">"Tautan Permanen"</string>
|
||||
@@ -171,6 +181,8 @@
|
||||
<string name="common_room">"Ruangan"</string>
|
||||
<string name="common_room_name">"Nama ruangan"</string>
|
||||
<string name="common_room_name_placeholder">"misalnya, nama proyek Anda"</string>
|
||||
<string name="common_saved_changes">"Perubahan disimpan"</string>
|
||||
<string name="common_saving">"Menyimpan"</string>
|
||||
<string name="common_screen_lock">"Layar kunci"</string>
|
||||
<string name="common_search_for_someone">"Cari seseorang"</string>
|
||||
<string name="common_search_results">"Hasil pencarian"</string>
|
||||
@@ -213,6 +225,8 @@
|
||||
<string name="dialog_title_error">"Eror"</string>
|
||||
<string name="dialog_title_success">"Berhasil"</string>
|
||||
<string name="dialog_title_warning">"Peringatan"</string>
|
||||
<string name="dialog_unsaved_changes_description_android">"Perubahan Anda belum disimpan. Apakah Anda yakin ingin kembali?"</string>
|
||||
<string name="dialog_unsaved_changes_title">"Simpan perubahan?"</string>
|
||||
<string name="error_failed_creating_the_permalink">"Gagal membuat tautan permanen"</string>
|
||||
<string name="error_failed_loading_map">"%1$s tidak dapat memuat peta. Silakan coba lagi nanti."</string>
|
||||
<string name="error_failed_loading_messages">"Gagal memuat pesan"</string>
|
||||
@@ -227,6 +241,10 @@
|
||||
<string name="invite_friends_text">"Hai, bicaralah dengan saya di %1$s: %2$s"</string>
|
||||
<string name="login_initial_device_name_android">"%1$s Android"</string>
|
||||
<string name="preference_rageshake">"Rageshake untuk melaporkan kutu"</string>
|
||||
<string name="screen_identity_confirmation_subtitle">"Verifikasi perangkat ini untuk menyiapkan perpesanan aman."</string>
|
||||
<string name="screen_identity_confirmation_title">"Konfirmasi bahwa ini Anda"</string>
|
||||
<string name="screen_identity_confirmed_subtitle">"Sekarang Anda dapat membaca atau mengirim pesan dengan aman, dan siapa pun yang mengobrol dengan Anda juga dapat mempercayai perangkat ini."</string>
|
||||
<string name="screen_identity_confirmed_title">"Perangkat terverifikasi"</string>
|
||||
<string name="screen_media_picker_error_failed_selection">"Gagal memilih media, silakan coba lagi."</string>
|
||||
<string name="screen_media_upload_preview_error_failed_processing">"Gagal memproses media untuk diunggah, silakan coba lagi."</string>
|
||||
<string name="screen_media_upload_preview_error_failed_sending">"Gagal mengunggah media, silakan coba lagi."</string>
|
||||
|
||||
@@ -188,7 +188,7 @@
|
||||
<string name="common_rich_text_editor">"Редактор форматированного текста"</string>
|
||||
<string name="common_room">"Комната"</string>
|
||||
<string name="common_room_name">"Название комнаты"</string>
|
||||
<string name="common_room_name_placeholder">"например, название вашего проекта"</string>
|
||||
<string name="common_room_name_placeholder">"напр., название вашего проекта"</string>
|
||||
<string name="common_saved_changes">"Сохраненные изменения"</string>
|
||||
<string name="common_saving">"Сохранение"</string>
|
||||
<string name="common_screen_lock">"Блокировка экрана"</string>
|
||||
@@ -249,9 +249,15 @@
|
||||
<string name="invite_friends_text">"Привет, поговори со мной по %1$s: %2$s"</string>
|
||||
<string name="login_initial_device_name_android">"%1$s Android"</string>
|
||||
<string name="preference_rageshake">"Встряхните устройство, чтобы сообщить об ошибке"</string>
|
||||
<string name="screen_identity_confirmation_subtitle">"Подтвердите это устройство, чтобы настроить безопасный обмен сообщениями."</string>
|
||||
<string name="screen_identity_confirmation_title">"Подтвердите, что это вы"</string>
|
||||
<string name="screen_identity_confirmed_subtitle">"Теперь вы можете безопасно читать и отправлять сообщения, и все, с кем вы общаетесь в чате, также могут доверять этому устройству."</string>
|
||||
<string name="screen_identity_confirmed_title">"Устройство проверено"</string>
|
||||
<string name="screen_media_picker_error_failed_selection">"Не удалось выбрать носитель, попробуйте еще раз."</string>
|
||||
<string name="screen_media_upload_preview_error_failed_processing">"Не удалось обработать медиафайл для загрузки, попробуйте еще раз."</string>
|
||||
<string name="screen_media_upload_preview_error_failed_sending">"Не удалось загрузить медиафайлы, попробуйте еще раз."</string>
|
||||
<string name="screen_room_directory_search_loading_error">"Сбой загрузки"</string>
|
||||
<string name="screen_room_directory_search_title">"Каталог комнат"</string>
|
||||
<string name="screen_room_error_failed_processing_media">"Не удалось обработать медиафайл для загрузки, попробуйте еще раз."</string>
|
||||
<string name="screen_room_error_failed_retrieving_user_details">"Не удалось получить данные о пользователе"</string>
|
||||
<string name="screen_room_member_details_block_alert_action">"Заблокировать"</string>
|
||||
|
||||
@@ -248,9 +248,17 @@
|
||||
<string name="invite_friends_text">"Ahoj, porozprávajte sa so mnou na %1$s: %2$s"</string>
|
||||
<string name="login_initial_device_name_android">"%1$s Android"</string>
|
||||
<string name="preference_rageshake">"Zúrivo potriasť pre nahlásenie chyby"</string>
|
||||
<string name="screen_identity_confirmation_subtitle">"Ak chcete nastaviť zabezpečené správy, overte toto zariadenie."</string>
|
||||
<string name="screen_identity_confirmation_title">"Potvrďte, že ste to vy"</string>
|
||||
<string name="screen_identity_confirmed_subtitle">"Teraz môžete bezpečne čítať alebo odosielať správy a tomuto zariadeniu môže dôverovať aj ktokoľvek, s kým konverzujete."</string>
|
||||
<string name="screen_identity_confirmed_title">"Zariadenie overené"</string>
|
||||
<string name="screen_identity_use_another_device">"Použiť iné zariadenie"</string>
|
||||
<string name="screen_identity_waiting_on_other_device">"Čaká sa na druhom zariadení…"</string>
|
||||
<string name="screen_media_picker_error_failed_selection">"Nepodarilo sa vybrať médium, skúste to prosím znova."</string>
|
||||
<string name="screen_media_upload_preview_error_failed_processing">"Nepodarilo sa spracovať médiá na odoslanie, skúste to prosím znova."</string>
|
||||
<string name="screen_media_upload_preview_error_failed_sending">"Nepodarilo sa nahrať médiá, skúste to prosím znova."</string>
|
||||
<string name="screen_room_directory_search_loading_error">"Načítanie zlyhalo"</string>
|
||||
<string name="screen_room_directory_search_title">"Adresár miestností"</string>
|
||||
<string name="screen_room_error_failed_processing_media">"Nepodarilo sa spracovať médiá na odoslanie, skúste to prosím znova."</string>
|
||||
<string name="screen_room_error_failed_retrieving_user_details">"Nepodarilo sa získať údaje o používateľovi"</string>
|
||||
<string name="screen_room_member_details_block_alert_action">"Zablokovať"</string>
|
||||
|
||||
@@ -86,6 +86,7 @@
|
||||
<string name="common_analytics">"Analysdata"</string>
|
||||
<string name="common_audio">"Ljud"</string>
|
||||
<string name="common_bubbles">"Bubblor"</string>
|
||||
<string name="common_chat_backup">"Chattsäkerhetskopia"</string>
|
||||
<string name="common_copyright">"Upphovsrätt"</string>
|
||||
<string name="common_creating_room">"Skapar rum …"</string>
|
||||
<string name="common_current_user_left_room">"Lämnade rummet"</string>
|
||||
|
||||
@@ -51,6 +51,7 @@
|
||||
<string name="action_decline">"Відхилити"</string>
|
||||
<string name="action_delete_poll">"Видалити опитування"</string>
|
||||
<string name="action_disable">"Вимкнути"</string>
|
||||
<string name="action_discard">"Скасувати"</string>
|
||||
<string name="action_done">"Готово"</string>
|
||||
<string name="action_edit">"Редагувати"</string>
|
||||
<string name="action_edit_poll">"Редагувати опитування"</string>
|
||||
@@ -59,6 +60,7 @@
|
||||
<string name="action_enter_pin">"Введіть PIN-код"</string>
|
||||
<string name="action_forgot_password">"Забули пароль?"</string>
|
||||
<string name="action_forward">"Переслати"</string>
|
||||
<string name="action_go_back">"Повернутися назад"</string>
|
||||
<string name="action_invite">"Запросити"</string>
|
||||
<string name="action_invite_friends">"Запросити людей"</string>
|
||||
<string name="action_invite_friends_to_app">"Запросити людей до %1$s"</string>
|
||||
@@ -83,7 +85,7 @@
|
||||
<string name="action_react">"Реакція"</string>
|
||||
<string name="action_remove">"Вилучити"</string>
|
||||
<string name="action_reply">"Відповісти"</string>
|
||||
<string name="action_reply_in_thread">"Відповісти в темі"</string>
|
||||
<string name="action_reply_in_thread">"Відповісти в гілці"</string>
|
||||
<string name="action_report_bug">"Повідомити про помилку"</string>
|
||||
<string name="action_report_content">"Повідомити про вміст"</string>
|
||||
<string name="action_reset">"Скинути"</string>
|
||||
@@ -247,9 +249,15 @@
|
||||
<string name="invite_friends_text">"Привіт, пишіть мені за адресою %1$s: %2$s"</string>
|
||||
<string name="login_initial_device_name_android">"%1$s Android"</string>
|
||||
<string name="preference_rageshake">"Повідомити про ваду за допомогою Rageshake"</string>
|
||||
<string name="screen_identity_confirmation_subtitle">"Перевірте цей пристрій, щоб налаштувати безпечний обмін повідомленнями."</string>
|
||||
<string name="screen_identity_confirmation_title">"Підтвердіть, що це ви"</string>
|
||||
<string name="screen_identity_confirmed_subtitle">"Тепер ви можете безпечно читати або надсилати повідомлення, і кожен, з ким ви спілкуєтесь, також може довіряти цьому пристрою."</string>
|
||||
<string name="screen_identity_confirmed_title">"Пристрій перевірено"</string>
|
||||
<string name="screen_media_picker_error_failed_selection">"Не вдалося вибрати медіафайл, спробуйте ще раз."</string>
|
||||
<string name="screen_media_upload_preview_error_failed_processing">"Не вдалося обробити медіафайл для завантаження, спробуйте ще раз."</string>
|
||||
<string name="screen_media_upload_preview_error_failed_sending">"Не вдалося завантажити медіафайл, спробуйте ще раз."</string>
|
||||
<string name="screen_room_directory_search_loading_error">"Не вдалося завантажити"</string>
|
||||
<string name="screen_room_directory_search_title">"Каталог кімнат"</string>
|
||||
<string name="screen_room_error_failed_processing_media">"Не вдалося обробити медіафайл для завантаження, спробуйте ще раз."</string>
|
||||
<string name="screen_room_error_failed_retrieving_user_details">"Не вдалося отримати дані користувача"</string>
|
||||
<string name="screen_room_member_details_block_alert_action">"Заблокувати"</string>
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
<string name="action_decline">"拒絕"</string>
|
||||
<string name="action_delete_poll">"刪除投票"</string>
|
||||
<string name="action_disable">"停用"</string>
|
||||
<string name="action_discard">"捨棄"</string>
|
||||
<string name="action_done">"完成"</string>
|
||||
<string name="action_edit">"編輯"</string>
|
||||
<string name="action_edit_poll">"編輯投票"</string>
|
||||
@@ -53,6 +54,7 @@
|
||||
<string name="action_enter_pin">"輸入 PIN 碼"</string>
|
||||
<string name="action_forgot_password">"忘記密碼?"</string>
|
||||
<string name="action_forward">"轉寄"</string>
|
||||
<string name="action_go_back">"返回"</string>
|
||||
<string name="action_invite">"邀請"</string>
|
||||
<string name="action_invite_friends">"邀請夥伴"</string>
|
||||
<string name="action_invite_friends_to_app">"邀請朋友使用 %1$s"</string>
|
||||
@@ -61,6 +63,7 @@
|
||||
<string name="action_join">"加入"</string>
|
||||
<string name="action_learn_more">"了解更多"</string>
|
||||
<string name="action_leave">"離開"</string>
|
||||
<string name="action_leave_conversation">"離開對話"</string>
|
||||
<string name="action_leave_room">"離開聊天室"</string>
|
||||
<string name="action_load_more">"載入更多"</string>
|
||||
<string name="action_manage_account">"管理帳號"</string>
|
||||
@@ -79,6 +82,7 @@
|
||||
<string name="action_reply_in_thread">"在討論串中回覆"</string>
|
||||
<string name="action_report_bug">"回報程式錯誤"</string>
|
||||
<string name="action_report_content">"檢舉內容"</string>
|
||||
<string name="action_reset">"重設"</string>
|
||||
<string name="action_retry">"再試一次"</string>
|
||||
<string name="action_retry_decryption">"再次嘗試解密"</string>
|
||||
<string name="action_save">"儲存"</string>
|
||||
@@ -105,6 +109,7 @@
|
||||
<string name="common_analytics">"分析"</string>
|
||||
<string name="common_appearance">"外觀"</string>
|
||||
<string name="common_audio">"音訊"</string>
|
||||
<string name="common_blocked_users">"封鎖的使用者"</string>
|
||||
<string name="common_bubbles">"泡泡"</string>
|
||||
<string name="common_chat_backup">"聊天室備份"</string>
|
||||
<string name="common_copyright">"著作權"</string>
|
||||
@@ -121,6 +126,7 @@
|
||||
<string name="common_enter_your_pin">"輸入您的 PIN 碼"</string>
|
||||
<string name="common_error">"錯誤"</string>
|
||||
<string name="common_everyone">"所有人"</string>
|
||||
<string name="common_failed">"失敗"</string>
|
||||
<string name="common_favourite">"我的最愛"</string>
|
||||
<string name="common_favourited">"我的最愛"</string>
|
||||
<string name="common_file">"檔案"</string>
|
||||
@@ -169,6 +175,7 @@
|
||||
<string name="common_room">"聊天室"</string>
|
||||
<string name="common_room_name">"聊天室名稱"</string>
|
||||
<string name="common_room_name_placeholder">"範例:您的計畫名稱"</string>
|
||||
<string name="common_saving">"儲存中"</string>
|
||||
<string name="common_screen_lock">"螢幕鎖定"</string>
|
||||
<string name="common_search_for_someone">"搜尋使用者"</string>
|
||||
<string name="common_search_results">"搜尋結果"</string>
|
||||
@@ -207,16 +214,22 @@
|
||||
<string name="dialog_title_error">"錯誤"</string>
|
||||
<string name="dialog_title_success">"成功"</string>
|
||||
<string name="dialog_title_warning">"警告"</string>
|
||||
<string name="dialog_unsaved_changes_description_android">"變更尚未儲存,您確定要返回嗎?"</string>
|
||||
<string name="dialog_unsaved_changes_title">"是否儲存變更?"</string>
|
||||
<string name="error_failed_creating_the_permalink">"無法建立永久連結"</string>
|
||||
<string name="error_failed_loading_map">"%1$s無法載入地圖。請稍後再試。"</string>
|
||||
<string name="error_failed_loading_messages">"無法載入訊息"</string>
|
||||
<string name="error_failed_locating_user">"%1$s無法取得您的位置。請稍後再試。"</string>
|
||||
<string name="error_failed_locating_user">"%1$s 無法取得您的位置。請稍後再試。"</string>
|
||||
<string name="error_failed_uploading_voice_message">"無法上傳語音訊息。"</string>
|
||||
<string name="error_missing_location_auth_android">"%1$s 沒有權限存取您的位置。您可以到設定中開啟權限。"</string>
|
||||
<string name="error_missing_location_rationale_android">"%1$s 沒有權限存取您的位置。請在下方開啟權限。"</string>
|
||||
<string name="error_missing_microphone_voice_rationale_android">"%1$s 沒有權限存取您的麥克風。您需要開啟權限才能錄製語音訊息。"</string>
|
||||
<string name="error_some_messages_have_not_been_sent">"有些訊息尚未傳送"</string>
|
||||
<string name="invite_friends_text">"嘿,來 %1$s 和我聊天:%2$s"</string>
|
||||
<string name="login_initial_device_name_android">"%1$s Android"</string>
|
||||
<string name="screen_identity_confirmed_title">"裝置已認證"</string>
|
||||
<string name="screen_identity_use_another_device">"使用另一個裝置"</string>
|
||||
<string name="screen_identity_waiting_on_other_device">"正在等待其他裝置……"</string>
|
||||
<string name="screen_media_upload_preview_error_failed_sending">"無法上傳媒體檔案,請稍後再試。"</string>
|
||||
<string name="screen_room_member_details_block_alert_action">"封鎖"</string>
|
||||
<string name="screen_room_member_details_block_user">"封鎖使用者"</string>
|
||||
|
||||
@@ -245,9 +245,17 @@
|
||||
<string name="invite_friends_text">"Hey, talk to me on %1$s: %2$s"</string>
|
||||
<string name="login_initial_device_name_android">"%1$s Android"</string>
|
||||
<string name="preference_rageshake">"Rageshake to report bug"</string>
|
||||
<string name="screen_identity_confirmation_subtitle">"Verify this device to set up secure messaging."</string>
|
||||
<string name="screen_identity_confirmation_title">"Confirm that it\'s you"</string>
|
||||
<string name="screen_identity_confirmed_subtitle">"Now you can read or send messages securely, and anyone you chat with can also trust this device."</string>
|
||||
<string name="screen_identity_confirmed_title">"Device verified"</string>
|
||||
<string name="screen_identity_use_another_device">"Use another device"</string>
|
||||
<string name="screen_identity_waiting_on_other_device">"Waiting on other device…"</string>
|
||||
<string name="screen_media_picker_error_failed_selection">"Failed selecting media, please try again."</string>
|
||||
<string name="screen_media_upload_preview_error_failed_processing">"Failed processing media to upload, please try again."</string>
|
||||
<string name="screen_media_upload_preview_error_failed_sending">"Failed uploading media, please try again."</string>
|
||||
<string name="screen_room_directory_search_loading_error">"Failed loading"</string>
|
||||
<string name="screen_room_directory_search_title">"Room directory"</string>
|
||||
<string name="screen_room_error_failed_processing_media">"Failed processing media to upload, please try again."</string>
|
||||
<string name="screen_room_error_failed_retrieving_user_details">"Could not retrieve user details"</string>
|
||||
<string name="screen_room_member_details_block_alert_action">"Block"</string>
|
||||
|
||||
@@ -56,7 +56,7 @@ private const val versionMinor = 4
|
||||
// Note: even values are reserved for regular release, odd values for hotfix release.
|
||||
// When creating a hotfix, you should decrease the value, since the current value
|
||||
// is the value for the next regular release.
|
||||
private const val versionPatch = 7
|
||||
private const val versionPatch = 8
|
||||
|
||||
object Versions {
|
||||
val versionCode = 4_000_000 + versionMajor * 1_00_00 + versionMinor * 1_00 + versionPatch
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user