From b06011dc4993fbaaf73e3e43235de63c10978891 Mon Sep 17 00:00:00 2001 From: otsmr Date: Sun, 2 Nov 2025 16:06:25 +0100 Subject: [PATCH] translate group actions --- lib/src/localization/app_de.arb | 4 +- lib/src/localization/app_en.arb | 18 +++- .../generated/app_localizations.dart | 96 +++++++++++++++++++ .../generated/app_localizations_de.dart | 72 ++++++++++++++ .../generated/app_localizations_en.dart | 72 ++++++++++++++ .../chat_group_action.dart | 76 +++++++++++---- 6 files changed, 319 insertions(+), 19 deletions(-) diff --git a/lib/src/localization/app_de.arb b/lib/src/localization/app_de.arb index e667679..786d32c 100644 --- a/lib/src/localization/app_de.arb +++ b/lib/src/localization/app_de.arb @@ -380,5 +380,7 @@ "makeAdminRightsOkBtn": "Zum Admin machen", "updateGroup": "Gruppe aktualisieren", "alreadyInGroup": "Bereits Mitglied", - "removeContactFromGroupTitle": "{username} aus dieser Gruppe entfernen?" + "removeContactFromGroupTitle": "{username} aus dieser Gruppe entfernen?", + "groupActionYou": "dich", + "groupActionYour": "deine" } \ No newline at end of file diff --git a/lib/src/localization/app_en.arb b/lib/src/localization/app_en.arb index c663ba8..871d14d 100644 --- a/lib/src/localization/app_en.arb +++ b/lib/src/localization/app_en.arb @@ -536,5 +536,21 @@ "makeAdminRightsOkBtn": "Make admin", "updateGroup": "Update group", "alreadyInGroup": "Already in Group", - "removeContactFromGroupTitle": "Remove {username} from this group?" + "removeContactFromGroupTitle": "Remove {username} from this group?", + "youChangedGroupName": "Du hast den Gruppennamen zu „{newGroupName}“ geändert.", + "makerChangedGroupName": "{maker} hat den Gruppennamen zu „{newGroupName}“ geändert.", + "youCreatedGroup": "Du hast die Gruppe erstellt.", + "makerCreatedGroup": "{maker} hat die Gruppe erstellt.", + "youRemovedMember": "Du hast {affected} aus der Gruppe entfernt.", + "makerRemovedMember": "{maker} hat {affected} aus der Gruppe entfernt.", + "youAddedMember": "Du hast {affected} zur Gruppe hinzugefügt.", + "makerAddedMember": "{maker} hat {affected} zur Gruppe hinzugefügt.", + "youMadeAdmin": "Du hast {affected} zum Administrator gemacht.", + "makerMadeAdmin": "{maker} hat {affected} zum Administrator gemacht.", + "youRevokedAdminRights": "Du hast {affectedR} die Administratorrechte entzogen.", + "makerRevokedAdminRights": "{maker} hat {affectedR} die Administratorrechte entzogen.", + "youLeftGroup": "Du hast die Gruppe verlassen.", + "makerLeftGroup": "{maker} hat die Gruppe verlassen.", + "groupActionYou": "you", + "groupActionYour": "your" } \ No newline at end of file diff --git a/lib/src/localization/generated/app_localizations.dart b/lib/src/localization/generated/app_localizations.dart index ec7eb68..38d0dbe 100644 --- a/lib/src/localization/generated/app_localizations.dart +++ b/lib/src/localization/generated/app_localizations.dart @@ -2323,6 +2323,102 @@ abstract class AppLocalizations { /// In en, this message translates to: /// **'Remove {username} from this group?'** String removeContactFromGroupTitle(Object username); + + /// No description provided for @youChangedGroupName. + /// + /// In en, this message translates to: + /// **'Du hast den Gruppennamen zu „{newGroupName}“ geändert.'** + String youChangedGroupName(Object newGroupName); + + /// No description provided for @makerChangedGroupName. + /// + /// In en, this message translates to: + /// **'{maker} hat den Gruppennamen zu „{newGroupName}“ geändert.'** + String makerChangedGroupName(Object maker, Object newGroupName); + + /// No description provided for @youCreatedGroup. + /// + /// In en, this message translates to: + /// **'Du hast die Gruppe erstellt.'** + String get youCreatedGroup; + + /// No description provided for @makerCreatedGroup. + /// + /// In en, this message translates to: + /// **'{maker} hat die Gruppe erstellt.'** + String makerCreatedGroup(Object maker); + + /// No description provided for @youRemovedMember. + /// + /// In en, this message translates to: + /// **'Du hast {affected} aus der Gruppe entfernt.'** + String youRemovedMember(Object affected); + + /// No description provided for @makerRemovedMember. + /// + /// In en, this message translates to: + /// **'{maker} hat {affected} aus der Gruppe entfernt.'** + String makerRemovedMember(Object affected, Object maker); + + /// No description provided for @youAddedMember. + /// + /// In en, this message translates to: + /// **'Du hast {affected} zur Gruppe hinzugefügt.'** + String youAddedMember(Object affected); + + /// No description provided for @makerAddedMember. + /// + /// In en, this message translates to: + /// **'{maker} hat {affected} zur Gruppe hinzugefügt.'** + String makerAddedMember(Object affected, Object maker); + + /// No description provided for @youMadeAdmin. + /// + /// In en, this message translates to: + /// **'Du hast {affected} zum Administrator gemacht.'** + String youMadeAdmin(Object affected); + + /// No description provided for @makerMadeAdmin. + /// + /// In en, this message translates to: + /// **'{maker} hat {affected} zum Administrator gemacht.'** + String makerMadeAdmin(Object affected, Object maker); + + /// No description provided for @youRevokedAdminRights. + /// + /// In en, this message translates to: + /// **'Du hast {affectedR} die Administratorrechte entzogen.'** + String youRevokedAdminRights(Object affectedR); + + /// No description provided for @makerRevokedAdminRights. + /// + /// In en, this message translates to: + /// **'{maker} hat {affectedR} die Administratorrechte entzogen.'** + String makerRevokedAdminRights(Object affectedR, Object maker); + + /// No description provided for @youLeftGroup. + /// + /// In en, this message translates to: + /// **'Du hast die Gruppe verlassen.'** + String get youLeftGroup; + + /// No description provided for @makerLeftGroup. + /// + /// In en, this message translates to: + /// **'{maker} hat die Gruppe verlassen.'** + String makerLeftGroup(Object maker); + + /// No description provided for @groupActionYou. + /// + /// In en, this message translates to: + /// **'you'** + String get groupActionYou; + + /// No description provided for @groupActionYour. + /// + /// In en, this message translates to: + /// **'your'** + String get groupActionYour; } class _AppLocalizationsDelegate diff --git a/lib/src/localization/generated/app_localizations_de.dart b/lib/src/localization/generated/app_localizations_de.dart index 04e5cd3..ceec42c 100644 --- a/lib/src/localization/generated/app_localizations_de.dart +++ b/lib/src/localization/generated/app_localizations_de.dart @@ -1236,4 +1236,76 @@ class AppLocalizationsDe extends AppLocalizations { String removeContactFromGroupTitle(Object username) { return '$username aus dieser Gruppe entfernen?'; } + + @override + String youChangedGroupName(Object newGroupName) { + return 'Du hast den Gruppennamen zu „$newGroupName“ geändert.'; + } + + @override + String makerChangedGroupName(Object maker, Object newGroupName) { + return '$maker hat den Gruppennamen zu „$newGroupName“ geändert.'; + } + + @override + String get youCreatedGroup => 'Du hast die Gruppe erstellt.'; + + @override + String makerCreatedGroup(Object maker) { + return '$maker hat die Gruppe erstellt.'; + } + + @override + String youRemovedMember(Object affected) { + return 'Du hast $affected aus der Gruppe entfernt.'; + } + + @override + String makerRemovedMember(Object affected, Object maker) { + return '$maker hat $affected aus der Gruppe entfernt.'; + } + + @override + String youAddedMember(Object affected) { + return 'Du hast $affected zur Gruppe hinzugefügt.'; + } + + @override + String makerAddedMember(Object affected, Object maker) { + return '$maker hat $affected zur Gruppe hinzugefügt.'; + } + + @override + String youMadeAdmin(Object affected) { + return 'Du hast $affected zum Administrator gemacht.'; + } + + @override + String makerMadeAdmin(Object affected, Object maker) { + return '$maker hat $affected zum Administrator gemacht.'; + } + + @override + String youRevokedAdminRights(Object affectedR) { + return 'Du hast $affectedR die Administratorrechte entzogen.'; + } + + @override + String makerRevokedAdminRights(Object affectedR, Object maker) { + return '$maker hat $affectedR die Administratorrechte entzogen.'; + } + + @override + String get youLeftGroup => 'Du hast die Gruppe verlassen.'; + + @override + String makerLeftGroup(Object maker) { + return '$maker hat die Gruppe verlassen.'; + } + + @override + String get groupActionYou => 'dich'; + + @override + String get groupActionYour => 'deine'; } diff --git a/lib/src/localization/generated/app_localizations_en.dart b/lib/src/localization/generated/app_localizations_en.dart index 169b063..99f7695 100644 --- a/lib/src/localization/generated/app_localizations_en.dart +++ b/lib/src/localization/generated/app_localizations_en.dart @@ -1229,4 +1229,76 @@ class AppLocalizationsEn extends AppLocalizations { String removeContactFromGroupTitle(Object username) { return 'Remove $username from this group?'; } + + @override + String youChangedGroupName(Object newGroupName) { + return 'Du hast den Gruppennamen zu „$newGroupName“ geändert.'; + } + + @override + String makerChangedGroupName(Object maker, Object newGroupName) { + return '$maker hat den Gruppennamen zu „$newGroupName“ geändert.'; + } + + @override + String get youCreatedGroup => 'Du hast die Gruppe erstellt.'; + + @override + String makerCreatedGroup(Object maker) { + return '$maker hat die Gruppe erstellt.'; + } + + @override + String youRemovedMember(Object affected) { + return 'Du hast $affected aus der Gruppe entfernt.'; + } + + @override + String makerRemovedMember(Object affected, Object maker) { + return '$maker hat $affected aus der Gruppe entfernt.'; + } + + @override + String youAddedMember(Object affected) { + return 'Du hast $affected zur Gruppe hinzugefügt.'; + } + + @override + String makerAddedMember(Object affected, Object maker) { + return '$maker hat $affected zur Gruppe hinzugefügt.'; + } + + @override + String youMadeAdmin(Object affected) { + return 'Du hast $affected zum Administrator gemacht.'; + } + + @override + String makerMadeAdmin(Object affected, Object maker) { + return '$maker hat $affected zum Administrator gemacht.'; + } + + @override + String youRevokedAdminRights(Object affectedR) { + return 'Du hast $affectedR die Administratorrechte entzogen.'; + } + + @override + String makerRevokedAdminRights(Object affectedR, Object maker) { + return '$maker hat $affectedR die Administratorrechte entzogen.'; + } + + @override + String get youLeftGroup => 'Du hast die Gruppe verlassen.'; + + @override + String makerLeftGroup(Object maker) { + return '$maker hat die Gruppe verlassen.'; + } + + @override + String get groupActionYou => 'you'; + + @override + String get groupActionYour => 'your'; } diff --git a/lib/src/views/chats/chat_messages_components/chat_group_action.dart b/lib/src/views/chats/chat_messages_components/chat_group_action.dart index 3e3add2..f2c2826 100644 --- a/lib/src/views/chats/chat_messages_components/chat_group_action.dart +++ b/lib/src/views/chats/chat_messages_components/chat_group_action.dart @@ -4,6 +4,7 @@ import 'package:twonly/globals.dart'; import 'package:twonly/src/database/daos/contacts.dao.dart'; import 'package:twonly/src/database/tables/groups.table.dart'; import 'package:twonly/src/database/twonly.db.dart'; +import 'package:twonly/src/utils/misc.dart'; class ChatGroupAction extends StatefulWidget { const ChatGroupAction({ @@ -47,47 +48,88 @@ class _ChatGroupActionState extends State { IconData? icon; final affected = (affectedContact == null) - ? 'you' + ? context.lang.groupActionYou : getContactDisplayName(affectedContact!); - final affectedR = (affectedContact == null) ? 'your' : "$affected'"; + final affectedR = + (affectedContact == null) ? context.lang.groupActionYour : affected; final maker = (contact == null) ? '' : getContactDisplayName(contact!); switch (widget.action.type) { case GroupActionType.updatedGroupName: text = (contact == null) - ? 'You have changed the group name to "${widget.action.newGroupName}".' - : '$maker has changed the group name to "${widget.action.newGroupName}".'; + ? context.lang.youChangedGroupName(widget.action.newGroupName!) + : context.lang + .makerChangedGroupName(maker, widget.action.newGroupName!); icon = FontAwesomeIcons.pencil; case GroupActionType.createdGroup: icon = FontAwesomeIcons.penToSquare; text = (contact == null) - ? 'You have created the group.' - : '$maker has created the group.'; + ? context.lang.youCreatedGroup + : context.lang.makerCreatedGroup(maker); case GroupActionType.removedMember: icon = FontAwesomeIcons.userMinus; text = (contact == null) - ? 'You have removed $affected from the group.' - : '$maker has removed $affected from the group.'; + ? context.lang.youRemovedMember(affected) + : context.lang.makerRemovedMember(affected, maker); case GroupActionType.addMember: icon = FontAwesomeIcons.userPlus; text = (contact == null) - ? 'You have added $affected to the group.' - : '$maker has added $affected to the group.'; - case GroupActionType.leftGroup: - break; + ? context.lang.youAddedMember(affected) + : context.lang.makerAddedMember(affected, maker); case GroupActionType.promoteToAdmin: icon = FontAwesomeIcons.key; text = (contact == null) - ? 'You made $affected an admin.' - : '$maker made $affected an admin.'; + ? context.lang.youMadeAdmin(affected) + : context.lang.makerMadeAdmin(affected, maker); case GroupActionType.demoteToMember: icon = FontAwesomeIcons.key; text = (contact == null) - ? 'You revoked $affectedR admin rights.' - : '$maker revoked $affectedR admin rights.'; + ? context.lang.youRevokedAdminRights(affected) + : context.lang.makerRevokedAdminRights(affectedR, maker); + case GroupActionType.leftGroup: + icon = FontAwesomeIcons.userMinus; + text = (contact == null) + ? context.lang.youLeftGroup + : context.lang.makerLeftGroup(maker); } - if (text == '' || icon == null) return Container(); + // switch (widget.action.type) { + // case GroupActionType.updatedGroupName: + // text = (contact == null) + // ? 'You have changed the group name to "${widget.action.newGroupName}".' + // : '$maker has changed the group name to "${widget.action.newGroupName}".'; + // icon = FontAwesomeIcons.pencil; + // case GroupActionType.createdGroup: + // icon = FontAwesomeIcons.penToSquare; + // text = (contact == null) + // ? 'You have created the group.' + // : '$maker has created the group.'; + // case GroupActionType.removedMember: + // icon = FontAwesomeIcons.userMinus; + // text = (contact == null) + // ? 'You have removed $affected from the group.' + // : '$maker has removed $affected from the group.'; + // case GroupActionType.addMember: + // icon = FontAwesomeIcons.userPlus; + // text = (contact == null) + // ? 'You have added $affected to the group.' + // : '$maker has added $affected to the group.'; + // case GroupActionType.promoteToAdmin: + // icon = FontAwesomeIcons.key; + // text = (contact == null) + // ? 'You made $affected an admin.' + // : '$maker made $affected an admin.'; + // case GroupActionType.demoteToMember: + // icon = FontAwesomeIcons.key; + // text = (contact == null) + // ? 'You revoked $affectedR admin rights.' + // : '$maker revoked $affectedR admin rights.'; + // case GroupActionType.leftGroup: + // icon = FontAwesomeIcons.userMinus; + // text = (contact == null) + // ? 'You have left the group.' + // : '$maker has left the group.'; + // } return Padding( padding: const EdgeInsets.all(8),