mirror of
https://github.com/bulwarkmail/webmail.git
synced 2026-10-31 08:13:50 +00:00
fix: keep the phone conversation's reply buttons readable and count its messages with each language's plural forms
This commit is contained in:
@@ -70,3 +70,32 @@ describe('phone conversation header', () => {
|
||||
expect(screen.getByRole('heading', { level: 1 }).className).toContain('line-clamp-2');
|
||||
});
|
||||
});
|
||||
|
||||
// In Arabic the per-message "Reply all" and "Forward" were cut with no way to
|
||||
// read them, and the count said "3 رسالة" (one form for every number).
|
||||
describe('phone conversation messages', () => {
|
||||
it('counts the messages with the plural message', () => {
|
||||
renderView({});
|
||||
expect(screen.getByText('threads.messages_count')).toBeTruthy();
|
||||
});
|
||||
|
||||
it('wraps the reply buttons instead of cutting their names', () => {
|
||||
render(
|
||||
<ThreadConversationView
|
||||
thread={{ threadId: 't1', emails: [email], latestEmail: email } as never}
|
||||
emails={[email] as never}
|
||||
onBack={() => {}}
|
||||
onReply={() => {}}
|
||||
onReplyAll={() => {}}
|
||||
onForward={() => {}}
|
||||
/>,
|
||||
);
|
||||
const replyAll = screen.getByRole('button', { name: 'email_viewer.reply_all' });
|
||||
expect(replyAll.parentElement?.className).toContain('flex-wrap');
|
||||
for (const name of ['email_viewer.reply', 'email_viewer.reply_all', 'email_viewer.forward']) {
|
||||
const button = screen.getByRole('button', { name });
|
||||
expect(button.className).not.toContain('min-w-0');
|
||||
expect(button.querySelector('.truncate')).toBeNull();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -263,7 +263,7 @@ export function ThreadConversationView({
|
||||
{thread.latestEmail.subject || t("email_viewer.no_subject")}
|
||||
</h1>
|
||||
<p className="text-sm text-muted-foreground">
|
||||
{t("threads.messages_other", { count: emails.length })}
|
||||
{t("threads.messages_count", { count: emails.length })}
|
||||
</p>
|
||||
</div>
|
||||
{actions && <ConversationHeaderActions email={thread.latestEmail} actions={actions} />}
|
||||
@@ -436,8 +436,9 @@ function EmailCard({
|
||||
<PluginSlot name="email-footer" className="w-full" extraProps={plugin.idProps} />
|
||||
|
||||
{/* Action Buttons; plugin reader actions behind a "more" button, as
|
||||
in the single reader's More panel on phones. */}
|
||||
<div className="px-4 pb-4 flex gap-2">
|
||||
in the single reader's More panel on phones. Long names (Arabic
|
||||
"Reply all") wrap to a second line instead of being cut. */}
|
||||
<div className="px-4 pb-4 flex flex-wrap gap-2">
|
||||
{onReply && (
|
||||
<Button
|
||||
variant="outline"
|
||||
@@ -446,10 +447,10 @@ function EmailCard({
|
||||
e.stopPropagation();
|
||||
onReply();
|
||||
}}
|
||||
className="flex-1 min-w-0 px-2 whitespace-nowrap"
|
||||
className="flex-auto px-2 whitespace-nowrap"
|
||||
>
|
||||
<Reply className="w-4 h-4 me-1.5 shrink-0" />
|
||||
<span className="truncate">{t("email_viewer.reply")}</span>
|
||||
{t("email_viewer.reply")}
|
||||
</Button>
|
||||
)}
|
||||
{onReplyAll && (
|
||||
@@ -460,10 +461,10 @@ function EmailCard({
|
||||
e.stopPropagation();
|
||||
onReplyAll();
|
||||
}}
|
||||
className="flex-1 min-w-0 px-2 whitespace-nowrap"
|
||||
className="flex-auto px-2 whitespace-nowrap"
|
||||
>
|
||||
<ReplyAll className="w-4 h-4 me-1.5 shrink-0" />
|
||||
<span className="truncate">{t("email_viewer.reply_all")}</span>
|
||||
{t("email_viewer.reply_all")}
|
||||
</Button>
|
||||
)}
|
||||
{onForward && (
|
||||
@@ -474,10 +475,10 @@ function EmailCard({
|
||||
e.stopPropagation();
|
||||
onForward();
|
||||
}}
|
||||
className="flex-1 min-w-0 px-2 whitespace-nowrap"
|
||||
className="flex-auto px-2 whitespace-nowrap"
|
||||
>
|
||||
<Forward className="w-4 h-4 me-1.5 shrink-0" />
|
||||
<span className="truncate">{t("email_viewer.forward")}</span>
|
||||
{t("email_viewer.forward")}
|
||||
</Button>
|
||||
)}
|
||||
<PluginActions
|
||||
|
||||
@@ -429,7 +429,7 @@ async function openPhoneConversation(ref: Email, threadClient: JMAPClient, selec
|
||||
fireEvent.click(await screen.findByText('Routing conversation'));
|
||||
await screen.findByRole('button', { name: 'email_viewer.back_to_list' });
|
||||
await waitFor(() => expect(threadFetch).toHaveBeenCalled());
|
||||
await screen.findByText('threads.messages_other');
|
||||
await screen.findByText('threads.messages_count');
|
||||
return threadFetch;
|
||||
}
|
||||
|
||||
|
||||
@@ -241,3 +241,25 @@ describe('mail menu labels', () => {
|
||||
expect(resolveKey(loadLocale(locale), 'email_viewer.keyboard_shortcuts')).not.toMatch(/[((][??؟][))]/);
|
||||
});
|
||||
});
|
||||
|
||||
describe('message counts', () => {
|
||||
// The phone conversation said "3 رسالة": it used the hand-made "other"
|
||||
// form for every count, and several plural messages missed the forms
|
||||
// their language has (Arabic two/few/many, Russian few).
|
||||
const KEYS = ['threads.messages_count', 'threads.messages_tooltip'];
|
||||
const branches = (message: string) => new Set([...message.matchAll(/(?:^|[}\s,])(zero|one|two|few|many|other)\s*\{/g)].map((m) => m[1]));
|
||||
|
||||
it.each(locales)('%s has a plural form for every whole count', (locale) => {
|
||||
const table = loadLocale(locale);
|
||||
const rules = new Intl.PluralRules(locale);
|
||||
const needed = new Set<string>();
|
||||
for (let n = 0; n <= 200; n++) needed.add(rules.select(n));
|
||||
const missing = KEYS.flatMap((key) => {
|
||||
const message = resolveKey(table, key);
|
||||
if (typeof message !== 'string' || !message.includes('plural')) return [`${key}: not a plural message`];
|
||||
const have = branches(message);
|
||||
return [...needed].filter((form) => !have.has(form)).map((form) => `${key}: ${form}`);
|
||||
});
|
||||
expect(missing).toEqual([]);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -3080,9 +3080,7 @@
|
||||
}
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "{count} رسالة",
|
||||
"messages_other": "{count} رسالة",
|
||||
"messages_tooltip": "{count, plural, one {# رسالة في هذه المحادثة} other {# رسالة في هذه المحادثة}}",
|
||||
"messages_tooltip": "{count, plural, zero {لا رسائل في هذه المحادثة} one {رسالة واحدة في هذه المحادثة} two {رسالتان في هذه المحادثة} few {# رسائل في هذه المحادثة} many {# رسالة في هذه المحادثة} other {# رسالة في هذه المحادثة}}",
|
||||
"expand": "توسيع المحادثة",
|
||||
"collapse": "طي المحادثة",
|
||||
"loading": "جارٍ تحميل المحادثة...",
|
||||
@@ -3092,7 +3090,8 @@
|
||||
"delete": "حذف المحادثة",
|
||||
"star": "تمييز المحادثة بنجمة",
|
||||
"unstar": "إزالة النجمة عن المحادثة",
|
||||
"toggle_thread": "تبديل عرض المحادثة"
|
||||
"toggle_thread": "تبديل عرض المحادثة",
|
||||
"messages_count": "{count, plural, zero {لا رسائل} one {رسالة واحدة} two {رسالتان} few {# رسائل} many {# رسالة} other {# رسالة}}"
|
||||
},
|
||||
"identities": {
|
||||
"modal_title": "إدارة هويات الإرسال",
|
||||
|
||||
@@ -3080,8 +3080,6 @@
|
||||
}
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "{count} missatge",
|
||||
"messages_other": "{count} missatges",
|
||||
"messages_tooltip": "{count, plural, one {# missatge en aquesta conversa} other {# missatges en aquesta conversa}}",
|
||||
"expand": "Desplega la conversa",
|
||||
"collapse": "Replega la conversa",
|
||||
@@ -3092,7 +3090,8 @@
|
||||
"delete": "Suprimeix la conversa",
|
||||
"star": "Marca la conversa amb estrella",
|
||||
"unstar": "Treu l'estrella de la conversa",
|
||||
"toggle_thread": "Commuta el fil"
|
||||
"toggle_thread": "Commuta el fil",
|
||||
"messages_count": "{count, plural, one {# missatge} other {# missatges}}"
|
||||
},
|
||||
"identities": {
|
||||
"modal_title": "Gestiona les identitats d'enviament",
|
||||
|
||||
@@ -3080,9 +3080,7 @@
|
||||
}
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "{count} zpráva",
|
||||
"messages_other": "{count} zpráv",
|
||||
"messages_tooltip": "{count, plural, one {1 zpráva v této konverzaci} few {# zprávy v této konverzaci} other {# zpráv v této konverzaci}}",
|
||||
"messages_tooltip": "{count, plural, one {# zpráva v této konverzaci} few {# zprávy v této konverzaci} many {# zprávy v této konverzaci} other {# zpráv v této konverzaci}}",
|
||||
"expand": "Rozbalit konverzaci",
|
||||
"collapse": "Sbalit konverzaci",
|
||||
"loading": "Načítání konverzace...",
|
||||
@@ -3092,7 +3090,8 @@
|
||||
"delete": "Odstranit konverzaci",
|
||||
"star": "Označit konverzaci hvězdičkou",
|
||||
"unstar": "Odebrat hvězdičku z konverzace",
|
||||
"toggle_thread": "Přepnout zobrazení vlákna"
|
||||
"toggle_thread": "Přepnout zobrazení vlákna",
|
||||
"messages_count": "{count, plural, one {# zpráva} few {# zprávy} many {# zprávy} other {# zpráv}}"
|
||||
},
|
||||
"identities": {
|
||||
"modal_title": "Správa identit odesílatele",
|
||||
|
||||
@@ -3080,8 +3080,6 @@
|
||||
}
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "{count} besked",
|
||||
"messages_other": "{count} beskeder",
|
||||
"messages_tooltip": "{count, plural, one {# besked i denne samtale} other {# beskeder i denne samtale}}",
|
||||
"expand": "Udvid samtale",
|
||||
"collapse": "Skjul samtale",
|
||||
@@ -3092,7 +3090,8 @@
|
||||
"delete": "Slet samtale",
|
||||
"star": "Stjernemarkér samtale",
|
||||
"unstar": "Fjern stjernemarkering",
|
||||
"toggle_thread": "Slå tråd til/fra"
|
||||
"toggle_thread": "Slå tråd til/fra",
|
||||
"messages_count": "{count, plural, one {# besked} other {# beskeder}}"
|
||||
},
|
||||
"identities": {
|
||||
"modal_title": "Administrér afsenderidentiteter",
|
||||
|
||||
@@ -3080,8 +3080,6 @@
|
||||
}
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "{count} Nachricht",
|
||||
"messages_other": "{count} Nachrichten",
|
||||
"messages_tooltip": "{count, plural, one {# Nachricht in dieser Unterhaltung} other {# Nachrichten in dieser Unterhaltung}}",
|
||||
"expand": "Unterhaltung erweitern",
|
||||
"collapse": "Unterhaltung einklappen",
|
||||
@@ -3092,7 +3090,8 @@
|
||||
"delete": "Unterhaltung löschen",
|
||||
"star": "Unterhaltung mit Stern markieren",
|
||||
"unstar": "Stern von Unterhaltung entfernen",
|
||||
"toggle_thread": "Unterhaltung ein-/ausklappen"
|
||||
"toggle_thread": "Unterhaltung ein-/ausklappen",
|
||||
"messages_count": "{count, plural, one {# Nachricht} other {# Nachrichten}}"
|
||||
},
|
||||
"identities": {
|
||||
"modal_title": "Sendeidentitäten verwalten",
|
||||
|
||||
@@ -3080,8 +3080,6 @@
|
||||
}
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "{count} message",
|
||||
"messages_other": "{count} messages",
|
||||
"messages_tooltip": "{count, plural, one {# message in this conversation} other {# messages in this conversation}}",
|
||||
"expand": "Expand conversation",
|
||||
"collapse": "Collapse conversation",
|
||||
@@ -3092,7 +3090,8 @@
|
||||
"delete": "Delete conversation",
|
||||
"star": "Star conversation",
|
||||
"unstar": "Unstar conversation",
|
||||
"toggle_thread": "Toggle thread"
|
||||
"toggle_thread": "Toggle thread",
|
||||
"messages_count": "{count, plural, one {# message} other {# messages}}"
|
||||
},
|
||||
"identities": {
|
||||
"modal_title": "Manage sending identities",
|
||||
|
||||
@@ -3080,8 +3080,6 @@
|
||||
}
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "{count} mensaje",
|
||||
"messages_other": "{count} mensajes",
|
||||
"messages_tooltip": "{count, plural, one {# mensaje en esta conversación} other {# mensajes en esta conversación}}",
|
||||
"expand": "Expandir conversación",
|
||||
"collapse": "Contraer conversación",
|
||||
@@ -3092,7 +3090,8 @@
|
||||
"delete": "Eliminar conversación",
|
||||
"star": "Destacar conversación",
|
||||
"unstar": "Quitar destacado de conversación",
|
||||
"toggle_thread": "Expandir/contraer hilo"
|
||||
"toggle_thread": "Expandir/contraer hilo",
|
||||
"messages_count": "{count, plural, one {# mensaje} other {# mensajes}}"
|
||||
},
|
||||
"identities": {
|
||||
"modal_title": "Administrar Identidades de Envío",
|
||||
|
||||
@@ -3080,8 +3080,6 @@
|
||||
}
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "{count} sõnum",
|
||||
"messages_other": "{count} sõnumit",
|
||||
"messages_tooltip": "{count, plural, one {# sõnum selles vestluses} other {# sõnumit selles vestluses}}",
|
||||
"expand": "Ava vestlus",
|
||||
"collapse": "Sulge vestlus",
|
||||
@@ -3092,7 +3090,8 @@
|
||||
"delete": "Kustuta vestlus",
|
||||
"star": "Tähista vestlus",
|
||||
"unstar": "Eemalda vestluse tähistus",
|
||||
"toggle_thread": "Lülita vestlus"
|
||||
"toggle_thread": "Lülita vestlus",
|
||||
"messages_count": "{count, plural, one {# sõnum} other {# sõnumit}}"
|
||||
},
|
||||
"identities": {
|
||||
"modal_title": "Halda saatja identiteete",
|
||||
|
||||
@@ -3080,8 +3080,6 @@
|
||||
}
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "{count} پیام",
|
||||
"messages_other": "{count} پیام",
|
||||
"messages_tooltip": "{count, plural, one {# پیام در این مکالمه} other {# پیام در این مکالمه}}",
|
||||
"expand": "باز کردن مکالمه",
|
||||
"collapse": "جمع کردن مکالمه",
|
||||
@@ -3092,7 +3090,8 @@
|
||||
"delete": "حذف مکالمه",
|
||||
"star": "ستارهدار کردن مکالمه",
|
||||
"unstar": "حذف ستاره مکالمه",
|
||||
"toggle_thread": "تغییر وضعیت رشته"
|
||||
"toggle_thread": "تغییر وضعیت رشته",
|
||||
"messages_count": "{count, plural, one {# پیام} other {# پیام}}"
|
||||
},
|
||||
"identities": {
|
||||
"modal_title": "مدیریت هویتهای ارسال",
|
||||
|
||||
@@ -3080,8 +3080,6 @@
|
||||
}
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "{count} message",
|
||||
"messages_other": "{count} messages",
|
||||
"messages_tooltip": "{count, plural, one {# message dans cette conversation} other {# messages dans cette conversation}}",
|
||||
"expand": "Développer la conversation",
|
||||
"collapse": "Réduire la conversation",
|
||||
@@ -3092,7 +3090,8 @@
|
||||
"delete": "Supprimer la conversation",
|
||||
"star": "Marquer la conversation comme favorite",
|
||||
"unstar": "Retirer des favoris",
|
||||
"toggle_thread": "Déplier/replier la discussion"
|
||||
"toggle_thread": "Déplier/replier la discussion",
|
||||
"messages_count": "{count, plural, one {# message} other {# messages}}"
|
||||
},
|
||||
"identities": {
|
||||
"modal_title": "Gérer les identités d'envoi",
|
||||
|
||||
@@ -2998,9 +2998,7 @@
|
||||
}
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "הודעת{count}",
|
||||
"messages_other": "הודעות{count}",
|
||||
"messages_tooltip": "{count, plural, one {הודעה אחת בשיחה זו} other {# הודעות בשיחה זו}}",
|
||||
"messages_tooltip": "{count, plural, one {הודעה אחת בשיחה זו} two {שתי הודעות בשיחה זו} other {# הודעות בשיחה זו}}",
|
||||
"expand": "הרחב את השיחה",
|
||||
"collapse": "כווץ השיחה",
|
||||
"loading": "טוען שיחה...",
|
||||
@@ -3010,7 +3008,8 @@
|
||||
"delete": "מחק את השיחה",
|
||||
"star": "שיחת כוכב",
|
||||
"unstar": "הסר שיחה בכוכב",
|
||||
"toggle_thread": "החלף חוט"
|
||||
"toggle_thread": "החלף חוט",
|
||||
"messages_count": "{count, plural, one {הודעה אחת} two {שתי הודעות} other {# הודעות}}"
|
||||
},
|
||||
"identities": {
|
||||
"modal_title": "ניהול זהויות שליחה",
|
||||
|
||||
@@ -3080,8 +3080,6 @@
|
||||
}
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "{count} üzenet",
|
||||
"messages_other": "{count} üzenet",
|
||||
"messages_tooltip": "{count, plural, one {# üzenet ebben a beszélgetésben} other {# üzenet ebben a beszélgetésben}}",
|
||||
"expand": "Beszélgetés kibontása",
|
||||
"collapse": "Beszélgetés összecsukása",
|
||||
@@ -3092,7 +3090,8 @@
|
||||
"delete": "Beszélgetés törlése",
|
||||
"star": "Beszélgetés csillagozása",
|
||||
"unstar": "Beszélgetés csillagozásának megszüntetése",
|
||||
"toggle_thread": "Beszélgetés váltása"
|
||||
"toggle_thread": "Beszélgetés váltása",
|
||||
"messages_count": "{count, plural, one {# üzenet} other {# üzenet}}"
|
||||
},
|
||||
"identities": {
|
||||
"modal_title": "Küldő azonosságok kezelése",
|
||||
|
||||
@@ -3080,8 +3080,6 @@
|
||||
}
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "{count} messaggio",
|
||||
"messages_other": "{count} messaggi",
|
||||
"messages_tooltip": "{count, plural, one {# messaggio in questa conversazione} other {# messaggi in questa conversazione}}",
|
||||
"expand": "Espandi conversazione",
|
||||
"collapse": "Comprimi conversazione",
|
||||
@@ -3092,7 +3090,8 @@
|
||||
"delete": "Elimina conversazione",
|
||||
"star": "Aggiungi stella alla conversazione",
|
||||
"unstar": "Rimuovi stella dalla conversazione",
|
||||
"toggle_thread": "Espandi/comprimi discussione"
|
||||
"toggle_thread": "Espandi/comprimi discussione",
|
||||
"messages_count": "{count, plural, one {# messaggio} other {# messaggi}}"
|
||||
},
|
||||
"identities": {
|
||||
"modal_title": "Gestisci identità di invio",
|
||||
|
||||
@@ -3080,8 +3080,6 @@
|
||||
}
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "{count}件のメッセージ",
|
||||
"messages_other": "{count}件のメッセージ",
|
||||
"messages_tooltip": "{count, plural, other {この会話の#件のメッセージ}}",
|
||||
"expand": "会話を展開",
|
||||
"collapse": "会話を折りたたむ",
|
||||
@@ -3092,7 +3090,8 @@
|
||||
"delete": "会話を削除",
|
||||
"star": "会話にスターを付ける",
|
||||
"unstar": "会話のスターを外す",
|
||||
"toggle_thread": "スレッドの展開/折りたたみ"
|
||||
"toggle_thread": "スレッドの展開/折りたたみ",
|
||||
"messages_count": "{count, plural, other {#件のメッセージ}}"
|
||||
},
|
||||
"identities": {
|
||||
"modal_title": "送信者情報を管理",
|
||||
|
||||
@@ -3080,9 +3080,7 @@
|
||||
}
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "메시지 1개",
|
||||
"messages_other": "메시지 {count}개",
|
||||
"messages_tooltip": "이 대화에 {count}개의 메시지가 있어요",
|
||||
"messages_tooltip": "{count, plural, other {이 대화에 #개의 메시지가 있어요}}",
|
||||
"expand": "대화 펼치기",
|
||||
"collapse": "대화 접기",
|
||||
"loading": "대화를 불러오는 중...",
|
||||
@@ -3092,7 +3090,8 @@
|
||||
"delete": "대화 삭제",
|
||||
"star": "대화 전체에 별표 달기",
|
||||
"unstar": "대화 전체 별표 해제",
|
||||
"toggle_thread": "스레드 켜기/끄기"
|
||||
"toggle_thread": "스레드 켜기/끄기",
|
||||
"messages_count": "{count, plural, other {메시지 #개}}"
|
||||
},
|
||||
"identities": {
|
||||
"modal_title": "보내는 사람 관리",
|
||||
|
||||
@@ -3080,9 +3080,7 @@
|
||||
}
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "{count} ziņojums",
|
||||
"messages_other": "{count} ziņojumi",
|
||||
"messages_tooltip": "{count, plural, one {# ziņojums šajā sarunā} other {# ziņojumi šajā sarunā}}",
|
||||
"messages_tooltip": "{count, plural, zero {# ziņojumu šajā sarunā} one {# ziņojums šajā sarunā} other {# ziņojumi šajā sarunā}}",
|
||||
"expand": "Izvērst sarunu",
|
||||
"collapse": "Sairt sarunu",
|
||||
"loading": "Ielādē sarunu...",
|
||||
@@ -3092,7 +3090,8 @@
|
||||
"delete": "Dzēst sarunu",
|
||||
"star": "Pievienot zvaigznīti sarunai",
|
||||
"unstar": "Noņemt zvaigznīti sarunai",
|
||||
"toggle_thread": "Pārslēgt sarunu"
|
||||
"toggle_thread": "Pārslēgt sarunu",
|
||||
"messages_count": "{count, plural, zero {# ziņojumu} one {# ziņojums} other {# ziņojumi}}"
|
||||
},
|
||||
"identities": {
|
||||
"modal_title": "Pārvaldīt sūtītāja identitātes",
|
||||
|
||||
@@ -3080,8 +3080,6 @@
|
||||
}
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "{count} мессеж",
|
||||
"messages_other": "{count} мессежүүд",
|
||||
"messages_tooltip": "{count, plural, one {Энэ харилцан ярианд # зурвас байна} other {Энэ харилцан ярианд # зурвас байна}}",
|
||||
"expand": "Харилцан яриаг өргөжүүлэх",
|
||||
"collapse": "Харилцан яриаг хураах",
|
||||
@@ -3092,7 +3090,8 @@
|
||||
"delete": "Харилцан яриаг устгах",
|
||||
"star": "Харилцан яриаг одтой болгох",
|
||||
"unstar": "Харилцан ярианы одыг авах",
|
||||
"toggle_thread": "Хэлхээсийг дэлгэх/хумих"
|
||||
"toggle_thread": "Хэлхээсийг дэлгэх/хумих",
|
||||
"messages_count": "{count, plural, one {# мессеж} other {# мессеж}}"
|
||||
},
|
||||
"identities": {
|
||||
"modal_title": "Илгээж буй таниулбаруудыг удирдах",
|
||||
|
||||
@@ -3080,8 +3080,6 @@
|
||||
}
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "{count} melding",
|
||||
"messages_other": "{count} meldinger",
|
||||
"messages_tooltip": "{count, plural, one {# melding i denne samtalen} other {# meldinger i denne samtalen}}",
|
||||
"expand": "Utvid samtalen",
|
||||
"collapse": "Fold sammen samtalen",
|
||||
@@ -3092,7 +3090,8 @@
|
||||
"delete": "Slett samtalen",
|
||||
"star": "Stjernemerk samtalen",
|
||||
"unstar": "Fjern stjernemerking fra samtalen",
|
||||
"toggle_thread": "Utvid eller fold sammen tråden"
|
||||
"toggle_thread": "Utvid eller fold sammen tråden",
|
||||
"messages_count": "{count, plural, one {# melding} other {# meldinger}}"
|
||||
},
|
||||
"identities": {
|
||||
"modal_title": "Administrer avsenderidentiteter",
|
||||
|
||||
@@ -3080,8 +3080,6 @@
|
||||
}
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "{count} bericht",
|
||||
"messages_other": "{count} berichten",
|
||||
"messages_tooltip": "{count, plural, one {# bericht in dit gesprek} other {# berichten in dit gesprek}}",
|
||||
"expand": "Gesprek uitklappen",
|
||||
"collapse": "Gesprek inklappen",
|
||||
@@ -3092,7 +3090,8 @@
|
||||
"delete": "Gesprek verwijderen",
|
||||
"star": "Ster toevoegen aan gesprek",
|
||||
"unstar": "Ster verwijderen van gesprek",
|
||||
"toggle_thread": "Gesprek in-/uitvouwen"
|
||||
"toggle_thread": "Gesprek in-/uitvouwen",
|
||||
"messages_count": "{count, plural, one {# bericht} other {# berichten}}"
|
||||
},
|
||||
"identities": {
|
||||
"modal_title": "Verzendidentiteiten beheren",
|
||||
|
||||
@@ -3080,9 +3080,7 @@
|
||||
}
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "{count} wiadomość",
|
||||
"messages_other": "{count} wiadomości",
|
||||
"messages_tooltip": "{count, plural, one {# wiadomość w tej konwersacji} other {# wiadomości w tej konwersacji}}",
|
||||
"messages_tooltip": "{count, plural, one {# wiadomość w tej konwersacji} few {# wiadomości w tej konwersacji} many {# wiadomości w tej konwersacji} other {# wiadomości w tej konwersacji}}",
|
||||
"expand": "Rozwiń konwersację",
|
||||
"collapse": "Zwiń konwersację",
|
||||
"loading": "Ładowanie konwersacji...",
|
||||
@@ -3092,7 +3090,8 @@
|
||||
"delete": "Usuń konwersację",
|
||||
"star": "Oznacz konwersację gwiazdką",
|
||||
"unstar": "Usuń gwiazdkę z konwersacji",
|
||||
"toggle_thread": "Przełącz widok wątku"
|
||||
"toggle_thread": "Przełącz widok wątku",
|
||||
"messages_count": "{count, plural, one {# wiadomość} few {# wiadomości} many {# wiadomości} other {# wiadomości}}"
|
||||
},
|
||||
"identities": {
|
||||
"modal_title": "Zarządzaj tożsamościami nadawcy",
|
||||
|
||||
@@ -3080,8 +3080,6 @@
|
||||
}
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "{count} mensagem",
|
||||
"messages_other": "{count} mensagens",
|
||||
"messages_tooltip": "{count, plural, one {# mensagem nesta conversa} other {# mensagens nesta conversa}}",
|
||||
"expand": "Expandir conversa",
|
||||
"collapse": "Recolher conversa",
|
||||
@@ -3092,7 +3090,8 @@
|
||||
"delete": "Excluir conversa",
|
||||
"star": "Adicionar estrela à conversa",
|
||||
"unstar": "Remover estrela da conversa",
|
||||
"toggle_thread": "Expandir/recolher conversa"
|
||||
"toggle_thread": "Expandir/recolher conversa",
|
||||
"messages_count": "{count, plural, one {# mensagem} other {# mensagens}}"
|
||||
},
|
||||
"identities": {
|
||||
"modal_title": "Gerenciar Identidades de Envio",
|
||||
|
||||
@@ -3080,9 +3080,7 @@
|
||||
}
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "{count} mesaj",
|
||||
"messages_other": "{count} mesaje",
|
||||
"messages_tooltip": "{count, plural, one {# mesajul din această conversație} few {# mesaje din această conversație} other {# de mesaje din această conversație}}",
|
||||
"messages_tooltip": "{count, plural, one {# mesaj în această conversație} few {# mesaje în această conversație} other {# de mesaje în această conversație}}",
|
||||
"expand": "Extinde conversația",
|
||||
"collapse": "Ascunde conversația",
|
||||
"loading": "Se încarcă conversația...",
|
||||
@@ -3092,7 +3090,8 @@
|
||||
"delete": "Șterge conversația",
|
||||
"star": "Marcați conversația cu stea",
|
||||
"unstar": "Dezactivează marcajul conversației",
|
||||
"toggle_thread": "Comutare fir de discuție"
|
||||
"toggle_thread": "Comutare fir de discuție",
|
||||
"messages_count": "{count, plural, one {# mesaj} few {# mesaje} other {# de mesaje}}"
|
||||
},
|
||||
"identities": {
|
||||
"modal_title": "Gestionarea identităților de expediere",
|
||||
|
||||
@@ -3080,9 +3080,7 @@
|
||||
}
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "{count} сообщение",
|
||||
"messages_other": "{count} сообщений",
|
||||
"messages_tooltip": "{count, plural, one {# сообщение в этом разговоре} other {# сообщений в этом разговоре}}",
|
||||
"messages_tooltip": "{count, plural, one {# сообщение в этом разговоре} few {# сообщения в этом разговоре} many {# сообщений в этом разговоре} other {# сообщения в этом разговоре}}",
|
||||
"expand": "Развернуть разговор",
|
||||
"collapse": "Свернуть разговор",
|
||||
"loading": "Загрузка разговора...",
|
||||
@@ -3092,7 +3090,8 @@
|
||||
"delete": "Удалить разговор",
|
||||
"star": "Добавить звёздочку к разговору",
|
||||
"unstar": "Убрать звёздочку у разговора",
|
||||
"toggle_thread": "Переключить цепочку"
|
||||
"toggle_thread": "Переключить цепочку",
|
||||
"messages_count": "{count, plural, one {# сообщение} few {# сообщения} many {# сообщений} other {# сообщения}}"
|
||||
},
|
||||
"identities": {
|
||||
"modal_title": "Управление идентификациями отправителя",
|
||||
|
||||
@@ -3080,9 +3080,7 @@
|
||||
}
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "{count} správa",
|
||||
"messages_other": "{count} správ",
|
||||
"messages_tooltip": "{count, plural, one {# správa v tejto konverzácii} other {# správ v tejto konverzácii}}",
|
||||
"messages_tooltip": "{count, plural, one {# správa v tejto konverzácii} few {# správy v tejto konverzácii} many {# správy v tejto konverzácii} other {# správ v tejto konverzácii}}",
|
||||
"expand": "Rozbaliť konverzáciu",
|
||||
"collapse": "Zbaliť konverzáciu",
|
||||
"loading": "Načítavanie konverzácie...",
|
||||
@@ -3092,7 +3090,8 @@
|
||||
"delete": "Odstrániť konverzáciu",
|
||||
"star": "Označiť konverzáciu hviezdičkou",
|
||||
"unstar": "Odstrániť hviezdičku z konverzácie",
|
||||
"toggle_thread": "Prepnúť zobrazenie vlákna"
|
||||
"toggle_thread": "Prepnúť zobrazenie vlákna",
|
||||
"messages_count": "{count, plural, one {# správa} few {# správy} many {# správy} other {# správ}}"
|
||||
},
|
||||
"identities": {
|
||||
"modal_title": "Správa identít odosielateľa",
|
||||
|
||||
@@ -383,8 +383,6 @@
|
||||
"open_app": "เปิด {name}"
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "{count} ข้อความ",
|
||||
"messages_other": "{count} ข้อความ",
|
||||
"messages_tooltip": "{count, plural, other {# ข้อความในการสนทนานี้}}",
|
||||
"expand": "ขยายการสนทนา",
|
||||
"collapse": "ย่อการสนทนา",
|
||||
@@ -395,7 +393,8 @@
|
||||
"delete": "ลบการสนทนา",
|
||||
"star": "ติดดาวการสนทนา",
|
||||
"unstar": "ยกเลิกติดดาวการสนทนา",
|
||||
"toggle_thread": "สลับมุมมองการสนทนา"
|
||||
"toggle_thread": "สลับมุมมองการสนทนา",
|
||||
"messages_count": "{count, plural, other {# ข้อความ}}"
|
||||
},
|
||||
"notifications": {
|
||||
"email_sent": "ส่งอีเมลแล้ว",
|
||||
|
||||
@@ -3080,8 +3080,6 @@
|
||||
}
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "{count} ileti",
|
||||
"messages_other": "{count} ileti",
|
||||
"messages_tooltip": "{count, plural, one {Bu konuşmada # ileti} other {Bu konuşmada # ileti}}",
|
||||
"expand": "Konuşmayı genişlet",
|
||||
"collapse": "Konuşmayı daralt",
|
||||
@@ -3092,7 +3090,8 @@
|
||||
"delete": "Konuşmayı sil",
|
||||
"star": "Konuşmaya yıldız ekle",
|
||||
"unstar": "Konuşmanın yıldızını kaldır",
|
||||
"toggle_thread": "İleti dizisini aç/kapat"
|
||||
"toggle_thread": "İleti dizisini aç/kapat",
|
||||
"messages_count": "{count, plural, one {# ileti} other {# ileti}}"
|
||||
},
|
||||
"identities": {
|
||||
"modal_title": "Gönderme Kimliklerini Yönet",
|
||||
|
||||
@@ -3080,8 +3080,6 @@
|
||||
}
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "{count} повідомлення",
|
||||
"messages_other": "{count} повідомлень",
|
||||
"messages_tooltip": "{count, plural, one {# повідомлення в цій розмові} few {# повідомлення в цій розмові} many {# повідомлень у цій розмові} other {# повідомлень у цій розмові}}",
|
||||
"expand": "Розгорнути бесіду",
|
||||
"collapse": "Згорнути бесіду",
|
||||
@@ -3092,7 +3090,8 @@
|
||||
"delete": "Видалити бесіду",
|
||||
"star": "Зоряна розмова",
|
||||
"unstar": "Зняти зірочку з розмови",
|
||||
"toggle_thread": "Перемкнути потік"
|
||||
"toggle_thread": "Перемкнути потік",
|
||||
"messages_count": "{count, plural, one {# повідомлення} few {# повідомлення} many {# повідомлень} other {# повідомлення}}"
|
||||
},
|
||||
"identities": {
|
||||
"modal_title": "Керування ідентифікаторами надсилання",
|
||||
|
||||
@@ -3080,8 +3080,6 @@
|
||||
}
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "{count} 封郵件",
|
||||
"messages_other": "{count} 封郵件",
|
||||
"messages_tooltip": "{count, plural, one {此對話串有 # 封郵件} other {此對話串有 # 封郵件}}",
|
||||
"expand": "展開對話串",
|
||||
"collapse": "收合對話串",
|
||||
@@ -3092,7 +3090,8 @@
|
||||
"delete": "刪除對話串",
|
||||
"star": "為對話串加上星號",
|
||||
"unstar": "移除對話串星號",
|
||||
"toggle_thread": "展開/收合對話串"
|
||||
"toggle_thread": "展開/收合對話串",
|
||||
"messages_count": "{count, plural, other {# 封郵件}}"
|
||||
},
|
||||
"identities": {
|
||||
"modal_title": "管理寄件身分",
|
||||
|
||||
@@ -3080,8 +3080,6 @@
|
||||
}
|
||||
},
|
||||
"threads": {
|
||||
"messages_one": "{count} 条消息",
|
||||
"messages_other": "{count} 条消息",
|
||||
"messages_tooltip": "{count, plural, one {此会话中有 # 条消息} other {此会话中有 # 条消息}}",
|
||||
"expand": "展开会话",
|
||||
"collapse": "折叠会话",
|
||||
@@ -3092,7 +3090,8 @@
|
||||
"delete": "删除会话",
|
||||
"star": "会话加星标",
|
||||
"unstar": "取消会话星标",
|
||||
"toggle_thread": "展开/折叠会话"
|
||||
"toggle_thread": "展开/折叠会话",
|
||||
"messages_count": "{count, plural, other {# 条消息}}"
|
||||
},
|
||||
"identities": {
|
||||
"modal_title": "管理发送身份",
|
||||
|
||||
Reference in New Issue
Block a user