@@ -419,7 +419,9 @@ class MessageListAppBarTitle extends StatelessWidget {
419
419
} else {
420
420
final names = otherRecipientIds.map (
421
421
(id) => store.users[id]? .fullName ?? zulipLocalizations.unknownUserName);
422
- return Text ("DMs with ${names .join (", " )}" ); // TODO show avatars
422
+ // TODO show avatars
423
+ return Text (
424
+ zulipLocalizations.messageListDMsWithOthers (names.join (', ' )));
423
425
}
424
426
}
425
427
}
@@ -571,6 +573,7 @@ class _MessageListState extends State<MessageList> with PerAccountStoreAwareStat
571
573
Widget _buildListView (BuildContext context) {
572
574
final length = model! .items.length;
573
575
const centerSliverKey = ValueKey ('center sliver' );
576
+ final zulipLocalizations = ZulipLocalizations .of (context);
574
577
575
578
Widget sliver = SliverStickyHeaderList (
576
579
headerPlacement: HeaderPlacement .scrollingStart,
@@ -607,7 +610,7 @@ class _MessageListState extends State<MessageList> with PerAccountStoreAwareStat
607
610
if (i == 2 ) return TypingStatusWidget (narrow: widget.narrow);
608
611
609
612
final data = model! .items[length - 1 - (i - 3 )];
610
- return _buildItem (data, i);
613
+ return _buildItem (zulipLocalizations, data, i);
611
614
}));
612
615
613
616
if (! ComposeBox .hasComposeBox (widget.narrow)) {
@@ -643,13 +646,13 @@ class _MessageListState extends State<MessageList> with PerAccountStoreAwareStat
643
646
]);
644
647
}
645
648
646
- Widget _buildItem (MessageListItem data, int i) {
649
+ Widget _buildItem (ZulipLocalizations zulipLocalizations, MessageListItem data, int i) {
647
650
switch (data) {
648
651
case MessageListHistoryStartItem ():
649
- return const Center (
652
+ return Center (
650
653
child: Padding (
651
- padding: EdgeInsets .symmetric (vertical: 16.0 ),
652
- child: Text ("No earlier messages." ))); // TODO use an icon
654
+ padding: const EdgeInsets .symmetric (vertical: 16.0 ),
655
+ child: Text (zulipLocalizations.noEarlierMessages ))); // TODO use an icon
653
656
case MessageListLoadingItem ():
654
657
return const Center (
655
658
child: Padding (
@@ -693,14 +696,15 @@ class ScrollToBottomButton extends StatelessWidget {
693
696
694
697
@override
695
698
Widget build (BuildContext context) {
699
+ final zulipLocalizations = ZulipLocalizations .of (context);
696
700
return ValueListenableBuilder <bool >(
697
701
valueListenable: visibleValue,
698
702
builder: (BuildContext context, bool value, Widget ? child) {
699
703
return (value && child != null ) ? child : const SizedBox .shrink ();
700
704
},
701
705
// TODO: fix hardcoded values for size and style here
702
706
child: IconButton (
703
- tooltip: "Scroll to bottom" ,
707
+ tooltip: zulipLocalizations.scrollToBottomTooltip ,
704
708
icon: const Icon (Icons .expand_circle_down_rounded),
705
709
iconSize: 40 ,
706
710
// Web has the same color in light and dark mode.
0 commit comments