diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 58c1dad66..81e3deb36 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +1,2 @@ -* @krille-chan \ No newline at end of file +* @krille-chan +assets/l10n/*.arb @weblate \ No newline at end of file diff --git a/assets/l10n/intl_ar.arb b/assets/l10n/intl_ar.arb index 46de8c0ec..8cd5a4080 100644 --- a/assets/l10n/intl_ar.arb +++ b/assets/l10n/intl_ar.arb @@ -2689,5 +2689,22 @@ "placeholders": { "level": {} } - } + }, + "searchIn": "بحث في {chat}...", + "@searchIn": { + "type": "text", + "placeholders": { + "chat": {} + } + }, + "files": "الملفات", + "@files": {}, + "restricted": "مقيد", + "@restricted": {}, + "knockRestricted": "قيود النقر", + "@knockRestricted": {}, + "searchMore": "ابحث أكثر...", + "@searchMore": {}, + "gallery": "المعرض", + "@gallery": {} } diff --git a/assets/l10n/intl_de.arb b/assets/l10n/intl_de.arb index fcc360f60..adf2d99d0 100644 --- a/assets/l10n/intl_de.arb +++ b/assets/l10n/intl_de.arb @@ -2221,7 +2221,7 @@ }, "newSpaceDescription": "Mit Spaces kannst du deine Chats zusammenfassen und private oder öffentliche Communities aufbauen.", "@newSpaceDescription": {}, - "wasDirectChatDisplayName": "Leerer Chat (was {oldDisplayName}", + "wasDirectChatDisplayName": "Leerer Chat (war {oldDisplayName})", "@wasDirectChatDisplayName": { "type": "text", "placeholders": { @@ -2689,5 +2689,22 @@ } }, "publicChatAddresses": "Öffentliche Chat-Adressen", - "@publicChatAddresses": {} + "@publicChatAddresses": {}, + "gallery": "Galerie", + "@gallery": {}, + "files": "Dateien", + "@files": {}, + "restricted": "Beschränkt", + "@restricted": {}, + "knockRestricted": "Anklopfen beschränkt", + "@knockRestricted": {}, + "searchIn": "In Chat \"{chat}\" suchen ...", + "@searchIn": { + "type": "text", + "placeholders": { + "chat": {} + } + }, + "searchMore": "Weiter suchen ...", + "@searchMore": {} } diff --git a/assets/l10n/intl_en.arb b/assets/l10n/intl_en.arb index fc9c93e98..3fa8c0e87 100644 --- a/assets/l10n/intl_en.arb +++ b/assets/l10n/intl_en.arb @@ -137,6 +137,7 @@ "placeholders": {} }, "appLockDescription": "Lock the app when not using with a pin code", + "@appLockDescription": {}, "archive": "Archive", "@archive": { "type": "text", @@ -775,11 +776,17 @@ "placeholders": {} }, "globalChatId": "Global chat ID", + "@globalChatId": {}, "accessAndVisibility": "Access and visibility", + "@accessAndVisibility": {}, "accessAndVisibilityDescription": "Who is allowed to join this chat and how the chat can be discovered.", + "@accessAndVisibilityDescription": {}, "calls": "Calls", + "@calls": {}, "customEmojisAndStickers": "Custom emojis and stickers", + "@customEmojisAndStickers": {}, "customEmojisAndStickersBody": "Add or share custom emojis or stickers which can be used in any chat.", + "@customEmojisAndStickersBody": {}, "emoteShortcode": "Emote shortcode", "@emoteShortcode": { "type": "text", @@ -966,12 +973,11 @@ "placeholders": {} }, "hideRedactedMessages": "Hide redacted messages", + "@hideRedactedMessages": {}, "hideRedactedMessagesBody": "If someone redacts a message, this message won't be visible in the chat anymore.", + "@hideRedactedMessagesBody": {}, "hideInvalidOrUnknownMessageFormats": "Hide invalid or unknown message formats", - "@hideUnknownEvents": { - "type": "text", - "placeholders": {} - }, + "@hideInvalidOrUnknownMessageFormats": {}, "howOffensiveIsThisContent": "How offensive is this content?", "@howOffensiveIsThisContent": { "type": "text", @@ -1436,10 +1442,15 @@ "placeholders": {} }, "hideMemberChangesInPublicChats": "Hide member changes in public chats", + "@hideMemberChangesInPublicChats": {}, "hideMemberChangesInPublicChatsBody": "Do not show in the chat timeline if someone joins or leaves a public chat to improve readability.", + "@hideMemberChangesInPublicChatsBody": {}, "overview": "Overview", + "@overview": {}, "notifyMeFor": "Notify me for", + "@notifyMeFor": {}, "passwordRecoverySettings": "Password recovery settings", + "@passwordRecoverySettings": {}, "passwordRecovery": "Password recovery", "@passwordRecovery": { "type": "text", @@ -2327,7 +2338,9 @@ } }, "usersMustKnock": "Users must knock", + "@usersMustKnock": {}, "noOneCanJoin": "No one can join", + "@noOneCanJoin": {}, "userWouldLikeToChangeTheChat": "{user} would like to join the chat.", "@userWouldLikeToChangeTheChat": { "placeholders": { @@ -2335,7 +2348,9 @@ } }, "noPublicLinkHasBeenCreatedYet": "No public link has been created yet", + "@noPublicLinkHasBeenCreatedYet": {}, "knock": "Knock", + "@knock": {}, "users": "Users", "@users": {}, "unlockOldMessages": "Unlock old messages", @@ -3750,6 +3765,7 @@ } }, "knocking": "Knocking", + "@knocking": {}, "chatCanBeDiscoveredViaSearchOnServer": "Chat can be discovered via the search on {server}", "@chatCanBeDiscoveredViaSearchOnServer": { "type": "text", @@ -3794,7 +3810,9 @@ "publicLink": "Public link", "@publicLink": {}, "publicChatAddresses": "Public chat addresses", + "@publicChatAddresses": {}, "createNewAddress": "Create new address", + "@createNewAddress": {}, "joinSpace": "Join space", "publicSpaces": "Public spaces", "addChatOrSubSpace": "Add chat or sub space", @@ -3804,6 +3822,7 @@ "initAppError": "An error occured while init the app", "@initAppError": {}, "userRole": "User role", + "@userRole": {}, "minimumPowerLevel": "{level} is the minimum power level.", "@minimumPowerLevel": { "type": "text", @@ -3811,7 +3830,7 @@ "level": {} } }, - "searchIn": "Search in {chat}...", + "searchIn": "Search in chat \"{chat}\"...", "@searchIn": { "type": "text", "placeholders": { @@ -3819,8 +3838,11 @@ } }, "searchMore": "Search more...", + "@searchMore": {}, "gallery": "Gallery", + "@gallery": {}, "files": "Files", + "@files": {}, "databaseBuildErrorBody": "Unable to build the SQlite database. The app tries to use the legacy database for now. Please report this error to the developers at {url}. The error message is: {error}", "@databaseBuildErrorBody": { "type": "text", @@ -4026,11 +4048,14 @@ "enterNumber": "Please enter a whole number value.", "buildTranslation": "Build your translation from the choices above", "noDatabaseEncryption": "Database encryption is not supported on this platform", + "@noDatabaseEncryption": {}, "thereAreCountUsersBlocked": "Right now there are {count} users blocked.", "@thereAreCountUsersBlocked": { "type": "text", "count": {} }, "restricted": "Restricted", - "knockRestricted": "Knock restricted" + "@restricted": {}, + "knockRestricted": "Knock restricted", + "@knockRestricted": {} } \ No newline at end of file diff --git a/assets/l10n/intl_et.arb b/assets/l10n/intl_et.arb index 130c2f280..f0848b246 100644 --- a/assets/l10n/intl_et.arb +++ b/assets/l10n/intl_et.arb @@ -2689,5 +2689,18 @@ "@thereAreCountUsersBlocked": { "type": "text", "count": {} - } + }, + "searchIn": "Otsi vestlusest „{chat}“...", + "@searchIn": { + "type": "text", + "placeholders": { + "chat": {} + } + }, + "searchMore": "Otsi veel...", + "@searchMore": {}, + "knockRestricted": "Koputa piiratud ligipääsuga jututoa uksele", + "@knockRestricted": {}, + "restricted": "Piiratud", + "@restricted": {} } diff --git a/assets/l10n/intl_eu.arb b/assets/l10n/intl_eu.arb index 668de36c8..dd4d35087 100644 --- a/assets/l10n/intl_eu.arb +++ b/assets/l10n/intl_eu.arb @@ -2689,5 +2689,18 @@ "publicChatAddresses": "Txataren helbide publikoak", "@publicChatAddresses": {}, "createNewAddress": "Sortu helbide berria", - "@createNewAddress": {} + "@createNewAddress": {}, + "files": "Fitxategiak", + "@files": {}, + "gallery": "Galeria", + "@gallery": {}, + "searchIn": "Bilatu {chat}ean...", + "@searchIn": { + "type": "text", + "placeholders": { + "chat": {} + } + }, + "searchMore": "Bilatu gehiago...", + "@searchMore": {} } diff --git a/assets/l10n/intl_gl.arb b/assets/l10n/intl_gl.arb index c1dd896bc..c579c1d70 100644 --- a/assets/l10n/intl_gl.arb +++ b/assets/l10n/intl_gl.arb @@ -2689,5 +2689,18 @@ "placeholders": { "level": {} } - } + }, + "searchIn": "Buscar en {chat}...", + "@searchIn": { + "type": "text", + "placeholders": { + "chat": {} + } + }, + "searchMore": "Buscar máis...", + "@searchMore": {}, + "gallery": "Galería", + "@gallery": {}, + "files": "Ficheiros", + "@files": {} } diff --git a/assets/l10n/intl_ko.arb b/assets/l10n/intl_ko.arb index 9ff14113d..4e47d233d 100644 --- a/assets/l10n/intl_ko.arb +++ b/assets/l10n/intl_ko.arb @@ -2688,5 +2688,18 @@ "createNewAddress": "새 주소 만들기", "@createNewAddress": {}, "hideMemberChangesInPublicChatsBody": "공개채팅에 누군가가 가입하거나 떠날때 타임라인에 표시하지 않습니다.", - "@hideMemberChangesInPublicChatsBody": {} + "@hideMemberChangesInPublicChatsBody": {}, + "searchMore": "더 검색...", + "@searchMore": {}, + "files": "파일", + "@files": {}, + "searchIn": "{chat}에서 검색...", + "@searchIn": { + "type": "text", + "placeholders": { + "chat": {} + } + }, + "gallery": "갤러리", + "@gallery": {} } diff --git a/assets/l10n/intl_tr.arb b/assets/l10n/intl_tr.arb index 6320e082a..ca44ea5b1 100644 --- a/assets/l10n/intl_tr.arb +++ b/assets/l10n/intl_tr.arb @@ -2689,5 +2689,18 @@ "appname": {}, "unread": {} } - } + }, + "searchIn": "{chat} içinde ara...", + "@searchIn": { + "type": "text", + "placeholders": { + "chat": {} + } + }, + "searchMore": "Daha fazla ara...", + "@searchMore": {}, + "gallery": "Galeri", + "@gallery": {}, + "files": "Dosyalar", + "@files": {} } diff --git a/assets/l10n/intl_zh.arb b/assets/l10n/intl_zh.arb index 599974493..a0962d297 100644 --- a/assets/l10n/intl_zh.arb +++ b/assets/l10n/intl_zh.arb @@ -2689,5 +2689,18 @@ "publicChatAddresses": "公开聊天的地址", "@publicChatAddresses": {}, "createNewAddress": "新建地址", - "@createNewAddress": {} + "@createNewAddress": {}, + "searchMore": "搜索更多…", + "@searchMore": {}, + "gallery": "图库", + "@gallery": {}, + "files": "文件", + "@files": {}, + "searchIn": "在 {chat} 中搜索…", + "@searchIn": { + "type": "text", + "placeholders": { + "chat": {} + } + } } diff --git a/lib/config/routes.dart b/lib/config/routes.dart index bb9f48371..d4eaa5d85 100644 --- a/lib/config/routes.dart +++ b/lib/config/routes.dart @@ -647,13 +647,10 @@ abstract class AppRoutes { Widget child, ) => FluffyThemes.isColumnMode(context) - ? CustomTransitionPage( + ? NoTransitionPage( key: state.pageKey, restorationId: state.pageKey.value, child: child, - transitionsBuilder: - (context, animation, secondaryAnimation, child) => - FadeTransition(opacity: animation, child: child), ) : MaterialPage( key: state.pageKey, diff --git a/lib/pages/chat/typing_indicators.dart b/lib/pages/chat/typing_indicators.dart index 47079d4c3..35fbf5d25 100644 --- a/lib/pages/chat/typing_indicators.dart +++ b/lib/pages/chat/typing_indicators.dart @@ -27,14 +27,13 @@ class TypingIndicators extends StatelessWidget { final typingUsers = controller.room.typingUsers ..removeWhere((u) => u.stateKey == Matrix.of(context).client.userID); - const bottomPadding = 4.0; return Container( width: double.infinity, alignment: Alignment.center, child: AnimatedContainer( constraints: const BoxConstraints(maxWidth: FluffyThemes.columnWidth * 2.5), - height: typingUsers.isEmpty ? 0 : avatarSize + bottomPadding, + height: typingUsers.isEmpty ? 0 : avatarSize + 8, duration: FluffyThemes.animationDuration, curve: FluffyThemes.animationCurve, alignment: controller.timeline!.events.isNotEmpty && @@ -44,15 +43,16 @@ class TypingIndicators extends StatelessWidget { : Alignment.topLeft, clipBehavior: Clip.hardEdge, decoration: const BoxDecoration(), - padding: const EdgeInsets.only( - left: 8.0, - bottom: bottomPadding, + padding: const EdgeInsets.symmetric( + horizontal: 8.0, + vertical: 4.0, ), child: Row( children: [ - SizedBox( + Container( + alignment: Alignment.center, height: avatarSize, - width: typingUsers.length < 2 ? avatarSize : avatarSize + 16, + width: Avatar.defaultSize, child: Stack( children: [ if (typingUsers.isNotEmpty) diff --git a/lib/pages/chat_list/client_chooser_button.dart b/lib/pages/chat_list/client_chooser_button.dart index 602be9192..56aa568c0 100644 --- a/lib/pages/chat_list/client_chooser_button.dart +++ b/lib/pages/chat_list/client_chooser_button.dart @@ -217,7 +217,6 @@ class ClientChooserButton extends StatelessWidget { // name: // snapshot.data?.displayName ?? client.userID!.localpart, // size: 32, - // fontSize: 12, // ), // const SizedBox(width: 12), // Expanded( @@ -323,20 +322,19 @@ class ClientChooserButton extends StatelessWidget { leading: const Icon(Icons.settings_outlined), title: Text(L10n.of(context)!.mainMenu), ), + // child: Material( + // color: Colors.transparent, + // borderRadius: BorderRadius.circular(99), + // child: Avatar( + // mxContent: snapshot.data?.avatarUrl, + // name: snapshot.data?.displayName ?? + // matrix.client.userID!.localpart, + // size: 32, + // ), + // ), + // Pangea# ), ), - // child: Material( - // color: Colors.transparent, - // borderRadius: BorderRadius.circular(99), - // child: Avatar( - // mxContent: snapshot.data?.avatarUrl, - // name: snapshot.data?.displayName ?? - // matrix.client.userID!.localpart, - // size: 32, - // fontSize: 12, - // ), - // ), - // Pangea# ), ], ), diff --git a/needed-translations.txt b/needed-translations.txt index 7c1f565a0..74e4b972d 100644 --- a/needed-translations.txt +++ b/needed-translations.txt @@ -769,10 +769,6 @@ "clickToManageSubscription", "emptyInviteWarning", "errorGettingAudio", - "searchIn", - "searchMore", - "gallery", - "files", "signUp", "pleaseChooseAtLeastChars", "noEmailWarning", @@ -860,9 +856,7 @@ "capacitySetTooLow", "roomCapacityExplanation", "enterNumber", - "buildTranslation", - "restricted", - "knockRestricted" + "buildTranslation" ], "be": [ @@ -7982,10 +7976,6 @@ "clickToManageSubscription", "emptyInviteWarning", "errorGettingAudio", - "searchIn", - "searchMore", - "gallery", - "files", "signUp", "pleaseChooseAtLeastChars", "noEmailWarning", @@ -8073,9 +8063,7 @@ "capacitySetTooLow", "roomCapacityExplanation", "enterNumber", - "buildTranslation", - "restricted", - "knockRestricted" + "buildTranslation" ], "el": [ @@ -11471,8 +11459,6 @@ "clickToManageSubscription", "emptyInviteWarning", "errorGettingAudio", - "searchIn", - "searchMore", "gallery", "files", "signUp", @@ -11562,9 +11548,7 @@ "capacitySetTooLow", "roomCapacityExplanation", "enterNumber", - "buildTranslation", - "restricted", - "knockRestricted" + "buildTranslation" ], "eu": [ @@ -12337,10 +12321,6 @@ "clickToManageSubscription", "emptyInviteWarning", "errorGettingAudio", - "searchIn", - "searchMore", - "gallery", - "files", "signUp", "pleaseChooseAtLeastChars", "noEmailWarning", @@ -18609,10 +18589,6 @@ "clickToManageSubscription", "emptyInviteWarning", "errorGettingAudio", - "searchIn", - "searchMore", - "gallery", - "files", "signUp", "pleaseChooseAtLeastChars", "noEmailWarning", @@ -30909,10 +30885,6 @@ "clickToManageSubscription", "emptyInviteWarning", "errorGettingAudio", - "searchIn", - "searchMore", - "gallery", - "files", "signUp", "pleaseChooseAtLeastChars", "noEmailWarning", @@ -49822,10 +49794,6 @@ "clickToManageSubscription", "emptyInviteWarning", "errorGettingAudio", - "searchIn", - "searchMore", - "gallery", - "files", "signUp", "pleaseChooseAtLeastChars", "noEmailWarning", @@ -53004,10 +52972,6 @@ "clickToManageSubscription", "emptyInviteWarning", "errorGettingAudio", - "searchIn", - "searchMore", - "gallery", - "files", "signUp", "pleaseChooseAtLeastChars", "noEmailWarning",