diff --git a/lib/components/audio_player.dart b/lib/components/audio_player.dart index 28a81f72..f20d789c 100644 --- a/lib/components/audio_player.dart +++ b/lib/components/audio_player.dart @@ -8,6 +8,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_sound_lite/flutter_sound.dart'; import 'package:universal_html/prefer_universal/html.dart' as html; +import 'package:flutter_gen/gen_l10n/l10n.dart'; import '../utils/ui_fake.dart' if (dart.library.html) 'dart:ui' as ui; import 'matrix.dart'; import '../utils/event_extension.dart'; @@ -162,6 +163,9 @@ class _AudioPlayerState extends State { : Icons.play_arrow_outlined, color: widget.color, ), + tooltip: flutterSound.isPlaying + ? L10n.of(context).audioPlayerPause + : L10n.of(context).audioPlayerPlay, onPressed: () { if (status == AudioPlayerStatus.DOWNLOADED) { _playAction(); diff --git a/lib/components/default_app_bar_search_field.dart b/lib/components/default_app_bar_search_field.dart index 00fc6075..df59e382 100644 --- a/lib/components/default_app_bar_search_field.dart +++ b/lib/components/default_app_bar_search_field.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; import '../app_config.dart'; @@ -99,6 +100,7 @@ class DefaultAppBarSearchFieldState extends State { (widget.suffix == null && (_searchController.text?.isNotEmpty ?? false))) ? IconButton( + tooltip: L10n.of(context).clearText, icon: Icon(Icons.backspace_outlined), onPressed: () { _searchController.clear(); diff --git a/lib/components/encryption_button.dart b/lib/components/encryption_button.dart index c2f57d97..489d7e99 100644 --- a/lib/components/encryption_button.dart +++ b/lib/components/encryption_button.dart @@ -95,6 +95,9 @@ class _EncryptionButtonState extends State { color = null; } return IconButton( + tooltip: widget.room.encrypted + ? L10n.of(context).encrypted + : L10n.of(context).encryptionNotEnabled, icon: Icon( widget.room.encrypted ? Icons.lock_outlined diff --git a/lib/components/user_bottom_sheet.dart b/lib/components/user_bottom_sheet.dart index 8ee19463..edbf184c 100644 --- a/lib/components/user_bottom_sheet.dart +++ b/lib/components/user_bottom_sheet.dart @@ -189,6 +189,13 @@ class UserBottomSheet extends StatelessWidget { }[verificationStatus] ?? Colors.orange, ), + tooltip: { + UserVerifiedStatus.unknownDevice: + L10n.of(context).userNotVerified, + UserVerifiedStatus.verified: + L10n.of(context).userVerified, + }[verificationStatus] ?? + L10n.of(context).userUnknownVerification, onPressed: () => verificationStatus == UserVerifiedStatus.unknown ? _verifyAction(context) diff --git a/lib/l10n/intl_en.arb b/lib/l10n/intl_en.arb index 633d7f58..e0f28b09 100644 --- a/lib/l10n/intl_en.arb +++ b/lib/l10n/intl_en.arb @@ -2087,6 +2087,36 @@ "type": "text", "placeholders": {} }, + "audioPlayerPause": "Pause", + "@audioPlayerPause": { + "type": "text", + "placeholders": {} + }, + "audioPlayerPlay": "Play", + "@audioPlayerPlay": { + "type": "text", + "placeholders": {} + }, + "userVerified": "User is verified", + "@userVerified": { + "type": "text", + "placeholders": {} + }, + "userNotVerified": "User is not verified", + "@userNotVerified": { + "type": "text", + "placeholders": {} + }, + "userUnknownVerification": "User has an unknown verification status", + "@userUnknownVerification": { + "type": "text", + "placeholders": {} + }, + "clearText": "Clear text", + "@clearText": { + "type": "text", + "placeholders": {} + }, "writeAMessage": "Write a messageā€¦", "@writeAMessage": { "type": "text", diff --git a/lib/views/chat_list.dart b/lib/views/chat_list.dart index 1c93c2f6..df9a5468 100644 --- a/lib/views/chat_list.dart +++ b/lib/views/chat_list.dart @@ -230,6 +230,7 @@ class _ChatListState extends State { leading: selectMode == SelectMode.normal ? null : IconButton( + tooltip: L10n.of(context).cancel, icon: Icon(Icons.close_outlined), onPressed: () => selectMode == SelectMode.share ? setState(