Skip to content

Commit e2c3ab5

Browse files
committed
msglist: Friendlier placeholder text when narrow has no messages
Fixes #1653.
1 parent b5cf046 commit e2c3ab5

17 files changed

+1232
-9
lines changed

assets/l10n/app_en.arb

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@
3131
"@upgradeWelcomeDialogDismiss": {
3232
"description": "Label for button dismissing dialog shown on first upgrade from the legacy Zulip app."
3333
},
34+
"learnMoreButtonLabel": "Learn more",
35+
"@learnMoreButtonLabel": {
36+
"description": "Label for a 'Learn more' button."
37+
},
3438
"chooseAccountPageTitle": "Choose account",
3539
"@chooseAccountPageTitle": {
3640
"description": "Title for the page to choose between Zulip accounts."
@@ -534,6 +538,75 @@
534538
"@emptyMessageList": {
535539
"description": "Placeholder for some message-list pages when there are no messages."
536540
},
541+
"emptyMessageListCombinedFeed": "There are no messages in your combined feed.",
542+
"@emptyMessageListCombinedFeed": {
543+
"description": "Placeholder for the 'Combined feed' page when there are no messages."
544+
},
545+
"emptyMessageListPrivateChannelNotSubscribed": "This channel is private.",
546+
"@emptyMessageListPrivateChannelNotSubscribed": {
547+
"description": "Placeholder for a channel page when there are no messages, the channel is private, and you are not subscribed."
548+
},
549+
"emptyMessageListChannelUnavailable": "This channel doesn’t exist, or you are not allowed to view it.",
550+
"@emptyMessageListChannelUnavailable": {
551+
"description": "Placeholder for a channel page when there are no messages and the channel does not exist or you don't have access to it."
552+
},
553+
"emptyMessageListSelfDmHeader": "You have not sent any direct messages to yourself yet!",
554+
"@emptyMessageListSelfDmHeader": {
555+
"description": "Placeholder for the self-DM page when there are no messages."
556+
},
557+
"emptyMessageListSelfDmMessage": "Use this space for personal notes, or to test out Zulip features.",
558+
"@emptyMessageListSelfDmMessage": {
559+
"description": "Extra detail in the placeholder for the self-DM page when there are no messages."
560+
},
561+
"emptyMessageListDm": "You have no direct messages with {person} yet.",
562+
"@emptyMessageListDm": {
563+
"description": "Placeholder for a 1:1 DM page when there are no messages.",
564+
"placeholders": {
565+
"person": {"type": "String", "example": "Alice"}
566+
}
567+
},
568+
"emptyMessageListDmDeactivatedUser": "You have no direct messages with {person}.",
569+
"@emptyMessageListDmDeactivatedUser": {
570+
"description": "Placeholder for a 1:1 DM page when there are no messages and the other user is deactivated.",
571+
"placeholders": {
572+
"person": {"type": "String", "example": "Alice"}
573+
}
574+
},
575+
"emptyMessageListDmUnknownUser": "You have no direct messages with this person.",
576+
"@emptyMessageListDmUnknownUser": {
577+
"description": "Placeholder for a 1:1 DM page when there are no messages and the other user's name is unavailable."
578+
},
579+
"emptyMessageListGroupDm": "You have no direct messages with these users yet.",
580+
"@emptyMessageListGroupDm": {
581+
"description": "Placeholder for a group DM page when there are no messages."
582+
},
583+
"emptyMessageListGroupDmDeactivatedUser": "You have no direct messages with these users.",
584+
"@emptyMessageListGroupDmDeactivatedUser": {
585+
"description": "Placeholder for a group DM page when there are no messages and one or more participants is deactivated."
586+
},
587+
"emptyMessageListDmStartConversation": "Why not start the conversation?",
588+
"@emptyMessageListDmStartConversation": {
589+
"description": "Extra detail in the placeholder for some DM pages when there are no messages."
590+
},
591+
"emptyMessageListMentionsHeader": "This view will show messages where you are mentioned.",
592+
"@emptyMessageListMentionsHeader": {
593+
"description": "Placeholder for the 'Mentions' page when there are no messages."
594+
},
595+
"emptyMessageListMentionsMessage": "To call attention to a message, you can mention a user, a group, topic participants, or all subscribers to a channel. Type @ in the compose box, and choose who you’d like to mention from the list of suggestions.",
596+
"@emptyMessageListMentionsMessage": {
597+
"description": "Extra detail in the placeholder for the 'Mentions' page when there are no messages."
598+
},
599+
"emptyMessageListStarredHeader": "You have no starred messages.",
600+
"@emptyMessageListStarredHeader": {
601+
"description": "Placeholder for the 'Starred' page when there are no messages."
602+
},
603+
"emptyMessageListStarredMessage": "Starring messages is a good way to keep track of important messages, such as tasks you need to go back to, or useful references. To star a message, long-press it and tap “{button}.”",
604+
"@emptyMessageListStarredMessage": {
605+
"description": "Extra detail in the placeholder for the 'Starred' page when there are no messages. The {button} placeholder will be the button's translated text.",
606+
"placeholders": {
607+
"button": {"type": "String", "example": "Star message"}
608+
}
609+
},
537610
"messageListGroupYouWithYourself": "Messages with yourself",
538611
"@messageListGroupYouWithYourself": {
539612
"description": "Message list recipient header for a DM group that only includes yourself."

lib/generated/l10n/zulip_localizations.dart

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,12 @@ abstract class ZulipLocalizations {
177177
/// **'Let\'s go'**
178178
String get upgradeWelcomeDialogDismiss;
179179

180+
/// Label for a 'Learn more' button.
181+
///
182+
/// In en, this message translates to:
183+
/// **'Learn more'**
184+
String get learnMoreButtonLabel;
185+
180186
/// Title for the page to choose between Zulip accounts.
181187
///
182188
/// In en, this message translates to:
@@ -851,6 +857,96 @@ abstract class ZulipLocalizations {
851857
/// **'There are no messages here.'**
852858
String get emptyMessageList;
853859

860+
/// Placeholder for the 'Combined feed' page when there are no messages.
861+
///
862+
/// In en, this message translates to:
863+
/// **'There are no messages in your combined feed.'**
864+
String get emptyMessageListCombinedFeed;
865+
866+
/// Placeholder for a channel page when there are no messages, the channel is private, and you are not subscribed.
867+
///
868+
/// In en, this message translates to:
869+
/// **'This channel is private.'**
870+
String get emptyMessageListPrivateChannelNotSubscribed;
871+
872+
/// Placeholder for a channel page when there are no messages and the channel does not exist or you don't have access to it.
873+
///
874+
/// In en, this message translates to:
875+
/// **'This channel doesn’t exist, or you are not allowed to view it.'**
876+
String get emptyMessageListChannelUnavailable;
877+
878+
/// Placeholder for the self-DM page when there are no messages.
879+
///
880+
/// In en, this message translates to:
881+
/// **'You have not sent any direct messages to yourself yet!'**
882+
String get emptyMessageListSelfDmHeader;
883+
884+
/// Extra detail in the placeholder for the self-DM page when there are no messages.
885+
///
886+
/// In en, this message translates to:
887+
/// **'Use this space for personal notes, or to test out Zulip features.'**
888+
String get emptyMessageListSelfDmMessage;
889+
890+
/// Placeholder for a 1:1 DM page when there are no messages.
891+
///
892+
/// In en, this message translates to:
893+
/// **'You have no direct messages with {person} yet.'**
894+
String emptyMessageListDm(String person);
895+
896+
/// Placeholder for a 1:1 DM page when there are no messages and the other user is deactivated.
897+
///
898+
/// In en, this message translates to:
899+
/// **'You have no direct messages with {person}.'**
900+
String emptyMessageListDmDeactivatedUser(String person);
901+
902+
/// Placeholder for a 1:1 DM page when there are no messages and the other user's name is unavailable.
903+
///
904+
/// In en, this message translates to:
905+
/// **'You have no direct messages with this person.'**
906+
String get emptyMessageListDmUnknownUser;
907+
908+
/// Placeholder for a group DM page when there are no messages.
909+
///
910+
/// In en, this message translates to:
911+
/// **'You have no direct messages with these users yet.'**
912+
String get emptyMessageListGroupDm;
913+
914+
/// Placeholder for a group DM page when there are no messages and one or more participants is deactivated.
915+
///
916+
/// In en, this message translates to:
917+
/// **'You have no direct messages with these users.'**
918+
String get emptyMessageListGroupDmDeactivatedUser;
919+
920+
/// Extra detail in the placeholder for some DM pages when there are no messages.
921+
///
922+
/// In en, this message translates to:
923+
/// **'Why not start the conversation?'**
924+
String get emptyMessageListDmStartConversation;
925+
926+
/// Placeholder for the 'Mentions' page when there are no messages.
927+
///
928+
/// In en, this message translates to:
929+
/// **'This view will show messages where you are mentioned.'**
930+
String get emptyMessageListMentionsHeader;
931+
932+
/// Extra detail in the placeholder for the 'Mentions' page when there are no messages.
933+
///
934+
/// In en, this message translates to:
935+
/// **'To call attention to a message, you can mention a user, a group, topic participants, or all subscribers to a channel. Type @ in the compose box, and choose who you’d like to mention from the list of suggestions.'**
936+
String get emptyMessageListMentionsMessage;
937+
938+
/// Placeholder for the 'Starred' page when there are no messages.
939+
///
940+
/// In en, this message translates to:
941+
/// **'You have no starred messages.'**
942+
String get emptyMessageListStarredHeader;
943+
944+
/// Extra detail in the placeholder for the 'Starred' page when there are no messages. The {button} placeholder will be the button's translated text.
945+
///
946+
/// In en, this message translates to:
947+
/// **'Starring messages is a good way to keep track of important messages, such as tasks you need to go back to, or useful references. To star a message, long-press it and tap “{button}.”'**
948+
String emptyMessageListStarredMessage(String button);
949+
854950
/// Message list recipient header for a DM group that only includes yourself.
855951
///
856952
/// In en, this message translates to:

lib/generated/l10n/zulip_localizations_ar.dart

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ class ZulipLocalizationsAr extends ZulipLocalizations {
3434
@override
3535
String get upgradeWelcomeDialogDismiss => 'Let\'s go';
3636

37+
@override
38+
String get learnMoreButtonLabel => 'Learn more';
39+
3740
@override
3841
String get chooseAccountPageTitle => 'Choose account';
3942

@@ -437,6 +440,68 @@ class ZulipLocalizationsAr extends ZulipLocalizations {
437440
@override
438441
String get emptyMessageList => 'There are no messages here.';
439442

443+
@override
444+
String get emptyMessageListCombinedFeed =>
445+
'There are no messages in your combined feed.';
446+
447+
@override
448+
String get emptyMessageListPrivateChannelNotSubscribed =>
449+
'This channel is private.';
450+
451+
@override
452+
String get emptyMessageListChannelUnavailable =>
453+
'This channel doesn’t exist, or you are not allowed to view it.';
454+
455+
@override
456+
String get emptyMessageListSelfDmHeader =>
457+
'You have not sent any direct messages to yourself yet!';
458+
459+
@override
460+
String get emptyMessageListSelfDmMessage =>
461+
'Use this space for personal notes, or to test out Zulip features.';
462+
463+
@override
464+
String emptyMessageListDm(String person) {
465+
return 'You have no direct messages with $person yet.';
466+
}
467+
468+
@override
469+
String emptyMessageListDmDeactivatedUser(String person) {
470+
return 'You have no direct messages with $person.';
471+
}
472+
473+
@override
474+
String get emptyMessageListDmUnknownUser =>
475+
'You have no direct messages with this person.';
476+
477+
@override
478+
String get emptyMessageListGroupDm =>
479+
'You have no direct messages with these users yet.';
480+
481+
@override
482+
String get emptyMessageListGroupDmDeactivatedUser =>
483+
'You have no direct messages with these users.';
484+
485+
@override
486+
String get emptyMessageListDmStartConversation =>
487+
'Why not start the conversation?';
488+
489+
@override
490+
String get emptyMessageListMentionsHeader =>
491+
'This view will show messages where you are mentioned.';
492+
493+
@override
494+
String get emptyMessageListMentionsMessage =>
495+
'To call attention to a message, you can mention a user, a group, topic participants, or all subscribers to a channel. Type @ in the compose box, and choose who you’d like to mention from the list of suggestions.';
496+
497+
@override
498+
String get emptyMessageListStarredHeader => 'You have no starred messages.';
499+
500+
@override
501+
String emptyMessageListStarredMessage(String button) {
502+
return 'Starring messages is a good way to keep track of important messages, such as tasks you need to go back to, or useful references. To star a message, long-press it and tap “$button.”';
503+
}
504+
440505
@override
441506
String get messageListGroupYouWithYourself => 'Messages with yourself';
442507

lib/generated/l10n/zulip_localizations_de.dart

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ class ZulipLocalizationsDe extends ZulipLocalizations {
3434
@override
3535
String get upgradeWelcomeDialogDismiss => 'Los gehts';
3636

37+
@override
38+
String get learnMoreButtonLabel => 'Learn more';
39+
3740
@override
3841
String get chooseAccountPageTitle => 'Konto auswählen';
3942

@@ -452,6 +455,68 @@ class ZulipLocalizationsDe extends ZulipLocalizations {
452455
@override
453456
String get emptyMessageList => 'There are no messages here.';
454457

458+
@override
459+
String get emptyMessageListCombinedFeed =>
460+
'There are no messages in your combined feed.';
461+
462+
@override
463+
String get emptyMessageListPrivateChannelNotSubscribed =>
464+
'This channel is private.';
465+
466+
@override
467+
String get emptyMessageListChannelUnavailable =>
468+
'This channel doesn’t exist, or you are not allowed to view it.';
469+
470+
@override
471+
String get emptyMessageListSelfDmHeader =>
472+
'You have not sent any direct messages to yourself yet!';
473+
474+
@override
475+
String get emptyMessageListSelfDmMessage =>
476+
'Use this space for personal notes, or to test out Zulip features.';
477+
478+
@override
479+
String emptyMessageListDm(String person) {
480+
return 'You have no direct messages with $person yet.';
481+
}
482+
483+
@override
484+
String emptyMessageListDmDeactivatedUser(String person) {
485+
return 'You have no direct messages with $person.';
486+
}
487+
488+
@override
489+
String get emptyMessageListDmUnknownUser =>
490+
'You have no direct messages with this person.';
491+
492+
@override
493+
String get emptyMessageListGroupDm =>
494+
'You have no direct messages with these users yet.';
495+
496+
@override
497+
String get emptyMessageListGroupDmDeactivatedUser =>
498+
'You have no direct messages with these users.';
499+
500+
@override
501+
String get emptyMessageListDmStartConversation =>
502+
'Why not start the conversation?';
503+
504+
@override
505+
String get emptyMessageListMentionsHeader =>
506+
'This view will show messages where you are mentioned.';
507+
508+
@override
509+
String get emptyMessageListMentionsMessage =>
510+
'To call attention to a message, you can mention a user, a group, topic participants, or all subscribers to a channel. Type @ in the compose box, and choose who you’d like to mention from the list of suggestions.';
511+
512+
@override
513+
String get emptyMessageListStarredHeader => 'You have no starred messages.';
514+
515+
@override
516+
String emptyMessageListStarredMessage(String button) {
517+
return 'Starring messages is a good way to keep track of important messages, such as tasks you need to go back to, or useful references. To star a message, long-press it and tap “$button.”';
518+
}
519+
455520
@override
456521
String get messageListGroupYouWithYourself => 'Nachrichten mit dir selbst';
457522

0 commit comments

Comments
 (0)