diff --git a/apps/android/app/src/main/java/chat/simplex/app/model/ChatModel.kt b/apps/android/app/src/main/java/chat/simplex/app/model/ChatModel.kt index 083de8548..bbd9aea77 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/model/ChatModel.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/model/ChatModel.kt @@ -1554,8 +1554,8 @@ sealed class RcvGroupEvent() { is MemberAdded -> String.format(generalGetString(R.string.rcv_group_event_member_added), profile.profileViewName) is MemberConnected -> generalGetString(R.string.rcv_group_event_member_connected) is MemberLeft -> generalGetString(R.string.rcv_group_event_member_left) - is MemberRole -> String.format(generalGetString(R.string.member_role), profile.profileViewName, role.text) - is UserRole -> String.format(generalGetString(R.string.your_member_role), role.text) + is MemberRole -> String.format(generalGetString(R.string.rcv_group_event_changed_member_role), profile.profileViewName, role.text) + is UserRole -> String.format(generalGetString(R.string.rcv_group_event_changed_your_role), role.text) is MemberDeleted -> String.format(generalGetString(R.string.rcv_group_event_member_deleted), profile.profileViewName) is UserDeleted -> generalGetString(R.string.rcv_group_event_user_deleted) is GroupDeleted -> generalGetString(R.string.rcv_group_event_group_deleted) @@ -1573,8 +1573,8 @@ sealed class SndGroupEvent() { @Serializable @SerialName("groupUpdated") class GroupUpdated(val groupProfile: GroupProfile): SndGroupEvent() val text: String get() = when (this) { - is MemberRole -> String.format(generalGetString(R.string.member_role), profile.profileViewName, role.text) - is UserRole -> String.format(generalGetString(R.string.your_member_role), role.text) + is MemberRole -> String.format(generalGetString(R.string.snd_group_event_changed_member_role), profile.profileViewName, role.text) + is UserRole -> String.format(generalGetString(R.string.snd_group_event_changed_role_for_yourself), role.text) is MemberDeleted -> String.format(generalGetString(R.string.snd_group_event_member_deleted), profile.profileViewName) is UserLeft -> generalGetString(R.string.snd_group_event_user_left) is GroupUpdated -> generalGetString(R.string.snd_group_event_group_profile_updated) diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/chat/group/GroupMemberInfoView.kt b/apps/android/app/src/main/java/chat/simplex/app/views/chat/group/GroupMemberInfoView.kt index 8926c91a7..255608eae 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/chat/group/GroupMemberInfoView.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/chat/group/GroupMemberInfoView.kt @@ -136,14 +136,14 @@ fun GroupMemberInfoLayout( SectionView(title = stringResource(R.string.member_info_section_title_member)) { InfoRow(stringResource(R.string.info_row_group), groupInfo.displayName) SectionDivider() - /*val roles = remember { member.canChangeRoleTo(groupInfo) } + val roles = remember { member.canChangeRoleTo(groupInfo) } if (roles != null) { SectionItemView { RoleSelectionRow(roles, newRole, onRoleSelected) } - } else {*/ + } else { InfoRow(stringResource(R.string.role_in_group), member.memberRole.text) - //} + } val conn = member.activeConn if (conn != null) { SectionDivider() diff --git a/apps/android/app/src/main/res/values-de/strings.xml b/apps/android/app/src/main/res/values-de/strings.xml index 85a72f333..0024defc5 100644 --- a/apps/android/app/src/main/res/values-de/strings.xml +++ b/apps/android/app/src/main/res/values-de/strings.xml @@ -706,17 +706,21 @@ Die Gruppeneinladung ist abgelaufen - Sie haben %1$s eingeladen. + ***sie haben %1$s eingeladen. verbunden verlassen + ***changed role of %s to %s + ***changed your role to %s entfernte %1$s. hat Sie entfernt - Gruppe gelöscht - aktualisiertes Gruppenprofil + gruppe gelöscht + aktualisiertes gruppenprofil ***invited via your group link - Sie haben %1$s entfernt. - Sie haben verlassen - Gruppenprofil aktualisiert + ***you changed role of %s to %s + ***you changed role for yourself to %s + sie haben %1$s entfernt. + sie haben verlassen + gruppenprofil aktualisiert Mitglied @@ -790,8 +794,6 @@ Die Mitgliederrolle wird auf \"%s\" geändert. Das Mitglied wird eine neue Einladung erhalten. Fehler beim Entfernen des Mitglieds Fehler beim Ändern der Rolle - Mitglieder %s Rolle: %s - Meine Rolle: %s Gruppe Verbindung direkt diff --git a/apps/android/app/src/main/res/values-ru/strings.xml b/apps/android/app/src/main/res/values-ru/strings.xml index 79bea5718..ed2ca4312 100644 --- a/apps/android/app/src/main/res/values-ru/strings.xml +++ b/apps/android/app/src/main/res/values-ru/strings.xml @@ -709,11 +709,15 @@ пригласил(а) %1$s соединен(а) покинул(а) группу + поменял(а) роль члена %s на: %s + поменял(а) вашу роль на: %s удалил(а) %1$s удалил(а) вас из группы удалил(а) группу обновил(а) профиль группы приглашен(а) через вашу ссылку группы + вы поменяли роль члена %s на: %s + вы поменяли роль себе на: %s вы удалили %1$s вы покинули группу профиль группы обновлен @@ -790,8 +794,6 @@ Роль будет изменена на \"%s\". Будет отправлено новое приглашение. Ошибка при удалении члена группы Ошибка при изменении роли - роль %s: %s - ваша роль: %s Группа Соединение прямое diff --git a/apps/android/app/src/main/res/values/strings.xml b/apps/android/app/src/main/res/values/strings.xml index 670f22860..322de86e9 100644 --- a/apps/android/app/src/main/res/values/strings.xml +++ b/apps/android/app/src/main/res/values/strings.xml @@ -709,11 +709,15 @@ invited %1$s connected left + changed role of %s to %s + changed your role to %s removed %1$s removed you deleted group updated group profile invited via your group link + you changed role of %s to %s + you changed role for yourself to %s you removed %1$s you left group profile updated @@ -790,8 +794,6 @@ The role will be changed to \"%s\". The member will receive a new invitation. Error removing member Error changing role - member %s role: %s - your role: %s Group Connection direct diff --git a/apps/ios/Shared/Views/Chat/Group/GroupMemberInfoView.swift b/apps/ios/Shared/Views/Chat/Group/GroupMemberInfoView.swift index c7e67bc7b..2dc7554fb 100644 --- a/apps/ios/Shared/Views/Chat/Group/GroupMemberInfoView.swift +++ b/apps/ios/Shared/Views/Chat/Group/GroupMemberInfoView.swift @@ -48,27 +48,27 @@ struct GroupMemberInfoView: View { Section("Member") { infoRow("Group", groupInfo.displayName) -// HStack { -// if let roles = member.canChangeRoleTo(groupInfo: groupInfo) { -// Picker("Change role", selection: $newRole) { -// ForEach(roles) { role in -// Text(role.text) -// .foregroundStyle(.secondary) -// } -// } -// } else { -// Text("Role") -// Spacer() -// Text(member.memberRole.text) -// .foregroundStyle(.secondary) -// } -// } -// .onAppear { newRole = member.memberRole } -// .onChange(of: newRole) { _ in -// if newRole != member.memberRole { -// alert = .changeMemberRoleAlert(role: newRole) -// } -// } + HStack { + if let roles = member.canChangeRoleTo(groupInfo: groupInfo) { + Picker("Change role", selection: $newRole) { + ForEach(roles) { role in + Text(role.text) + .foregroundStyle(.secondary) + } + } + } else { + Text("Role") + Spacer() + Text(member.memberRole.text) + .foregroundStyle(.secondary) + } + } + .onAppear { newRole = member.memberRole } + .onChange(of: newRole) { _ in + if newRole != member.memberRole { + alert = .changeMemberRoleAlert(role: newRole) + } + } // TODO invited by - need to get contact by contact id if let conn = member.activeConn { diff --git a/apps/ios/SimpleX Localizations/de.xcloc/Localized Contents/de.xliff b/apps/ios/SimpleX Localizations/de.xcloc/Localized Contents/de.xliff index 178324f9b..d0dd1d335 100644 --- a/apps/ios/SimpleX Localizations/de.xcloc/Localized Contents/de.xliff +++ b/apps/ios/SimpleX Localizations/de.xcloc/Localized Contents/de.xliff @@ -368,6 +368,11 @@ Die Mitgliederrolle ändern? No comment provided by engineer. + + Change role + Rolle ändern + No comment provided by engineer. + Chat archive Datenbank Archiv @@ -1968,6 +1973,11 @@ Wir werden Serverredundanzen hinzufügen, um verloren gegangene Nachrichten zu v Zurückkehren No comment provided by engineer. + + Role + Rolle + No comment provided by engineer. + Run chat Chat starten @@ -2856,6 +2866,16 @@ SimpleX-Server können Ihr Profil nicht einsehen. Anrufen… call status + + changed role of %1$@ to %2$@ + ***changed role of %1$@ to %2$@ + rcv group event chat item + + + changed your role to %@ + ***changed your role to %@ + rcv group event chat item + colored farbig @@ -3056,12 +3076,6 @@ SimpleX-Server können Ihr Profil nicht einsehen. Mitglied member role - - member %1$@ role: %2$@ - Mitglieder %1$@ Rolle: %2$@ - rcv group event chat item - snd group event chat item - connected verbunden @@ -3217,6 +3231,16 @@ SimpleX-Server können Ihr Profil nicht einsehen. Sie sind zur Gruppe eingeladen No comment provided by engineer. + + you changed role for yourself to %@ + ***you changed role for yourself to %@ + snd group event chat item + + + you changed role of %1$@ to %2$@ + ***you changed role of %1$@ to %2$@ + snd group event chat item + you left Sie haben verlassen @@ -3242,12 +3266,6 @@ SimpleX-Server können Ihr Profil nicht einsehen. Sie: No comment provided by engineer. - - your role: %@ - Meine Rolle: %@ - rcv group event chat item - snd group event chat item - \~strike~ \~durchstreichen~ diff --git a/apps/ios/SimpleX Localizations/en.xcloc/Localized Contents/en.xliff b/apps/ios/SimpleX Localizations/en.xcloc/Localized Contents/en.xliff index 506423baa..cad64e6d2 100644 --- a/apps/ios/SimpleX Localizations/en.xcloc/Localized Contents/en.xliff +++ b/apps/ios/SimpleX Localizations/en.xcloc/Localized Contents/en.xliff @@ -368,6 +368,11 @@ Change member role? No comment provided by engineer. + + Change role + Change role + No comment provided by engineer. + Chat archive Chat archive @@ -1968,6 +1973,11 @@ We will be adding server redundancy to prevent lost messages. Revert No comment provided by engineer. + + Role + Role + No comment provided by engineer. + Run chat Run chat @@ -2856,6 +2866,16 @@ SimpleX servers cannot see your profile. calling… call status + + changed role of %1$@ to %2$@ + changed role of %1$@ to %2$@ + rcv group event chat item + + + changed your role to %@ + changed your role to %@ + rcv group event chat item + colored colored @@ -3056,12 +3076,6 @@ SimpleX servers cannot see your profile. member member role - - member %1$@ role: %2$@ - member %1$@ role: %2$@ - rcv group event chat item - snd group event chat item - connected connected @@ -3217,6 +3231,16 @@ SimpleX servers cannot see your profile. you are invited to group No comment provided by engineer. + + you changed role for yourself to %@ + you changed role for yourself to %@ + snd group event chat item + + + you changed role of %1$@ to %2$@ + you changed role of %1$@ to %2$@ + snd group event chat item + you left you left @@ -3242,12 +3266,6 @@ SimpleX servers cannot see your profile. you: No comment provided by engineer. - - your role: %@ - your role: %@ - rcv group event chat item - snd group event chat item - \~strike~ \~strike~ diff --git a/apps/ios/SimpleX Localizations/ru.xcloc/Localized Contents/ru.xliff b/apps/ios/SimpleX Localizations/ru.xcloc/Localized Contents/ru.xliff index 3a64b907c..35aeb6c76 100644 --- a/apps/ios/SimpleX Localizations/ru.xcloc/Localized Contents/ru.xliff +++ b/apps/ios/SimpleX Localizations/ru.xcloc/Localized Contents/ru.xliff @@ -368,6 +368,11 @@ Поменять роль члена группы? No comment provided by engineer. + + Change role + Поменять роль + No comment provided by engineer. + Chat archive Архив чата @@ -1968,6 +1973,11 @@ We will be adding server redundancy to prevent lost messages. Отменить изменения No comment provided by engineer. + + Role + Роль + No comment provided by engineer. + Run chat Запустить chat @@ -2856,6 +2866,16 @@ SimpleX серверы не могут получить доступ к ваше входящий звонок… call status + + changed role of %1$@ to %2$@ + поменял(а) роль члена %1$@ на: %2$@ + rcv group event chat item + + + changed your role to %@ + поменял(а) вашу роль на: %@ + rcv group event chat item + colored цвет @@ -3056,12 +3076,6 @@ SimpleX серверы не могут получить доступ к ваше член группы member role - - member %1$@ role: %2$@ - роль %1$@: %2$@ - rcv group event chat item - snd group event chat item - connected соединен(а) @@ -3217,6 +3231,16 @@ SimpleX серверы не могут получить доступ к ваше вы приглашены в группу No comment provided by engineer. + + you changed role for yourself to %@ + вы поменяли роль себе на: %@ + snd group event chat item + + + you changed role of %1$@ to %2$@ + вы поменяли роль члена %1$@ на: %2$@ + snd group event chat item + you left вы покинули группу @@ -3242,12 +3266,6 @@ SimpleX серверы не могут получить доступ к ваше вы: No comment provided by engineer. - - your role: %@ - ваша роль: %@ - rcv group event chat item - snd group event chat item - \~strike~ \~зачеркнуть~ diff --git a/apps/ios/SimpleXChat/ChatTypes.swift b/apps/ios/SimpleXChat/ChatTypes.swift index cef37098d..1feab30c7 100644 --- a/apps/ios/SimpleXChat/ChatTypes.swift +++ b/apps/ios/SimpleXChat/ChatTypes.swift @@ -1458,9 +1458,9 @@ public enum RcvGroupEvent: Decodable { case .memberConnected: return NSLocalizedString("member connected", comment: "rcv group event chat item") case .memberLeft: return NSLocalizedString("left", comment: "rcv group event chat item") case let .memberRole(_, profile, role): - return String.localizedStringWithFormat(NSLocalizedString("member %@ role: %@", comment: "rcv group event chat item"), profile.profileViewName, role.text) + return String.localizedStringWithFormat(NSLocalizedString("changed role of %@ to %@", comment: "rcv group event chat item"), profile.profileViewName, role.text) case let .userRole(role): - return String.localizedStringWithFormat(NSLocalizedString("your role: %@", comment: "rcv group event chat item"), role.text) + return String.localizedStringWithFormat(NSLocalizedString("changed your role to %@", comment: "rcv group event chat item"), role.text) case let .memberDeleted(_, profile): return String.localizedStringWithFormat(NSLocalizedString("removed %@", comment: "rcv group event chat item"), profile.profileViewName) case .userDeleted: return NSLocalizedString("removed you", comment: "rcv group event chat item") @@ -1481,9 +1481,9 @@ public enum SndGroupEvent: Decodable { var text: String { switch self { case let .memberRole(_, profile, role): - return String.localizedStringWithFormat(NSLocalizedString("member %@ role: %@", comment: "snd group event chat item"), profile.profileViewName, role.text) + return String.localizedStringWithFormat(NSLocalizedString("you changed role of %@ to %@", comment: "snd group event chat item"), profile.profileViewName, role.text) case let .userRole(role): - return String.localizedStringWithFormat(NSLocalizedString("your role: %@", comment: "snd group event chat item"), role.text) + return String.localizedStringWithFormat(NSLocalizedString("you changed role for yourself to %@", comment: "snd group event chat item"), role.text) case let .memberDeleted(_, profile): return String.localizedStringWithFormat(NSLocalizedString("you removed %@", comment: "snd group event chat item"), profile.profileViewName) case .userLeft: return NSLocalizedString("you left", comment: "snd group event chat item") diff --git a/apps/ios/de.lproj/Localizable.strings b/apps/ios/de.lproj/Localizable.strings index 41a134710..a5f9c90a4 100644 --- a/apps/ios/de.lproj/Localizable.strings +++ b/apps/ios/de.lproj/Localizable.strings @@ -257,6 +257,15 @@ /* No comment provided by engineer. */ "Change member role?" = "Die Mitgliederrolle ändern?"; +/* No comment provided by engineer. */ +"Change role" = "Rolle ändern"; + +/* rcv group event chat item */ +"changed role of %@ to %@" = "***changed role of %1$@ to %2$@"; + +/* rcv group event chat item */ +"changed your role to %@" = "***changed your role to %@"; + /* No comment provided by engineer. */ "Chat archive" = "Datenbank Archiv"; @@ -1064,10 +1073,6 @@ /* No comment provided by engineer. */ "Member" = "Mitglied"; -/* rcv group event chat item - snd group event chat item */ -"member %@ role: %@" = "Mitglieder %1$@ Rolle: %2$@"; - /* rcv group event chat item */ "member connected" = "verbunden"; @@ -1374,6 +1379,9 @@ /* No comment provided by engineer. */ "Revert" = "Zurückkehren"; +/* No comment provided by engineer. */ +"Role" = "Rolle"; + /* No comment provided by engineer. */ "Run chat" = "Chat starten"; @@ -1800,6 +1808,12 @@ /* No comment provided by engineer. */ "You can use markdown to format messages:" = "Um Nachrichteninhalte zu formatieren, können Sie Markdowns verwenden:"; +/* snd group event chat item */ +"you changed role for yourself to %@" = "***you changed role for yourself to %@"; + +/* snd group event chat item */ +"you changed role of %@ to %@" = "***you changed role of %1$@ to %2$@"; + /* No comment provided by engineer. */ "You control through which server(s) **to receive** the messages, your contacts – the servers you use to message them." = "Sie legen fest, über welche Server Sie Ihre Nachrichten **empfangen** und an Ihre Kontakte **senden**."; @@ -1917,10 +1931,6 @@ /* No comment provided by engineer. */ "Your random profile" = "Ihr Zufallsprofil"; -/* rcv group event chat item - snd group event chat item */ -"your role: %@" = "Meine Rolle: %@"; - /* No comment provided by engineer. */ "Your settings" = "Meine Einstellungen"; diff --git a/apps/ios/ru.lproj/Localizable.strings b/apps/ios/ru.lproj/Localizable.strings index 81681901d..926c0a859 100644 --- a/apps/ios/ru.lproj/Localizable.strings +++ b/apps/ios/ru.lproj/Localizable.strings @@ -257,6 +257,15 @@ /* No comment provided by engineer. */ "Change member role?" = "Поменять роль члена группы?"; +/* No comment provided by engineer. */ +"Change role" = "Поменять роль"; + +/* rcv group event chat item */ +"changed role of %@ to %@" = "поменял(а) роль члена %1$@ на: %2$@"; + +/* rcv group event chat item */ +"changed your role to %@" = "поменял(а) вашу роль на: %@"; + /* No comment provided by engineer. */ "Chat archive" = "Архив чата"; @@ -1064,10 +1073,6 @@ /* No comment provided by engineer. */ "Member" = "Член группы"; -/* rcv group event chat item - snd group event chat item */ -"member %@ role: %@" = "роль %1$@: %2$@"; - /* rcv group event chat item */ "member connected" = "соединен(а)"; @@ -1374,6 +1379,9 @@ /* No comment provided by engineer. */ "Revert" = "Отменить изменения"; +/* No comment provided by engineer. */ +"Role" = "Роль"; + /* No comment provided by engineer. */ "Run chat" = "Запустить chat"; @@ -1800,6 +1808,12 @@ /* No comment provided by engineer. */ "You can use markdown to format messages:" = "Вы можете форматировать сообщения:"; +/* snd group event chat item */ +"you changed role for yourself to %@" = "вы поменяли роль себе на: %@"; + +/* snd group event chat item */ +"you changed role of %@ to %@" = "вы поменяли роль члена %1$@ на: %2$@"; + /* No comment provided by engineer. */ "You control through which server(s) **to receive** the messages, your contacts – the servers you use to message them." = "Вы определяете через какие серверы вы **получаете сообщения**, ваши контакты - серверы, которые вы используете для отправки."; @@ -1917,10 +1931,6 @@ /* No comment provided by engineer. */ "Your random profile" = "Ваш случайный профиль"; -/* rcv group event chat item - snd group event chat item */ -"your role: %@" = "ваша роль: %@"; - /* No comment provided by engineer. */ "Your settings" = "Настройки"; diff --git a/src/Simplex/Chat/Messages.hs b/src/Simplex/Chat/Messages.hs index a313456b3..ff67c5704 100644 --- a/src/Simplex/Chat/Messages.hs +++ b/src/Simplex/Chat/Messages.hs @@ -508,8 +508,8 @@ rcvGroupEventToText = \case RGEMemberAdded _ p -> "added " <> profileToText p RGEMemberConnected -> "connected" RGEMemberLeft -> "left" - RGEMemberRole _ p r -> "role of " <> profileToText p <> ": " <> safeDecodeUtf8 (strEncode r) - RGEUserRole r -> "your role: " <> safeDecodeUtf8 (strEncode r) + RGEMemberRole _ p r -> "changed role of " <> profileToText p <> " to " <> safeDecodeUtf8 (strEncode r) + RGEUserRole r -> "changed your role to " <> safeDecodeUtf8 (strEncode r) RGEMemberDeleted _ p -> "removed " <> profileToText p RGEUserDeleted -> "removed you" RGEGroupDeleted -> "deleted group" @@ -518,8 +518,8 @@ rcvGroupEventToText = \case sndGroupEventToText :: SndGroupEvent -> Text sndGroupEventToText = \case - SGEMemberRole _ p r -> "role of " <> profileToText p <> ": " <> safeDecodeUtf8 (strEncode r) - SGEUserRole r -> "your role " <> safeDecodeUtf8 (strEncode r) + SGEMemberRole _ p r -> "changed role of " <> profileToText p <> " to " <> safeDecodeUtf8 (strEncode r) + SGEUserRole r -> "changed role for yourself to " <> safeDecodeUtf8 (strEncode r) SGEMemberDeleted _ p -> "removed " <> profileToText p SGEUserLeft -> "left" SGEGroupUpdated _ -> "group profile updated"