@@ -419,7 +419,9 @@ class MessageListAppBarTitle extends StatelessWidget {
419419 } else {
420420 final names = otherRecipientIds.map (
421421 (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.dmsWithOthersPageTitle (names.join (', ' )));
423425 }
424426 }
425427 }
@@ -571,6 +573,7 @@ class _MessageListState extends State<MessageList> with PerAccountStoreAwareStat
571573 Widget _buildListView (BuildContext context) {
572574 final length = model! .items.length;
573575 const centerSliverKey = ValueKey ('center sliver' );
576+ final zulipLocalizations = ZulipLocalizations .of (context);
574577
575578 Widget sliver = SliverStickyHeaderList (
576579 headerPlacement: HeaderPlacement .scrollingStart,
@@ -607,7 +610,7 @@ class _MessageListState extends State<MessageList> with PerAccountStoreAwareStat
607610 if (i == 2 ) return TypingStatusWidget (narrow: widget.narrow);
608611
609612 final data = model! .items[length - 1 - (i - 3 )];
610- return _buildItem (data, i);
613+ return _buildItem (zulipLocalizations, data, i);
611614 }));
612615
613616 if (! ComposeBox .hasComposeBox (widget.narrow)) {
@@ -643,13 +646,13 @@ class _MessageListState extends State<MessageList> with PerAccountStoreAwareStat
643646 ]);
644647 }
645648
646- Widget _buildItem (MessageListItem data, int i) {
649+ Widget _buildItem (ZulipLocalizations zulipLocalizations, MessageListItem data, int i) {
647650 switch (data) {
648651 case MessageListHistoryStartItem ():
649- return const Center (
652+ return Center (
650653 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
653656 case MessageListLoadingItem ():
654657 return const Center (
655658 child: Padding (
@@ -693,14 +696,15 @@ class ScrollToBottomButton extends StatelessWidget {
693696
694697 @override
695698 Widget build (BuildContext context) {
699+ final zulipLocalizations = ZulipLocalizations .of (context);
696700 return ValueListenableBuilder <bool >(
697701 valueListenable: visibleValue,
698702 builder: (BuildContext context, bool value, Widget ? child) {
699703 return (value && child != null ) ? child : const SizedBox .shrink ();
700704 },
701705 // TODO: fix hardcoded values for size and style here
702706 child: IconButton (
703- tooltip: "Scroll to bottom" ,
707+ tooltip: zulipLocalizations.scrollToBottomTooltip ,
704708 icon: const Icon (Icons .expand_circle_down_rounded),
705709 iconSize: 40 ,
706710 // Web has the same color in light and dark mode.
0 commit comments