mirror of
https://github.com/bulwarkmail/webmail.git
synced 2026-11-04 08:15:41 +00:00
fix: use sentence case and plain words in Calendar: Accept, Maybe and Decline, counted events, error titles that say what couldn't be done
This commit is contained in:
@@ -26,6 +26,8 @@ vi.mock('@/hooks/use-refresh-gesture', () => ({ useRefreshGesture: () => ({ indi
|
||||
vi.mock('@/hooks/use-calendar-push-refresh', () => ({ useCalendarPushRefresh: () => {} }));
|
||||
vi.mock('@/hooks/use-account-principal-emails', () => ({ useAccountPrincipalEmails: () => [] }));
|
||||
vi.mock('../participant-availability', () => ({ ParticipantAvailability: () => null }));
|
||||
const config = vi.hoisted(() => ({ demoMode: false }));
|
||||
vi.mock('@/hooks/use-config', () => ({ useConfig: () => config }));
|
||||
|
||||
import { CalendarApp } from '../calendar-app';
|
||||
import { useRegisteredCommandGroups } from '@/lib/command-registry';
|
||||
@@ -563,3 +565,18 @@ describe('CalendarApp control names', () => {
|
||||
expect(screen.getAllByRole('button', { name: /Trip/ })[0].getAttribute('aria-label')).toContain('events.all_day');
|
||||
});
|
||||
});
|
||||
|
||||
describe('CalendarApp in the demo', () => {
|
||||
it('leaves Import and Subscribe out, which need a mail server', async () => {
|
||||
config.demoMode = true;
|
||||
try {
|
||||
renderApp();
|
||||
fireEvent.click(screen.getByRole('button', { name: 'toolbar.more' }));
|
||||
expect(await screen.findByRole('menuitem', { name: 'refresh' })).toBeInTheDocument();
|
||||
expect(screen.queryByRole('menuitem', { name: 'toolbar.import' })).toBeNull();
|
||||
expect(screen.queryByRole('menuitem', { name: 'toolbar.subscribe' })).toBeNull();
|
||||
} finally {
|
||||
config.demoMode = false;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -62,3 +62,21 @@ describe('import dialog from the keyboard', () => {
|
||||
expect(screen.getByRole('button', { name: /select_file/ })).toBeInTheDocument();
|
||||
});
|
||||
});
|
||||
|
||||
describe('import preview', () => {
|
||||
it('names a repeating event\'s rule in the app language', async () => {
|
||||
const weekly = { title: 'Gym', start: '2026-10-12T18:00:00', duration: 'PT1H', recurrenceRules: [{ '@type': 'RecurrenceRule', frequency: 'weekly', interval: 1 }] };
|
||||
const parsing = {
|
||||
getAccountId: () => 'acct',
|
||||
getCalendarsAccountId: () => 'acct',
|
||||
uploadBlob: vi.fn().mockResolvedValue({ blobId: 'b1' }),
|
||||
parseCalendarEvents: vi.fn().mockResolvedValue([weekly]),
|
||||
} as unknown as IJMAPClient;
|
||||
render(<ICalImportModal calendars={calendars} client={parsing} onClose={vi.fn()} />);
|
||||
const file = new File(['BEGIN:VCALENDAR'], 'gym.ics', { type: 'text/calendar' });
|
||||
fireEvent.change(document.querySelector('input[type="file"]')!, { target: { files: [file] } });
|
||||
expect(await screen.findByText('Gym')).toBeInTheDocument();
|
||||
expect(screen.queryByText('weekly')).toBeNull();
|
||||
expect(screen.getByText('recurrence.weekly')).toBeInTheDocument();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -9,20 +9,25 @@ import { ParticipantStatusBadge, RsvpButtons } from '../rsvp-buttons';
|
||||
describe('participation status colours', () => {
|
||||
it('writes answers in readable status shades, not the light fills', () => {
|
||||
render(<RsvpButtons status={null} onRespond={vi.fn()} />);
|
||||
const maybe = screen.getByRole('button', { name: 'participants.tentative' });
|
||||
const maybe = screen.getByRole('button', { name: 'participants.maybe' });
|
||||
expect(maybe.className).toContain('text-amber-600');
|
||||
expect(maybe.className).not.toMatch(/\btext-warning\b/);
|
||||
expect(screen.getByRole('button', { name: 'participants.accepted' }).className).toContain('text-green-700');
|
||||
expect(screen.getByRole('button', { name: 'participants.accept' }).className).toContain('text-green-700');
|
||||
});
|
||||
|
||||
it('puts dark text on the chosen yellow answer', () => {
|
||||
render(<RsvpButtons status="tentative" onRespond={vi.fn()} />);
|
||||
const maybe = screen.getByRole('button', { name: 'participants.tentative' });
|
||||
const maybe = screen.getByRole('button', { name: 'participants.maybe' });
|
||||
expect(maybe).toHaveAttribute('aria-pressed', 'true');
|
||||
expect(maybe.className).toContain('text-neutral-950');
|
||||
expect(maybe.className).not.toContain('text-warning-foreground');
|
||||
});
|
||||
|
||||
it('labels the buttons with what they do, not the state', () => {
|
||||
render(<RsvpButtons status={null} onRespond={vi.fn()} />);
|
||||
expect(screen.getAllByRole('button').map((b) => b.textContent)).toEqual(['participants.accept', 'participants.maybe', 'participants.decline']);
|
||||
});
|
||||
|
||||
it('colours a participant\'s answer the same way', () => {
|
||||
render(<ParticipantStatusBadge status="accepted" />);
|
||||
expect(screen.getByText('participants.accepted').className).toContain('text-green-700');
|
||||
|
||||
@@ -102,6 +102,7 @@ import { calendarShortcutAction } from "@/lib/calendar-shortcuts";
|
||||
import { isEditableEventTarget } from "@/lib/keyboard";
|
||||
import { isContextMenuOpen } from "@/components/ui/context-menu";
|
||||
import { useRegisterCommands } from "@/lib/command-registry";
|
||||
import { useConfig } from "@/hooks/use-config";
|
||||
|
||||
// `fromEditor`: asked on the way out of the event editor, which stays open
|
||||
// until a scope is picked, so Cancel goes back to it with the changes.
|
||||
@@ -129,6 +130,7 @@ export function CalendarApp({ linkSegments: routeSegments }: CalendarAppProps =
|
||||
const tSidebar = useTranslations("sidebar");
|
||||
useDocumentTitle(tSidebar("calendar"));
|
||||
const tWebcalAction = useTranslations("calendar.webcal_action");
|
||||
const { demoMode } = useConfig();
|
||||
const tDeepLink = useTranslations("deep_link");
|
||||
const isMobile = useIsMobile();
|
||||
const isDesktop = useIsDesktop();
|
||||
@@ -1552,8 +1554,8 @@ export function CalendarApp({ linkSegments: routeSegments }: CalendarAppProps =
|
||||
run: () => { setMobileReturnToMonth(false); setViewMode(mode); },
|
||||
when: () => mode !== normalizedViewMode && (mode !== "tasks" || enableCalendarTasks),
|
||||
})),
|
||||
{ id: "import", label: t("toolbar.import"), icon: Upload, run: () => setShowImportModal(true) },
|
||||
{ id: "subscribe", label: t("toolbar.subscribe"), icon: Globe, run: () => setShowSubscriptionModal(true) },
|
||||
{ id: "import", label: t("toolbar.import"), icon: Upload, run: () => setShowImportModal(true), when: () => !demoMode },
|
||||
{ id: "subscribe", label: t("toolbar.subscribe"), icon: Globe, run: () => setShowSubscriptionModal(true), when: () => !demoMode },
|
||||
{ id: "refresh", label: tCommon("refresh"), icon: RefreshCw, shortcut: "F5", run: () => { void refreshCalendar(); } },
|
||||
], isEmbedded ? isFocusedProTab : !proInterfaceActive);
|
||||
|
||||
@@ -1883,8 +1885,8 @@ export function CalendarApp({ linkSegments: routeSegments }: CalendarAppProps =
|
||||
onViewModeChange={(mode) => { setMobileReturnToMonth(false); setViewMode(mode); }}
|
||||
onCreateEvent={openCreateForView}
|
||||
createLabel={createLabel}
|
||||
onImport={() => setShowImportModal(true)}
|
||||
onSubscribe={() => setShowSubscriptionModal(true)}
|
||||
onImport={demoMode ? undefined : () => setShowImportModal(true)}
|
||||
onSubscribe={demoMode ? undefined : () => setShowSubscriptionModal(true)}
|
||||
onRefresh={() => { void refreshCalendar(); }}
|
||||
isMobile={isMobile}
|
||||
onNavigateBack={isMobile && mobileReturnToMonth && normalizedViewMode === "day" ? navigateBackToMonth : undefined}
|
||||
@@ -2040,7 +2042,7 @@ export function CalendarApp({ linkSegments: routeSegments }: CalendarAppProps =
|
||||
}
|
||||
} : undefined}
|
||||
onCreateCalendar={client ? () => setShowCreateCalendar(true) : undefined}
|
||||
onSubscribe={() => setShowSubscriptionModal(true)}
|
||||
onSubscribe={demoMode ? undefined : () => setShowSubscriptionModal(true)}
|
||||
onEditSubscription={(subId) => setEditingSubscription(subId)}
|
||||
client={client}
|
||||
multiAccountMode={multiAccountEnabled && accountClients.length > 1}
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
"use client";
|
||||
|
||||
import { useState, useCallback, useRef, useId } from "react";
|
||||
import { useTranslations } from "next-intl";
|
||||
import { useLocale, useTranslations } from "next-intl";
|
||||
import { buildRecurrenceSummary } from "./recurrence-editor";
|
||||
import { Button } from "@/components/ui/button";
|
||||
import { Upload, Check, RefreshCw, Globe } from "@/components/icons";
|
||||
import { Dialog } from "@/components/ui/dialog";
|
||||
@@ -33,6 +34,7 @@ type ImportMode = "file" | "url";
|
||||
export function ICalImportModal({ calendars, client, onClose, initialUrl }: ICalImportModalProps) {
|
||||
const t = useTranslations("calendar.import");
|
||||
const tCal = useTranslations("calendar");
|
||||
const locale = useLocale();
|
||||
const tForm = useTranslations("calendar.form");
|
||||
const importEvents = useCalendarStore((s) => s.importEvents);
|
||||
const timeFormat = useSettingsStore((s) => s.timeFormat);
|
||||
@@ -388,7 +390,7 @@ export function ICalImportModal({ calendars, client, onClose, initialUrl }: ICal
|
||||
{event.recurrenceRules && event.recurrenceRules.length > 0 && (
|
||||
<span className="inline-flex items-center gap-0.5 text-xs text-muted-foreground bg-muted px-1.5 py-0.5 rounded">
|
||||
<RefreshCw className="w-3 h-3" />
|
||||
{event.recurrenceRules[0].frequency}
|
||||
{buildRecurrenceSummary(event.recurrenceRules[0], tCal, locale) ?? tCal("recurrence.custom")}
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -46,9 +46,9 @@ const CHOSEN: Record<string, string> = {
|
||||
};
|
||||
|
||||
const ANSWERS: { status: Status; label: string }[] = [
|
||||
{ status: "accepted", label: "participants.accepted" },
|
||||
{ status: "tentative", label: "participants.tentative" },
|
||||
{ status: "declined", label: "participants.declined" },
|
||||
{ status: "accepted", label: "participants.accept" },
|
||||
{ status: "tentative", label: "participants.maybe" },
|
||||
{ status: "declined", label: "participants.decline" },
|
||||
];
|
||||
|
||||
/** The three answers to an invitation, the current one filled. */
|
||||
|
||||
@@ -3345,6 +3345,9 @@
|
||||
"attendee": "حاضر",
|
||||
"accepted": "مقبول",
|
||||
"declined": "مرفوض",
|
||||
"accept": "قبول",
|
||||
"maybe": "ربما",
|
||||
"decline": "رفض",
|
||||
"tentative": "مبدئي",
|
||||
"needs_action": "بحاجة إلى رد",
|
||||
"remove": "إزالة",
|
||||
@@ -3614,14 +3617,14 @@
|
||||
"invalid_url": "يرجى إدخال رابط صالح",
|
||||
"url_fetch_failed": "فشل جلب التقويم من الرابط",
|
||||
"parsing": "جارٍ تحليل ملف التقويم...",
|
||||
"parsed_events": "تم العثور على {count} حدث",
|
||||
"parsed_events": "{count, plural, zero {لم يتم العثور على أي حدث} one {تم العثور على حدث واحد} two {تم العثور على حدثين} few {تم العثور على # أحداث} many {تم العثور على # حدثًا} other {تم العثور على # حدث}}",
|
||||
"no_events": "لم يتم العثور على أحداث في الملف",
|
||||
"select_all": "تحديد الكل",
|
||||
"deselect_all": "إلغاء تحديد الكل",
|
||||
"target_calendar": "الاستيراد إلى التقويم",
|
||||
"import_button": "استيراد المحدد",
|
||||
"importing": "جارٍ استيراد الأحداث...",
|
||||
"success": "تم استيراد {count} حدث بنجاح",
|
||||
"success": "{count, plural, zero {لم يُستورد أي حدث} one {تم استيراد حدث واحد} two {تم استيراد حدثين} few {تم استيراد # أحداث} many {تم استيراد # حدثًا} other {تم استيراد # حدث}}",
|
||||
"error": "فشل استيراد التقويم",
|
||||
"file_too_large": "الملف يتجاوز الحد الأقصى 10 ميغابايت",
|
||||
"invalid_format": "تنسيق ملف التقويم غير صالح"
|
||||
@@ -3656,7 +3659,7 @@
|
||||
"default_updated": "تم تحديث التقويم الافتراضي",
|
||||
"error_default": "فشل تعيين التقويم الافتراضي",
|
||||
"clear_events": "مسح الأحداث",
|
||||
"events_cleared": "تم مسح {count} حدث",
|
||||
"events_cleared": "{count, plural, zero {لم يُمسح أي حدث} one {تم مسح حدث واحد} two {تم مسح حدثين} few {تم مسح # أحداث} many {تم مسح # حدثًا} other {تم مسح # حدث}}",
|
||||
"error_clear": "فشل مسح أحداث التقويم",
|
||||
"calendar_created": "تم إنشاء التقويم",
|
||||
"calendar_updated": "تم تحديث التقويم",
|
||||
@@ -3668,7 +3671,7 @@
|
||||
"caldav_url": "رابط CalDAV",
|
||||
"copy_url": "نسخ رابط CalDAV",
|
||||
"url_copied": "تم نسخ رابط CalDAV إلى الحافظة",
|
||||
"share": "مشاركة التقويم",
|
||||
"share": "مشاركة التقويم…",
|
||||
"new_event_in_calendar": "حدث جديد في هذا التقويم",
|
||||
"shared_with": "مشترك مع {names}",
|
||||
"shared_with_count": "{count, plural, zero {غير مشترك مع أحد} one {مشترك مع شخص واحد} two {مشترك مع شخصين} few {مشترك مع # أشخاص} many {مشترك مع # شخصًا} other {مشترك مع # شخص}}",
|
||||
|
||||
@@ -3345,6 +3345,9 @@
|
||||
"attendee": "Assistent",
|
||||
"accepted": "Acceptat",
|
||||
"declined": "Rebutjat",
|
||||
"accept": "Accepta",
|
||||
"maybe": "Potser",
|
||||
"decline": "Rebutja",
|
||||
"tentative": "Provisional",
|
||||
"needs_action": "Cal resposta",
|
||||
"remove": "Elimina",
|
||||
@@ -3614,14 +3617,14 @@
|
||||
"invalid_url": "Introduïu un URL vàlid",
|
||||
"url_fetch_failed": "No s'ha pogut obtenir el calendari des de l'URL",
|
||||
"parsing": "Analitzant el fitxer del calendari...",
|
||||
"parsed_events": "{count} esdeveniments trobats",
|
||||
"parsed_events": "{count, plural, one {# esdeveniment trobat} other {# esdeveniments trobats}}",
|
||||
"no_events": "No s'ha trobat cap esdeveniment al fitxer",
|
||||
"select_all": "Selecciona-ho tot",
|
||||
"deselect_all": "Desselecciona-ho tot",
|
||||
"target_calendar": "Importa al calendari",
|
||||
"import_button": "Importa la selecció",
|
||||
"importing": "Important els esdeveniments...",
|
||||
"success": "{count} esdeveniments importats correctament",
|
||||
"success": "{count, plural, one {# esdeveniment importat} other {# esdeveniments importats}}",
|
||||
"error": "No s'ha pogut importar el calendari",
|
||||
"file_too_large": "El fitxer supera el límit de 10 MB",
|
||||
"invalid_format": "Format de fitxer de calendari no vàlid"
|
||||
@@ -3656,7 +3659,7 @@
|
||||
"default_updated": "Calendari predeterminat actualitzat",
|
||||
"error_default": "No s'ha pogut establir el calendari predeterminat",
|
||||
"clear_events": "Esborra els esdeveniments",
|
||||
"events_cleared": "{count} esdeveniments esborrats",
|
||||
"events_cleared": "{count, plural, one {# esdeveniment esborrat} other {# esdeveniments esborrats}}",
|
||||
"error_clear": "No s'han pogut esborrar els esdeveniments del calendari",
|
||||
"calendar_created": "Calendari creat",
|
||||
"calendar_updated": "Calendari actualitzat",
|
||||
@@ -3668,7 +3671,7 @@
|
||||
"caldav_url": "URL de CalDAV",
|
||||
"copy_url": "Copia l'URL de CalDAV",
|
||||
"url_copied": "URL de CalDAV copiat al porta-retalls",
|
||||
"share": "Comparteix el calendari",
|
||||
"share": "Comparteix el calendari…",
|
||||
"new_event_in_calendar": "Esdeveniment nou en aquest calendari",
|
||||
"shared_with": "Compartit amb {names}",
|
||||
"shared_with_count": "{count, plural, one {Compartit amb 1 persona} other {Compartit amb # persones}}",
|
||||
|
||||
@@ -3345,6 +3345,9 @@
|
||||
"attendee": "Účastník",
|
||||
"accepted": "Přijato",
|
||||
"declined": "Odmítnuto",
|
||||
"accept": "Přijmout",
|
||||
"maybe": "Možná",
|
||||
"decline": "Odmítnout",
|
||||
"tentative": "Nezávazně",
|
||||
"needs_action": "Vyžaduje akci",
|
||||
"remove": "Odstranit",
|
||||
@@ -3585,14 +3588,14 @@
|
||||
"invalid_url": "Zadejte platnou adresu URL",
|
||||
"url_fetch_failed": "Načtení kalendáře z adresy URL selhalo",
|
||||
"parsing": "Analyzování souboru kalendáře...",
|
||||
"parsed_events": "Nalezeno {count} událostí",
|
||||
"parsed_events": "{count, plural, one {Nalezena # událost} few {Nalezeny # události} many {Nalezeno # události} other {Nalezeno # událostí}}",
|
||||
"no_events": "V souboru nebyly nalezeny žádné události",
|
||||
"select_all": "Vybrat vše",
|
||||
"deselect_all": "Zrušit výběr všeho",
|
||||
"target_calendar": "Importovat do kalendáře",
|
||||
"import_button": "Importovat vybrané",
|
||||
"importing": "Importování událostí...",
|
||||
"success": "Úspěšně importováno {count} událostí",
|
||||
"success": "{count, plural, one {Importována # událost} few {Importovány # události} many {Importováno # události} other {Importováno # událostí}}",
|
||||
"error": "Import kalendáře selhal",
|
||||
"file_too_large": "Soubor překračuje limit 10 MB",
|
||||
"invalid_format": "Neplatný formát souboru kalendáře"
|
||||
@@ -3627,7 +3630,7 @@
|
||||
"default_updated": "Výchozí kalendář aktualizován",
|
||||
"error_default": "Nepodařilo se nastavit výchozí kalendář",
|
||||
"clear_events": "Vymazat události",
|
||||
"events_cleared": "Vymazáno {count} událostí",
|
||||
"events_cleared": "{count, plural, one {Vymazána # událost} few {Vymazány # události} many {Vymazáno # události} other {Vymazáno # událostí}}",
|
||||
"error_clear": "Vymazání událostí kalendáře selhalo",
|
||||
"calendar_created": "Kalendář byl vytvořen",
|
||||
"calendar_updated": "Kalendář byl aktualizován",
|
||||
@@ -3639,7 +3642,7 @@
|
||||
"caldav_url": "URL CalDAV",
|
||||
"copy_url": "Kopírovat URL CalDAV",
|
||||
"url_copied": "URL CalDAV zkopírováno do schránky",
|
||||
"share": "Sdílet kalendář",
|
||||
"share": "Sdílet kalendář…",
|
||||
"new_event_in_calendar": "Nová událost v tomto kalendáři",
|
||||
"shared_with": "Sdíleno s: {names}",
|
||||
"shared_with_count": "{count, plural, one {Sdíleno s 1 osobou} few {Sdíleno s # osobami} many {Sdíleno s # osoby} other {Sdíleno s # osobami}}",
|
||||
|
||||
@@ -3345,6 +3345,9 @@
|
||||
"attendee": "Deltager",
|
||||
"accepted": "Accepteret",
|
||||
"declined": "Afslået",
|
||||
"accept": "Acceptér",
|
||||
"maybe": "Måske",
|
||||
"decline": "Afvis",
|
||||
"tentative": "Foreløbig",
|
||||
"needs_action": "Kræver handling",
|
||||
"remove": "Fjern",
|
||||
@@ -3611,14 +3614,14 @@
|
||||
"invalid_url": "Indtast en gyldig URL",
|
||||
"url_fetch_failed": "Kunne ikke hente kalender fra URL",
|
||||
"parsing": "Parser kalenderfil...",
|
||||
"parsed_events": "{count} begivenheder fundet",
|
||||
"parsed_events": "{count, plural, one {# begivenhed fundet} other {# begivenheder fundet}}",
|
||||
"no_events": "Ingen begivenheder fundet i filen",
|
||||
"select_all": "Vælg alle",
|
||||
"deselect_all": "Fravælg alle",
|
||||
"target_calendar": "Importér til kalender",
|
||||
"import_button": "Importér valgte",
|
||||
"importing": "Importerer begivenheder...",
|
||||
"success": "{count} begivenheder importeret",
|
||||
"success": "{count, plural, one {# begivenhed importeret} other {# begivenheder importeret}}",
|
||||
"error": "Kunne ikke importere kalender",
|
||||
"file_too_large": "Filen overstiger 10 MB grænsen",
|
||||
"invalid_format": "Ugyldigt kalenderfilformat"
|
||||
@@ -3653,7 +3656,7 @@
|
||||
"default_updated": "Standardkalender opdateret",
|
||||
"error_default": "Kunne ikke angive standardkalender",
|
||||
"clear_events": "Ryd begivenheder",
|
||||
"events_cleared": "{count} begivenheder ryddet",
|
||||
"events_cleared": "{count, plural, one {# begivenhed ryddet} other {# begivenheder ryddet}}",
|
||||
"error_clear": "Kunne ikke rydde kalenderbegivenheder",
|
||||
"calendar_created": "Kalender oprettet",
|
||||
"calendar_updated": "Kalender opdateret",
|
||||
@@ -3665,7 +3668,7 @@
|
||||
"caldav_url": "CalDAV-URL",
|
||||
"copy_url": "Kopier CalDAV-URL",
|
||||
"url_copied": "CalDAV-URL kopieret til udklipsholder",
|
||||
"share": "Del kalender",
|
||||
"share": "Del kalender…",
|
||||
"new_event_in_calendar": "Ny begivenhed i denne kalender",
|
||||
"shared_with": "Delt med {names}",
|
||||
"shared_with_count": "{count, plural, one {Delt med 1 person} other {Delt med # personer}}",
|
||||
|
||||
@@ -3345,6 +3345,9 @@
|
||||
"attendee": "Teilnehmer",
|
||||
"accepted": "Zugesagt",
|
||||
"declined": "Abgelehnt",
|
||||
"accept": "Zusagen",
|
||||
"maybe": "Vielleicht",
|
||||
"decline": "Absagen",
|
||||
"tentative": "Vorläufig",
|
||||
"needs_action": "Antwort ausstehend",
|
||||
"remove": "Entfernen",
|
||||
@@ -3585,14 +3588,14 @@
|
||||
"invalid_url": "Bitte geben Sie eine gültige URL ein",
|
||||
"url_fetch_failed": "Kalender konnte nicht von der URL abgerufen werden",
|
||||
"parsing": "Kalenderdatei wird analysiert...",
|
||||
"parsed_events": "{count} Termine gefunden",
|
||||
"parsed_events": "{count, plural, one {# Termin gefunden} other {# Termine gefunden}}",
|
||||
"no_events": "Keine Termine in der Datei gefunden",
|
||||
"select_all": "Alle auswählen",
|
||||
"deselect_all": "Alle abwählen",
|
||||
"target_calendar": "In Kalender importieren",
|
||||
"import_button": "Auswahl importieren",
|
||||
"importing": "Termine werden importiert...",
|
||||
"success": "{count} Termine erfolgreich importiert",
|
||||
"success": "{count, plural, one {# Termin importiert} other {# Termine importiert}}",
|
||||
"error": "Kalender konnte nicht importiert werden",
|
||||
"file_too_large": "Datei überschreitet das 10-MB-Limit",
|
||||
"invalid_format": "Ungültiges Kalenderdateiformat"
|
||||
@@ -3637,9 +3640,9 @@
|
||||
"default_updated": "Standardkalender aktualisiert",
|
||||
"error_default": "Standardkalender konnte nicht festgelegt werden",
|
||||
"clear_events": "Ereignisse löschen",
|
||||
"events_cleared": "{count} Ereignisse gelöscht",
|
||||
"events_cleared": "{count, plural, one {# Termin gelöscht} other {# Termine gelöscht}}",
|
||||
"error_clear": "Kalenderereignisse konnten nicht gelöscht werden",
|
||||
"share": "Kalender freigeben",
|
||||
"share": "Kalender freigeben…",
|
||||
"new_event_in_calendar": "Neuer Termin in diesem Kalender",
|
||||
"shared_with": "Geteilt mit {names}",
|
||||
"shared_with_count": "{count, plural, one {Mit 1 Person geteilt} other {Mit # Personen geteilt}}",
|
||||
|
||||
+38
-35
@@ -3303,7 +3303,7 @@
|
||||
"go_to_today": "Go to today"
|
||||
},
|
||||
"detail": {
|
||||
"add_note": "Add a note...",
|
||||
"add_note": "Add a note…",
|
||||
"save_note": "Save",
|
||||
"note_saved": "Note added",
|
||||
"open_link": "Open link",
|
||||
@@ -3345,6 +3345,9 @@
|
||||
"attendee": "Attendee",
|
||||
"accepted": "Accepted",
|
||||
"declined": "Declined",
|
||||
"accept": "Accept",
|
||||
"maybe": "Maybe",
|
||||
"decline": "Decline",
|
||||
"tentative": "Tentative",
|
||||
"needs_action": "Needs action",
|
||||
"remove": "Remove",
|
||||
@@ -3563,8 +3566,8 @@
|
||||
"task_update_error": "Couldn't update task",
|
||||
"calendar_created": "Calendar created",
|
||||
"calendar_deleted": "Calendar deleted",
|
||||
"event_move_error": "Failed to move event",
|
||||
"event_resize_error": "Failed to resize event",
|
||||
"event_move_error": "Couldn't move event",
|
||||
"event_resize_error": "Couldn't resize event",
|
||||
"alert_title": "Upcoming event",
|
||||
"alert_now": "Starting now",
|
||||
"alert_in_minutes": "In {count} min",
|
||||
@@ -3573,18 +3576,18 @@
|
||||
"invitations_denied": "The server refused to send the invitations: {reason}. Save the event without sending them?",
|
||||
"save_without_invitations": "Save without invitations",
|
||||
"rsvp_updated": "Response updated",
|
||||
"rsvp_error": "Failed to update response",
|
||||
"rsvp_error": "Couldn't send your response",
|
||||
"participant_limit": "The server allows at most {max, plural, one {# participant} other {# participants}} per event, including the organizer, so it refused this change. An administrator can raise the limit.",
|
||||
"event_duplicated": "Event duplicated",
|
||||
"event_error": "Failed to save event",
|
||||
"event_error": "Couldn't save event",
|
||||
"task_due": "Task due",
|
||||
"event_exported": "Event exported",
|
||||
"title_copied": "Title copied",
|
||||
"link_copied": "Link copied"
|
||||
},
|
||||
"status": {
|
||||
"loading_calendars": "Loading calendars...",
|
||||
"loading_events": "Loading events...",
|
||||
"loading_calendars": "Loading calendars…",
|
||||
"loading_events": "Loading events…",
|
||||
"events_load_failed": "Couldn't load events. The calendar may be out of date.",
|
||||
"tasks_load_failed": "Couldn't load tasks. The list may be out of date.",
|
||||
"retry": "Try again"
|
||||
@@ -3601,7 +3604,7 @@
|
||||
"nav_hide_sidebar": "Hide sidebar",
|
||||
"nav_show_sidebar": "Show sidebar",
|
||||
"import": {
|
||||
"title": "Import Calendar",
|
||||
"title": "Import calendar",
|
||||
"tab_file": "File",
|
||||
"tab_url": "URL",
|
||||
"select_file": "Select .ics file",
|
||||
@@ -3612,17 +3615,17 @@
|
||||
"url_hint": "Supports iCalendar (.ics) URLs",
|
||||
"fetch": "Fetch",
|
||||
"invalid_url": "Please enter a valid URL",
|
||||
"url_fetch_failed": "Failed to fetch calendar from URL",
|
||||
"parsing": "Parsing calendar file...",
|
||||
"parsed_events": "{count} events found",
|
||||
"url_fetch_failed": "Couldn't fetch the calendar from this URL",
|
||||
"parsing": "Reading the calendar file…",
|
||||
"parsed_events": "{count, plural, one {# event found} other {# events found}}",
|
||||
"no_events": "No events found in file",
|
||||
"select_all": "Select all",
|
||||
"deselect_all": "Deselect all",
|
||||
"target_calendar": "Import to calendar",
|
||||
"import_button": "Import selected",
|
||||
"importing": "Importing events...",
|
||||
"success": "{count} events imported successfully",
|
||||
"error": "Failed to import calendar",
|
||||
"importing": "Importing events…",
|
||||
"success": "{count, plural, one {# event imported} other {# events imported}}",
|
||||
"error": "Couldn't import calendar",
|
||||
"file_too_large": "File exceeds 10MB limit",
|
||||
"invalid_format": "Invalid calendar file format"
|
||||
},
|
||||
@@ -3636,7 +3639,7 @@
|
||||
"cancel": "Cancel"
|
||||
},
|
||||
"management": {
|
||||
"title": "Calendar Management",
|
||||
"title": "Calendar management",
|
||||
"description": "Create, rename, and customize your calendars. Right-click a calendar in the sidebar to quickly change its color.",
|
||||
"name": "Name",
|
||||
"name_placeholder": "Calendar name",
|
||||
@@ -3654,21 +3657,21 @@
|
||||
"confirm_clear": "Clear all events from \"{name}\"? This cannot be undone.",
|
||||
"set_default": "Set as default",
|
||||
"default_updated": "Default calendar updated",
|
||||
"error_default": "Failed to set default calendar",
|
||||
"error_default": "Couldn't set default calendar",
|
||||
"clear_events": "Clear events",
|
||||
"events_cleared": "{count} events cleared",
|
||||
"error_clear": "Failed to clear calendar events",
|
||||
"events_cleared": "{count, plural, one {# event cleared} other {# events cleared}}",
|
||||
"error_clear": "Couldn't clear calendar events",
|
||||
"calendar_created": "Calendar created",
|
||||
"calendar_updated": "Calendar updated",
|
||||
"calendar_deleted": "Calendar deleted",
|
||||
"color_updated": "Calendar color updated",
|
||||
"error_create": "Failed to create calendar",
|
||||
"error_update": "Failed to update calendar",
|
||||
"error_delete": "Failed to delete calendar",
|
||||
"error_create": "Couldn't create calendar",
|
||||
"error_update": "Couldn't update calendar",
|
||||
"error_delete": "Couldn't delete calendar",
|
||||
"caldav_url": "CalDAV URL",
|
||||
"copy_url": "Copy CalDAV URL",
|
||||
"url_copied": "CalDAV URL copied to clipboard",
|
||||
"share": "Share calendar",
|
||||
"share": "Share calendar…",
|
||||
"new_event_in_calendar": "New event in this calendar",
|
||||
"shared_with": "Shared with {names}",
|
||||
"shared_with_count": "{count, plural, one {Shared with 1 person} other {Shared with # people}}",
|
||||
@@ -3687,8 +3690,8 @@
|
||||
"default_alerts_updated": "Default reminders updated"
|
||||
},
|
||||
"subscription": {
|
||||
"title": "iCal Subscription",
|
||||
"section_title": "iCal Subscriptions",
|
||||
"title": "iCal subscription",
|
||||
"section_title": "iCal subscriptions",
|
||||
"description": "Subscribe to an external iCalendar feed. Events will be synced automatically into their own calendar. Supports https:// and webcal:// URLs.",
|
||||
"url_label": "Calendar URL",
|
||||
"url_placeholder": "https://example.com/calendar.ics or webcal://...",
|
||||
@@ -3702,23 +3705,23 @@
|
||||
"interval_360": "Every 6 hours",
|
||||
"interval_1440": "Every day",
|
||||
"subscribe": "Subscribe",
|
||||
"subscribing": "Subscribing...",
|
||||
"subscribing": "Subscribing…",
|
||||
"save": "Save changes",
|
||||
"saving": "Saving...",
|
||||
"saving": "Saving…",
|
||||
"edit": "Edit",
|
||||
"edit_title": "Edit Subscription",
|
||||
"edit_title": "Edit subscription",
|
||||
"updated": "Updated \"{name}\"",
|
||||
"update_error": "Failed to update subscription",
|
||||
"update_error": "Couldn't update subscription",
|
||||
"invalid_url": "Please enter a valid URL",
|
||||
"success": "Subscribed to \"{name}\"",
|
||||
"error": "Failed to add subscription",
|
||||
"error": "Couldn't add subscription",
|
||||
"refresh": "Refresh now",
|
||||
"refresh_success": "Subscription refreshed",
|
||||
"refresh_error": "Failed to refresh subscription",
|
||||
"refresh_error": "Couldn't refresh subscription",
|
||||
"unsubscribe": "Unsubscribe",
|
||||
"confirm_delete": "Unsubscribe from \"{name}\"? The calendar and all its events will be removed.",
|
||||
"deleted": "Subscription removed",
|
||||
"delete_error": "Failed to remove subscription",
|
||||
"delete_error": "Couldn't remove subscription",
|
||||
"last_refreshed": "Last updated: {time}"
|
||||
},
|
||||
"tasks": {
|
||||
@@ -3731,10 +3734,10 @@
|
||||
"filter_pending": "Pending",
|
||||
"filter_completed": "Completed",
|
||||
"filter_overdue": "Overdue",
|
||||
"create": "New Task",
|
||||
"edit": "Edit Task",
|
||||
"create": "New task",
|
||||
"edit": "Edit task",
|
||||
"title_placeholder": "Task title",
|
||||
"description_placeholder": "Add a description...",
|
||||
"description_placeholder": "Add a description…",
|
||||
"due_date": "Due date",
|
||||
"include_time": "Include time",
|
||||
"priority": "Priority",
|
||||
@@ -3759,7 +3762,7 @@
|
||||
"delete": "Delete",
|
||||
"cancel": "Cancel",
|
||||
"save": "Save",
|
||||
"quick_add_placeholder": "Add a task...",
|
||||
"quick_add_placeholder": "Add a task…",
|
||||
"due_today": "Today",
|
||||
"due_tomorrow": "Tomorrow",
|
||||
"overdue": "Overdue"
|
||||
|
||||
@@ -3345,6 +3345,9 @@
|
||||
"attendee": "Participante",
|
||||
"accepted": "Aceptado",
|
||||
"declined": "Rechazado",
|
||||
"accept": "Aceptar",
|
||||
"maybe": "Quizás",
|
||||
"decline": "Rechazar",
|
||||
"tentative": "Provisional",
|
||||
"needs_action": "Pendiente de respuesta",
|
||||
"remove": "Eliminar",
|
||||
@@ -3585,14 +3588,14 @@
|
||||
"invalid_url": "Introduce una URL válida",
|
||||
"url_fetch_failed": "No se pudo obtener el calendario desde la URL",
|
||||
"parsing": "Analizando archivo de calendario...",
|
||||
"parsed_events": "{count} eventos encontrados",
|
||||
"parsed_events": "{count, plural, one {# evento encontrado} other {# eventos encontrados}}",
|
||||
"no_events": "No se encontraron eventos en el archivo",
|
||||
"select_all": "Seleccionar todo",
|
||||
"deselect_all": "Deseleccionar todo",
|
||||
"target_calendar": "Importar al calendario",
|
||||
"import_button": "Importar selección",
|
||||
"importing": "Importando eventos...",
|
||||
"success": "{count} eventos importados correctamente",
|
||||
"success": "{count, plural, one {# evento importado} other {# eventos importados}}",
|
||||
"error": "Error al importar el calendario",
|
||||
"file_too_large": "El archivo supera el límite de 10 MB",
|
||||
"invalid_format": "Formato de archivo de calendario no válido"
|
||||
@@ -3637,9 +3640,9 @@
|
||||
"default_updated": "Calendario predeterminado actualizado",
|
||||
"error_default": "Error al establecer el calendario predeterminado",
|
||||
"clear_events": "Borrar eventos",
|
||||
"events_cleared": "{count} eventos borrados",
|
||||
"events_cleared": "{count, plural, one {# evento borrado} other {# eventos borrados}}",
|
||||
"error_clear": "No se pudieron borrar los eventos del calendario",
|
||||
"share": "Compartir calendario",
|
||||
"share": "Compartir calendario…",
|
||||
"new_event_in_calendar": "Nuevo evento en este calendario",
|
||||
"shared_with": "Compartido con {names}",
|
||||
"shared_with_count": "{count, plural, one {Compartido con 1 persona} other {Compartido con # personas}}",
|
||||
|
||||
@@ -3345,6 +3345,9 @@
|
||||
"attendee": "Osaleja",
|
||||
"accepted": "Nõustunud",
|
||||
"declined": "Keeldunud",
|
||||
"accept": "Nõustu",
|
||||
"maybe": "Võib-olla",
|
||||
"decline": "Keeldu",
|
||||
"tentative": "Esialgne",
|
||||
"needs_action": "Vajab vastust",
|
||||
"remove": "Eemalda",
|
||||
@@ -3614,14 +3617,14 @@
|
||||
"invalid_url": "Palun sisesta kehtiv URL",
|
||||
"url_fetch_failed": "Kalendri laadimine URL-ilt ebaõnnestus",
|
||||
"parsing": "Kalendrifaili töötlemine...",
|
||||
"parsed_events": "Leiti {count} sündmust",
|
||||
"parsed_events": "{count, plural, one {Leiti # sündmus} other {Leiti # sündmust}}",
|
||||
"no_events": "Failist ei leitud sündmusi",
|
||||
"select_all": "Vali kõik",
|
||||
"deselect_all": "Tühista kõigi valik",
|
||||
"target_calendar": "Impordi kalendrisse",
|
||||
"import_button": "Impordi valitud",
|
||||
"importing": "Sündmuste importimine...",
|
||||
"success": "{count} sündmust imporditi edukalt",
|
||||
"success": "{count, plural, one {Imporditi # sündmus} other {Imporditi # sündmust}}",
|
||||
"error": "Kalendri importimine ebaõnnestus",
|
||||
"file_too_large": "Fail ületab 10 MB piirangu",
|
||||
"invalid_format": "Vale kalendrifaili vorming"
|
||||
@@ -3656,7 +3659,7 @@
|
||||
"default_updated": "Vaikekalender uuendatud",
|
||||
"error_default": "Vaikekalendri määramine ebaõnnestus",
|
||||
"clear_events": "Tühjenda sündmused",
|
||||
"events_cleared": "{count} sündmust tühjendatud",
|
||||
"events_cleared": "{count, plural, one {# sündmus tühjendatud} other {# sündmust tühjendatud}}",
|
||||
"error_clear": "Kalendrisündmuste tühjendamine ebaõnnestus",
|
||||
"calendar_created": "Kalender loodud",
|
||||
"calendar_updated": "Kalender uuendatud",
|
||||
@@ -3668,7 +3671,7 @@
|
||||
"caldav_url": "CalDAV URL",
|
||||
"copy_url": "Kopeeri CalDAV URL",
|
||||
"url_copied": "CalDAV URL kopeeriti lõikelauale",
|
||||
"share": "Jaga kalendrit",
|
||||
"share": "Jaga kalendrit…",
|
||||
"new_event_in_calendar": "Uus sündmus selles kalendris",
|
||||
"shared_with": "Jagatud: {names}",
|
||||
"shared_with_count": "{count, plural, one {Jagatud 1 inimesega} other {Jagatud # inimesega}}",
|
||||
|
||||
@@ -3345,6 +3345,9 @@
|
||||
"attendee": "شرکتکننده",
|
||||
"accepted": "پذیرفته شد",
|
||||
"declined": "رد شد",
|
||||
"accept": "پذیرفتن",
|
||||
"maybe": "شاید",
|
||||
"decline": "رد کردن",
|
||||
"tentative": "احتمالی",
|
||||
"needs_action": "نیاز به اقدام",
|
||||
"remove": "حذف",
|
||||
@@ -3621,7 +3624,7 @@
|
||||
"target_calendar": "وارد کردن به تقویم",
|
||||
"import_button": "وارد کردن انتخابشدهها",
|
||||
"importing": "در حال وارد کردن رویدادها...",
|
||||
"success": "{count} رویداد با موفقیت وارد شد",
|
||||
"success": "{count} رویداد وارد شد",
|
||||
"error": "وارد کردن تقویم ناموفق بود",
|
||||
"file_too_large": "حجم فایل بیش از ۱۰ مگابایت است",
|
||||
"invalid_format": "فرمت فایل تقویم نامعتبر است"
|
||||
@@ -3668,7 +3671,7 @@
|
||||
"caldav_url": "آدرس CalDAV",
|
||||
"copy_url": "کپی آدرس CalDAV",
|
||||
"url_copied": "آدرس CalDAV در کلیپبورد کپی شد",
|
||||
"share": "اشتراکگذاری تقویم",
|
||||
"share": "اشتراکگذاری تقویم…",
|
||||
"new_event_in_calendar": "رویداد جدید در این تقویم",
|
||||
"shared_with": "به اشتراک گذاشته شده با {names}",
|
||||
"shared_with_count": "{count, plural, one {با ۱ نفر به اشتراک گذاشته شده} other {با # نفر به اشتراک گذاشته شده}}",
|
||||
|
||||
@@ -3345,6 +3345,9 @@
|
||||
"attendee": "Participant",
|
||||
"accepted": "Accepté",
|
||||
"declined": "Refusé",
|
||||
"accept": "Accepter",
|
||||
"maybe": "Peut-être",
|
||||
"decline": "Refuser",
|
||||
"tentative": "Provisoire",
|
||||
"needs_action": "En attente de réponse",
|
||||
"remove": "Retirer",
|
||||
@@ -3611,14 +3614,14 @@
|
||||
"invalid_url": "Veuillez entrer une URL valide",
|
||||
"url_fetch_failed": "Impossible de récupérer le calendrier depuis l'URL",
|
||||
"parsing": "Analyse du fichier en cours...",
|
||||
"parsed_events": "{count} événements trouvés",
|
||||
"parsed_events": "{count, plural, one {# événement trouvé} other {# événements trouvés}}",
|
||||
"no_events": "Aucun événement trouvé dans le fichier",
|
||||
"select_all": "Tout sélectionner",
|
||||
"deselect_all": "Tout désélectionner",
|
||||
"target_calendar": "Importer dans le calendrier",
|
||||
"import_button": "Importer la sélection",
|
||||
"importing": "Importation en cours...",
|
||||
"success": "{count} événements importés avec succès",
|
||||
"success": "{count, plural, one {# événement importé} other {# événements importés}}",
|
||||
"error": "Échec de l'importation du calendrier",
|
||||
"file_too_large": "Le fichier dépasse la limite de 10 Mo",
|
||||
"invalid_format": "Format de fichier calendrier invalide"
|
||||
@@ -3663,9 +3666,9 @@
|
||||
"default_updated": "Calendrier par défaut mis à jour",
|
||||
"error_default": "Échec de la définition du calendrier par défaut",
|
||||
"clear_events": "Supprimer les événements",
|
||||
"events_cleared": "{count} événements supprimés",
|
||||
"events_cleared": "{count, plural, one {# événement supprimé} other {# événements supprimés}}",
|
||||
"error_clear": "Impossible de supprimer les événements du calendrier",
|
||||
"share": "Partager le calendrier",
|
||||
"share": "Partager le calendrier…",
|
||||
"new_event_in_calendar": "Nouvel événement dans ce calendrier",
|
||||
"shared_with": "Partagé avec {names}",
|
||||
"shared_with_count": "{count, plural, one {Partagé avec 1 personne} other {Partagé avec # personnes}}",
|
||||
|
||||
@@ -3263,6 +3263,9 @@
|
||||
"attendee": "משתתף",
|
||||
"accepted": "התקבל",
|
||||
"declined": "נדחה",
|
||||
"accept": "אישור",
|
||||
"maybe": "אולי",
|
||||
"decline": "דחייה",
|
||||
"tentative": "טנטטיבי",
|
||||
"needs_action": "צריך פעולה",
|
||||
"remove": "הסר",
|
||||
@@ -3503,14 +3506,14 @@
|
||||
"invalid_url": "אנא הזן כתובת אתר חוקית",
|
||||
"url_fetch_failed": "אחזור היומן מ-URL נכשל",
|
||||
"parsing": "מנתח קובץ לוח שנה...",
|
||||
"parsed_events": "נמצאו אירועים של{count}",
|
||||
"parsed_events": "{count, plural, one {נמצא אירוע אחד} other {נמצאו # אירועים}}",
|
||||
"no_events": "לא נמצאו אירועים בקובץ",
|
||||
"select_all": "בחר הכל",
|
||||
"deselect_all": "בטל את הבחירה בכולם",
|
||||
"target_calendar": "ייבא ליומן",
|
||||
"import_button": "ייבא נבחר",
|
||||
"importing": "מייבא אירועים...",
|
||||
"success": "אירועי{count}יובאו בהצלחה",
|
||||
"success": "{count, plural, one {אירוע אחד יובא} other {# אירועים יובאו}}",
|
||||
"error": "ייבוא היומן נכשל",
|
||||
"file_too_large": "הקובץ חורג ממגבלת 10MB",
|
||||
"invalid_format": "פורמט קובץ לוח שנה לא חוקי"
|
||||
@@ -3532,7 +3535,7 @@
|
||||
"confirm_delete": "למחוק את \"{name}\"? כל האירועים בלוח השנה הזה יוסרו.",
|
||||
"confirm_clear": "לנקות את כל האירועים מ-\"{name}\"? לא ניתן לבטל זאת.",
|
||||
"clear_events": "נקה אירועים",
|
||||
"events_cleared": "אירועי{count}נוקו",
|
||||
"events_cleared": "{count, plural, one {אירוע אחד נוקה} other {# אירועים נוקו}}",
|
||||
"error_clear": "נכשל ניקוי אירועים ביומן",
|
||||
"calendar_created": "יומן נוצר",
|
||||
"calendar_updated": "לוח השנה עודכן",
|
||||
@@ -3548,7 +3551,7 @@
|
||||
"set_default": "הגדר כברירת מחדל",
|
||||
"default_updated": "לוח שנה ברירת המחדל עודכן",
|
||||
"error_default": "נכשל בהגדרת לוח שנה ברירת מחדל",
|
||||
"share": "שתף לוח שנה",
|
||||
"share": "שתף לוח שנה…",
|
||||
"new_event_in_calendar": "אירוע חדש בלוח שנה זה",
|
||||
"shared_with": "משותף עם {names}",
|
||||
"shared_with_count": "{count, plural, one {משותף עם אדם אחד} two {משותף עם שני אנשים} other {משותף עם # אנשים}}",
|
||||
|
||||
@@ -3345,6 +3345,9 @@
|
||||
"attendee": "Résztvevő",
|
||||
"accepted": "Elfogadva",
|
||||
"declined": "Elutasítva",
|
||||
"accept": "Elfogadás",
|
||||
"maybe": "Talán",
|
||||
"decline": "Elutasítás",
|
||||
"tentative": "Előzetes",
|
||||
"needs_action": "Művelet szükséges",
|
||||
"remove": "Eltávolítás",
|
||||
@@ -3621,7 +3624,7 @@
|
||||
"target_calendar": "Importálás ebbe a naptárba",
|
||||
"import_button": "Kijelöltek importálása",
|
||||
"importing": "Események importálása...",
|
||||
"success": "{count} esemény sikeresen importálva",
|
||||
"success": "{count} esemény importálva",
|
||||
"error": "Nem sikerült importálni a naptárt",
|
||||
"file_too_large": "A fájl meghaladja a 10 MB korlátot",
|
||||
"invalid_format": "Érvénytelen naptár fájl formátum"
|
||||
@@ -3668,7 +3671,7 @@
|
||||
"caldav_url": "CalDAV URL",
|
||||
"copy_url": "CalDAV URL másolása",
|
||||
"url_copied": "CalDAV URL a vágólapra másolva",
|
||||
"share": "Naptár megosztása",
|
||||
"share": "Naptár megosztása…",
|
||||
"new_event_in_calendar": "Új esemény ebben a naptárban",
|
||||
"shared_with": "Megosztva: {names}",
|
||||
"shared_with_count": "{count, plural, one {Megosztva 1 személlyel} other {Megosztva # személlyel}}",
|
||||
|
||||
@@ -3345,6 +3345,9 @@
|
||||
"attendee": "Partecipante",
|
||||
"accepted": "Accettato",
|
||||
"declined": "Rifiutato",
|
||||
"accept": "Accetta",
|
||||
"maybe": "Forse",
|
||||
"decline": "Rifiuta",
|
||||
"tentative": "Provvisorio",
|
||||
"needs_action": "In attesa di risposta",
|
||||
"remove": "Rimuovi",
|
||||
@@ -3585,14 +3588,14 @@
|
||||
"invalid_url": "Inserisci un URL valido",
|
||||
"url_fetch_failed": "Impossibile recuperare il calendario dall'URL",
|
||||
"parsing": "Analisi del file in corso...",
|
||||
"parsed_events": "{count} eventi trovati",
|
||||
"parsed_events": "{count, plural, one {# evento trovato} other {# eventi trovati}}",
|
||||
"no_events": "Nessun evento trovato nel file",
|
||||
"select_all": "Seleziona tutto",
|
||||
"deselect_all": "Deseleziona tutto",
|
||||
"target_calendar": "Importa nel calendario",
|
||||
"import_button": "Importa selezionati",
|
||||
"importing": "Importazione eventi...",
|
||||
"success": "{count} eventi importati con successo",
|
||||
"success": "{count, plural, one {# evento importato} other {# eventi importati}}",
|
||||
"error": "Importazione del calendario fallita",
|
||||
"file_too_large": "Il file supera il limite di 10 MB",
|
||||
"invalid_format": "Formato del file calendario non valido"
|
||||
@@ -3637,9 +3640,9 @@
|
||||
"default_updated": "Calendario predefinito aggiornato",
|
||||
"error_default": "Impossibile impostare il calendario predefinito",
|
||||
"clear_events": "Cancella eventi",
|
||||
"events_cleared": "{count} eventi cancellati",
|
||||
"events_cleared": "{count, plural, one {# evento cancellato} other {# eventi cancellati}}",
|
||||
"error_clear": "Impossibile cancellare gli eventi del calendario",
|
||||
"share": "Condividi calendario",
|
||||
"share": "Condividi calendario…",
|
||||
"new_event_in_calendar": "Nuovo evento in questo calendario",
|
||||
"shared_with": "Condiviso con {names}",
|
||||
"shared_with_count": "{count, plural, one {Condiviso con 1 persona} other {Condiviso con # persone}}",
|
||||
|
||||
@@ -3345,6 +3345,9 @@
|
||||
"attendee": "参加者",
|
||||
"accepted": "承諾",
|
||||
"declined": "辞退",
|
||||
"accept": "承諾",
|
||||
"maybe": "未定",
|
||||
"decline": "辞退",
|
||||
"tentative": "仮承諾",
|
||||
"needs_action": "未回答",
|
||||
"remove": "削除",
|
||||
@@ -3639,7 +3642,7 @@
|
||||
"clear_events": "イベントを削除",
|
||||
"events_cleared": "{count}件のイベントを削除しました",
|
||||
"error_clear": "カレンダーイベントの削除に失敗しました",
|
||||
"share": "カレンダーを共有",
|
||||
"share": "カレンダーを共有…",
|
||||
"new_event_in_calendar": "このカレンダーに新規イベント",
|
||||
"shared_with": "{names} と共有",
|
||||
"shared_with_count": "{count, plural, other {#人と共有}}",
|
||||
|
||||
@@ -3345,6 +3345,9 @@
|
||||
"attendee": "참석자",
|
||||
"accepted": "수락함",
|
||||
"declined": "거절함",
|
||||
"accept": "수락",
|
||||
"maybe": "미정",
|
||||
"decline": "거절",
|
||||
"tentative": "미정",
|
||||
"needs_action": "응답 필요",
|
||||
"remove": "삭제",
|
||||
@@ -3592,7 +3595,7 @@
|
||||
"target_calendar": "저장할 캘린더",
|
||||
"import_button": "선택 항목 가져오기",
|
||||
"importing": "일정을 가져오는 중...",
|
||||
"success": "{count}개의 일정을 성공적으로 가져왔어요",
|
||||
"success": "{count}개의 일정을 가져왔어요",
|
||||
"error": "캘린더를 가져오지 못했어요",
|
||||
"file_too_large": "파일이 10MB 제한을 넘었어요",
|
||||
"invalid_format": "캘린더 파일 형식이 올바르지 않아요"
|
||||
@@ -3639,7 +3642,7 @@
|
||||
"caldav_url": "CalDAV URL",
|
||||
"copy_url": "CalDAV URL 복사",
|
||||
"url_copied": "CalDAV URL이 클립보드에 복사되었어요",
|
||||
"share": "캘린더 공유",
|
||||
"share": "캘린더 공유…",
|
||||
"new_event_in_calendar": "이 캘린더에 새 일정",
|
||||
"shared_with": "공유 대상: {names}",
|
||||
"shared_with_count": "{count, plural, other {#명과 공유됨}}",
|
||||
|
||||
@@ -3344,6 +3344,9 @@
|
||||
"attendee": "Dalībnieks",
|
||||
"accepted": "Pieņemts",
|
||||
"declined": "Noraidīts",
|
||||
"accept": "Pieņemt",
|
||||
"maybe": "Varbūt",
|
||||
"decline": "Noraidīt",
|
||||
"tentative": "Pagaidām",
|
||||
"needs_action": "Nepieciešama atbilde",
|
||||
"remove": "Noņemt",
|
||||
@@ -3584,14 +3587,14 @@
|
||||
"invalid_url": "Ievadiet derīgu URL",
|
||||
"url_fetch_failed": "Neizdevās iegūt kalendāru no saites",
|
||||
"parsing": "Nolasa kalendāra failu...",
|
||||
"parsed_events": "Atrasti {count} pasākumi",
|
||||
"parsed_events": "{count, plural, zero {Atrasti # pasākumi} one {Atrasts # pasākums} other {Atrasti # pasākumi}}",
|
||||
"no_events": "Failā netika atrasti pasākumi",
|
||||
"select_all": "Atlasīt visus",
|
||||
"deselect_all": "Noņemt atlasi",
|
||||
"target_calendar": "Importēt kalendārā",
|
||||
"import_button": "Importēt atlasītos",
|
||||
"importing": "Importē pasākumus...",
|
||||
"success": "{count} pasākumi veiksmīgi importēti",
|
||||
"success": "{count, plural, zero {Importēti # pasākumi} one {Importēts # pasākums} other {Importēti # pasākumi}}",
|
||||
"error": "Neizdevās importēt kalendāru",
|
||||
"file_too_large": "Fails pārsniedz 10 MB limitu",
|
||||
"invalid_format": "Nederīgs kalendāra faila formāts"
|
||||
@@ -3626,7 +3629,7 @@
|
||||
"default_updated": "Noklusējuma kalendārs atjaunināts",
|
||||
"error_default": "Neizdevās iestatīt noklusējuma kalendāru",
|
||||
"clear_events": "Iztīrīt pasākumus",
|
||||
"events_cleared": "Iztīrīti {count} pasākumi",
|
||||
"events_cleared": "{count, plural, zero {Iztīrīti # pasākumi} one {Iztīrīts # pasākums} other {Iztīrīti # pasākumi}}",
|
||||
"error_clear": "Neizdevās iztīrīt kalendāra pasākumus",
|
||||
"calendar_created": "Kalendārs izveidots",
|
||||
"calendar_updated": "Kalendārs atjaunināts",
|
||||
@@ -3638,7 +3641,7 @@
|
||||
"caldav_url": "CalDAV URL",
|
||||
"copy_url": "Kopēt CalDAV URL",
|
||||
"url_copied": "CalDAV URL nokopēts starpliktuvē",
|
||||
"share": "Kopīgot kalendāru",
|
||||
"share": "Kopīgot kalendāru…",
|
||||
"new_event_in_calendar": "Jauns notikums šajā kalendārā",
|
||||
"shared_with": "Kopīgots ar: {names}",
|
||||
"shared_with_count": "{count, plural, zero {Kopīgots ar # personām} one {Kopīgots ar # personu} other {Kopīgots ar # personām}}",
|
||||
|
||||
@@ -3345,6 +3345,9 @@
|
||||
"attendee": "Оролцогч",
|
||||
"accepted": "Хүлээн зөвшөөрсөн",
|
||||
"declined": "Татгалзсан",
|
||||
"accept": "Зөвшөөрөх",
|
||||
"maybe": "Магадгүй",
|
||||
"decline": "Татгалзах",
|
||||
"tentative": "Урьдчилсан",
|
||||
"needs_action": "Арга хэмжээ авах шаардлагатай",
|
||||
"remove": "Устгах",
|
||||
@@ -3621,7 +3624,7 @@
|
||||
"target_calendar": "Хуанли руу импортлох",
|
||||
"import_button": "Импортыг сонгосон",
|
||||
"importing": "Үйл явдал импортлож байна...",
|
||||
"success": "{count} арга хэмжээг амжилттай импортолсон",
|
||||
"success": "{count} арга хэмжээг импортолсон",
|
||||
"error": "Хуанли импорт хийж чадсангүй",
|
||||
"file_too_large": "Файл 10МБ-ын хязгаараас хэтэрсэн байна",
|
||||
"invalid_format": "Хуанли файлын формат буруу байна"
|
||||
@@ -3668,7 +3671,7 @@
|
||||
"caldav_url": "CalDAV URL",
|
||||
"copy_url": "CalDAV URL-г хуулах",
|
||||
"url_copied": "CalDAV URL-г санах ой руу хуулсан",
|
||||
"share": "Хуанлигаа хуваалцах",
|
||||
"share": "Хуанлигаа хуваалцах…",
|
||||
"new_event_in_calendar": "Энэ хуанли дахь шинэ арга хэмжээ",
|
||||
"shared_with": "Хуваалцсан: {names}",
|
||||
"shared_with_count": "{count, plural, one {1 хүнтэй хуваалцсан} other {# хүнтэй хуваалцсан}}",
|
||||
|
||||
@@ -3345,6 +3345,9 @@
|
||||
"attendee": "Deltaker",
|
||||
"accepted": "Godtatt",
|
||||
"declined": "Avslått",
|
||||
"accept": "Godta",
|
||||
"maybe": "Kanskje",
|
||||
"decline": "Avslå",
|
||||
"tentative": "Kanskje",
|
||||
"needs_action": "Har ikke svart",
|
||||
"remove": "Fjern",
|
||||
@@ -3614,14 +3617,14 @@
|
||||
"invalid_url": "Skriv inn en gyldig URL",
|
||||
"url_fetch_failed": "Kunne ikke hente kalenderen fra nettadressen",
|
||||
"parsing": "Leser kalenderfilen...",
|
||||
"parsed_events": "Hendelser funnet: {count}",
|
||||
"parsed_events": "{count, plural, one {# hendelse funnet} other {# hendelser funnet}}",
|
||||
"no_events": "Ingen hendelser funnet i filen",
|
||||
"select_all": "Velg alle",
|
||||
"deselect_all": "Fjern alle markeringer",
|
||||
"target_calendar": "Importer til kalender",
|
||||
"import_button": "Importer valgte hendelser",
|
||||
"importing": "Importerer hendelser...",
|
||||
"success": "Importerte hendelser: {count}",
|
||||
"success": "{count, plural, one {# hendelse importert} other {# hendelser importert}}",
|
||||
"error": "Kunne ikke importere kalenderen",
|
||||
"file_too_large": "Filen er større enn grensen på 10 MB",
|
||||
"invalid_format": "Ugyldig kalenderfilformat"
|
||||
@@ -3656,7 +3659,7 @@
|
||||
"default_updated": "Standardkalenderen er oppdatert",
|
||||
"error_default": "Kunne ikke angi standardkalender",
|
||||
"clear_events": "Fjern alle hendelser",
|
||||
"events_cleared": "Hendelser fjernet: {count}",
|
||||
"events_cleared": "{count, plural, one {# hendelse fjernet} other {# hendelser fjernet}}",
|
||||
"error_clear": "Kunne ikke fjerne kalenderhendelsene",
|
||||
"calendar_created": "Kalenderen er opprettet",
|
||||
"calendar_updated": "Kalenderen er oppdatert",
|
||||
@@ -3668,7 +3671,7 @@
|
||||
"caldav_url": "CalDAV-URL",
|
||||
"copy_url": "Kopier CalDAV-URL",
|
||||
"url_copied": "CalDAV-URL kopiert til utklippstavlen",
|
||||
"share": "Del kalender",
|
||||
"share": "Del kalender…",
|
||||
"new_event_in_calendar": "Ny hendelse i denne kalenderen",
|
||||
"shared_with": "Delt med {names}",
|
||||
"shared_with_count": "{count, plural, one {Delt med 1 person} other {Delt med # personer}}",
|
||||
|
||||
@@ -3345,6 +3345,9 @@
|
||||
"attendee": "Deelnemer",
|
||||
"accepted": "Geaccepteerd",
|
||||
"declined": "Geweigerd",
|
||||
"accept": "Accepteren",
|
||||
"maybe": "Misschien",
|
||||
"decline": "Weigeren",
|
||||
"tentative": "Voorlopig",
|
||||
"needs_action": "Reactie vereist",
|
||||
"remove": "Verwijderen",
|
||||
@@ -3585,14 +3588,14 @@
|
||||
"invalid_url": "Voer een geldige URL in",
|
||||
"url_fetch_failed": "Kan agenda niet ophalen van URL",
|
||||
"parsing": "Agendabestand wordt verwerkt...",
|
||||
"parsed_events": "{count} evenementen gevonden",
|
||||
"parsed_events": "{count, plural, one {# afspraak gevonden} other {# afspraken gevonden}}",
|
||||
"no_events": "Geen evenementen gevonden in bestand",
|
||||
"select_all": "Alles selecteren",
|
||||
"deselect_all": "Alles deselecteren",
|
||||
"target_calendar": "Importeren in agenda",
|
||||
"import_button": "Selectie importeren",
|
||||
"importing": "Evenementen importeren...",
|
||||
"success": "{count} evenementen succesvol geïmporteerd",
|
||||
"success": "{count, plural, one {# afspraak geïmporteerd} other {# afspraken geïmporteerd}}",
|
||||
"error": "Agenda importeren mislukt",
|
||||
"file_too_large": "Bestand overschrijdt de limiet van 10 MB",
|
||||
"invalid_format": "Ongeldig agendabestandsformaat"
|
||||
@@ -3637,9 +3640,9 @@
|
||||
"default_updated": "Standaardagenda bijgewerkt",
|
||||
"error_default": "Standaardagenda instellen mislukt",
|
||||
"clear_events": "Afspraken verwijderen",
|
||||
"events_cleared": "{count} afspraken verwijderd",
|
||||
"events_cleared": "{count, plural, one {# afspraak verwijderd} other {# afspraken verwijderd}}",
|
||||
"error_clear": "Kan agendagebeurtenissen niet verwijderen",
|
||||
"share": "Agenda delen",
|
||||
"share": "Agenda delen…",
|
||||
"new_event_in_calendar": "Nieuwe afspraak in deze agenda",
|
||||
"shared_with": "Gedeeld met {names}",
|
||||
"shared_with_count": "{count, plural, one {Gedeeld met 1 persoon} other {Gedeeld met # personen}}",
|
||||
|
||||
@@ -3345,6 +3345,9 @@
|
||||
"attendee": "Uczestnik",
|
||||
"accepted": "Zaakceptowano",
|
||||
"declined": "Odrzucono",
|
||||
"accept": "Akceptuj",
|
||||
"maybe": "Może",
|
||||
"decline": "Odrzuć",
|
||||
"tentative": "Wstępnie",
|
||||
"needs_action": "Wymaga działania",
|
||||
"remove": "Usuń",
|
||||
@@ -3585,14 +3588,14 @@
|
||||
"invalid_url": "Wprowadź prawidłowy adres URL",
|
||||
"url_fetch_failed": "Nie udało się pobrać kalendarza z adresu URL",
|
||||
"parsing": "Analizowanie pliku kalendarza...",
|
||||
"parsed_events": "Znaleziono {count} wydarzeń",
|
||||
"parsed_events": "{count, plural, one {Znaleziono # wydarzenie} few {Znaleziono # wydarzenia} many {Znaleziono # wydarzeń} other {Znaleziono # wydarzenia}}",
|
||||
"no_events": "Nie znaleziono wydarzeń w pliku",
|
||||
"select_all": "Zaznacz wszystko",
|
||||
"deselect_all": "Odznacz wszystko",
|
||||
"target_calendar": "Importuj do kalendarza",
|
||||
"import_button": "Importuj zaznaczone",
|
||||
"importing": "Importowanie wydarzeń...",
|
||||
"success": "Pomyślnie zaimportowano {count} wydarzeń",
|
||||
"success": "{count, plural, one {Zaimportowano # wydarzenie} few {Zaimportowano # wydarzenia} many {Zaimportowano # wydarzeń} other {Zaimportowano # wydarzenia}}",
|
||||
"error": "Nie udało się zaimportować kalendarza",
|
||||
"file_too_large": "Plik przekracza limit 10 MB",
|
||||
"invalid_format": "Nieprawidłowy format pliku kalendarza"
|
||||
@@ -3627,7 +3630,7 @@
|
||||
"default_updated": "Zaktualizowano domyślny kalendarz",
|
||||
"error_default": "Nie udało się ustawić domyślnego kalendarza",
|
||||
"clear_events": "Wyczyść wydarzenia",
|
||||
"events_cleared": "Wyczyszczono {count} wydarzeń",
|
||||
"events_cleared": "{count, plural, one {Wyczyszczono # wydarzenie} few {Wyczyszczono # wydarzenia} many {Wyczyszczono # wydarzeń} other {Wyczyszczono # wydarzenia}}",
|
||||
"error_clear": "Nie udało się wyczyścić wydarzeń kalendarza",
|
||||
"calendar_created": "Kalendarz utworzono",
|
||||
"calendar_updated": "Kalendarz zaktualizowano",
|
||||
@@ -3639,7 +3642,7 @@
|
||||
"caldav_url": "Adres URL CalDAV",
|
||||
"copy_url": "Kopiuj adres URL CalDAV",
|
||||
"url_copied": "Adres URL CalDAV skopiowano do schowka",
|
||||
"share": "Udostępnij kalendarz",
|
||||
"share": "Udostępnij kalendarz…",
|
||||
"new_event_in_calendar": "Nowe wydarzenie w tym kalendarzu",
|
||||
"shared_with": "Udostępniono: {names}",
|
||||
"shared_with_count": "{count, plural, one {Udostępniono 1 osobie} few {Udostępniono # osobom} many {Udostępniono # osobom} other {Udostępniono # osoby}}",
|
||||
|
||||
@@ -3345,6 +3345,9 @@
|
||||
"attendee": "Participante",
|
||||
"accepted": "Aceito",
|
||||
"declined": "Recusado",
|
||||
"accept": "Aceitar",
|
||||
"maybe": "Talvez",
|
||||
"decline": "Recusar",
|
||||
"tentative": "Provisório",
|
||||
"needs_action": "Aguardando resposta",
|
||||
"remove": "Remover",
|
||||
@@ -3611,14 +3614,14 @@
|
||||
"invalid_url": "Insira uma URL válida",
|
||||
"url_fetch_failed": "Não foi possível buscar o calendário da URL",
|
||||
"parsing": "Analisando arquivo de calendário...",
|
||||
"parsed_events": "{count} eventos encontrados",
|
||||
"parsed_events": "{count, plural, one {# evento encontrado} other {# eventos encontrados}}",
|
||||
"no_events": "Nenhum evento encontrado no arquivo",
|
||||
"select_all": "Selecionar tudo",
|
||||
"deselect_all": "Desmarcar tudo",
|
||||
"target_calendar": "Importar para o calendário",
|
||||
"import_button": "Importar selecionados",
|
||||
"importing": "Importando eventos...",
|
||||
"success": "{count} eventos importados com sucesso",
|
||||
"success": "{count, plural, one {# evento importado} other {# eventos importados}}",
|
||||
"error": "Falha ao importar calendário",
|
||||
"file_too_large": "Arquivo excede o limite de 10 MB",
|
||||
"invalid_format": "Formato de arquivo de calendário inválido"
|
||||
@@ -3663,9 +3666,9 @@
|
||||
"default_updated": "Calendário padrão atualizado",
|
||||
"error_default": "Falha ao definir calendário padrão",
|
||||
"clear_events": "Limpar eventos",
|
||||
"events_cleared": "{count} eventos removidos",
|
||||
"events_cleared": "{count, plural, one {# evento removido} other {# eventos removidos}}",
|
||||
"error_clear": "Falha ao limpar os eventos do calendário",
|
||||
"share": "Compartilhar calendário",
|
||||
"share": "Compartilhar calendário…",
|
||||
"new_event_in_calendar": "Novo evento neste calendário",
|
||||
"shared_with": "Compartilhado com {names}",
|
||||
"shared_with_count": "{count, plural, one {Compartilhado com 1 pessoa} other {Compartilhado com # pessoas}}",
|
||||
|
||||
@@ -3345,6 +3345,9 @@
|
||||
"attendee": "Participant",
|
||||
"accepted": "Acceptat",
|
||||
"declined": "Respins",
|
||||
"accept": "Acceptă",
|
||||
"maybe": "Poate",
|
||||
"decline": "Refuză",
|
||||
"tentative": "Provizoriu",
|
||||
"needs_action": "Necesită acțiune",
|
||||
"remove": "Eliminați",
|
||||
@@ -3614,14 +3617,14 @@
|
||||
"invalid_url": "Vă rugăm să introduceți o adresă de e-mail validă URL",
|
||||
"url_fetch_failed": "Nu s-a putut prelua calendarul de la URL",
|
||||
"parsing": "Se analizează fișierul de calendar...",
|
||||
"parsed_events": "{count} evenimente găsite",
|
||||
"parsed_events": "{count, plural, one {# eveniment găsit} few {# evenimente găsite} other {# de evenimente găsite}}",
|
||||
"no_events": "Nu s-au găsit evenimente în fișier",
|
||||
"select_all": "Selectează tot",
|
||||
"deselect_all": "Deselectați tot",
|
||||
"target_calendar": "Import în calendar",
|
||||
"import_button": "Importați elementele selectate",
|
||||
"importing": "Se importă evenimente...",
|
||||
"success": "{count} evenimentele au fost importate cu succes",
|
||||
"success": "{count, plural, one {# eveniment importat} few {# evenimente importate} other {# de evenimente importate}}",
|
||||
"error": "Importul calendarului a eșuat",
|
||||
"file_too_large": "Fișierul depășește limita de 10 MB",
|
||||
"invalid_format": "Format de fișier calendar invalid"
|
||||
@@ -3656,7 +3659,7 @@
|
||||
"default_updated": "Calendarul implicit a fost actualizat",
|
||||
"error_default": "Nu s-a reușit setarea calendarului implicit",
|
||||
"clear_events": "Ștergeți evenimentele",
|
||||
"events_cleared": "{count} evenimente șterse",
|
||||
"events_cleared": "{count, plural, one {# eveniment șters} few {# evenimente șterse} other {# de evenimente șterse}}",
|
||||
"error_clear": "Nu s-au șters evenimentele din calendar",
|
||||
"calendar_created": "Calendar creat",
|
||||
"calendar_updated": "Calendar actualizat",
|
||||
@@ -3668,7 +3671,7 @@
|
||||
"caldav_url": "CalDAV URL",
|
||||
"copy_url": "Copiați CalDAV URL",
|
||||
"url_copied": "CalDAV URL copiat în clipboard",
|
||||
"share": "Partajare calendar",
|
||||
"share": "Partajare calendar…",
|
||||
"new_event_in_calendar": "Eveniment nou în acest calendar",
|
||||
"shared_with": "Partajat cu {names}",
|
||||
"shared_with_count": "{count, plural, one {Partajat cu 1 persoană} few {Partajat cu # persoane} other {Partajat cu # de persoane}}",
|
||||
|
||||
@@ -3345,6 +3345,9 @@
|
||||
"attendee": "Участник",
|
||||
"accepted": "Принято",
|
||||
"declined": "Отклонено",
|
||||
"accept": "Принять",
|
||||
"maybe": "Может быть",
|
||||
"decline": "Отклонить",
|
||||
"tentative": "Предварительно",
|
||||
"needs_action": "Требует ответа",
|
||||
"remove": "Удалить",
|
||||
@@ -3585,14 +3588,14 @@
|
||||
"invalid_url": "Введите корректный URL",
|
||||
"url_fetch_failed": "Не удалось получить календарь по URL",
|
||||
"parsing": "Разбор файла календаря...",
|
||||
"parsed_events": "Найдено {count} событий",
|
||||
"parsed_events": "{count, plural, one {Найдено # событие} few {Найдено # события} many {Найдено # событий} other {Найдено # события}}",
|
||||
"no_events": "События в файле не найдены",
|
||||
"select_all": "Выбрать все",
|
||||
"deselect_all": "Снять выделение",
|
||||
"target_calendar": "Импортировать в календарь",
|
||||
"import_button": "Импортировать выбранные",
|
||||
"importing": "Импортирование событий...",
|
||||
"success": "{count} событий успешно импортировано",
|
||||
"success": "{count, plural, one {Импортировано # событие} few {Импортировано # события} many {Импортировано # событий} other {Импортировано # события}}",
|
||||
"error": "Не удалось импортировать календарь",
|
||||
"file_too_large": "Файл превышает лимит 10 МБ",
|
||||
"invalid_format": "Неверный формат файла календаря"
|
||||
@@ -3627,7 +3630,7 @@
|
||||
"default_updated": "Календарь по умолчанию обновлён",
|
||||
"error_default": "Не удалось установить календарь по умолчанию",
|
||||
"clear_events": "Очистить события",
|
||||
"events_cleared": "{count} событий очищено",
|
||||
"events_cleared": "{count, plural, one {Очищено # событие} few {Очищено # события} many {Очищено # событий} other {Очищено # события}}",
|
||||
"error_clear": "Не удалось очистить события календаря",
|
||||
"calendar_created": "Календарь создан",
|
||||
"calendar_updated": "Календарь обновлён",
|
||||
@@ -3639,7 +3642,7 @@
|
||||
"caldav_url": "URL CalDAV",
|
||||
"copy_url": "Скопировать CalDAV URL",
|
||||
"url_copied": "CalDAV URL скопирован в буфер обмена",
|
||||
"share": "Поделиться календарём",
|
||||
"share": "Поделиться календарём…",
|
||||
"new_event_in_calendar": "Новое событие в этом календаре",
|
||||
"shared_with": "Доступ открыт: {names}",
|
||||
"shared_with_count": "{count, plural, one {Доступ открыт # человеку} few {Доступ открыт # людям} many {Доступ открыт # людям} other {Доступ открыт # человека}}",
|
||||
|
||||
@@ -3345,6 +3345,9 @@
|
||||
"attendee": "Účastník",
|
||||
"accepted": "Prijaté",
|
||||
"declined": "Odmietnuté",
|
||||
"accept": "Prijať",
|
||||
"maybe": "Možno",
|
||||
"decline": "Odmietnuť",
|
||||
"tentative": "Nezáväzne",
|
||||
"needs_action": "Vyžaduje akciu",
|
||||
"remove": "Odstrániť",
|
||||
@@ -3614,14 +3617,14 @@
|
||||
"invalid_url": "Zadajte platnú URL adresu",
|
||||
"url_fetch_failed": "Načítanie kalendára z URL adresy zlyhalo",
|
||||
"parsing": "Analyzovanie súboru kalendára...",
|
||||
"parsed_events": "Nájdených {count} udalostí",
|
||||
"parsed_events": "{count, plural, one {Nájdená # udalosť} few {Nájdené # udalosti} many {Nájdenej # udalosti} other {Nájdených # udalostí}}",
|
||||
"no_events": "V súbore neboli nájdené žiadne udalosti",
|
||||
"select_all": "Vybrať všetko",
|
||||
"deselect_all": "Zrušiť výber všetkého",
|
||||
"target_calendar": "Importovať do kalendára",
|
||||
"import_button": "Importovať vybrané",
|
||||
"importing": "Importovanie udalostí...",
|
||||
"success": "Úspešne importovaných {count} udalostí",
|
||||
"success": "{count, plural, one {Importovaná # udalosť} few {Importované # udalosti} many {Importovanej # udalosti} other {Importovaných # udalostí}}",
|
||||
"error": "Import kalendára zlyhal",
|
||||
"file_too_large": "Súbor prekračuje limit 10 MB",
|
||||
"invalid_format": "Neplatný formát súboru kalendára"
|
||||
@@ -3656,7 +3659,7 @@
|
||||
"default_updated": "Predvolený kalendár aktualizovaný",
|
||||
"error_default": "Nepodarilo sa nastaviť predvolený kalendár",
|
||||
"clear_events": "Vymazať udalosti",
|
||||
"events_cleared": "Vymazaných {count} udalostí",
|
||||
"events_cleared": "{count, plural, one {Vymazaná # udalosť} few {Vymazané # udalosti} many {Vymazanej # udalosti} other {Vymazaných # udalostí}}",
|
||||
"error_clear": "Vymazanie udalostí kalendára zlyhalo",
|
||||
"calendar_created": "Kalendár bol vytvorený",
|
||||
"calendar_updated": "Kalendár bol aktualizovaný",
|
||||
@@ -3668,7 +3671,7 @@
|
||||
"caldav_url": "URL CalDAV",
|
||||
"copy_url": "Kopírovať URL CalDAV",
|
||||
"url_copied": "URL CalDAV skopírovaná do schránky",
|
||||
"share": "Zdieľať kalendár",
|
||||
"share": "Zdieľať kalendár…",
|
||||
"new_event_in_calendar": "Nová udalosť v tomto kalendári",
|
||||
"shared_with": "Zdieľané s: {names}",
|
||||
"shared_with_count": "{count, plural, one {Zdieľané s 1 osobou} few {Zdieľané s # osobami} many {Zdieľané s # osoby} other {Zdieľané s # osobami}}",
|
||||
|
||||
@@ -2659,6 +2659,9 @@
|
||||
"attendee": "ผู้เข้าร่วม",
|
||||
"accepted": "ยอมรับแล้ว",
|
||||
"declined": "ปฏิเสธแล้ว",
|
||||
"accept": "ตอบรับ",
|
||||
"maybe": "อาจจะ",
|
||||
"decline": "ปฏิเสธ",
|
||||
"tentative": "อาจจะไป",
|
||||
"needs_action": "รอการตอบรับ",
|
||||
"remove": "ลบออก",
|
||||
@@ -2935,7 +2938,7 @@
|
||||
"target_calendar": "นำเข้าไปยังปฏิทิน",
|
||||
"import_button": "นำเข้ารายการที่เลือก",
|
||||
"importing": "กำลังนำเข้ากิจกรรม...",
|
||||
"success": "นำเข้ากิจกรรมสำเร็จ {count} รายการ",
|
||||
"success": "นำเข้ากิจกรรมแล้ว {count} รายการ",
|
||||
"error": "นำเข้าปฏิทินไม่สำเร็จ",
|
||||
"file_too_large": "ไฟล์มีขนาดเกิน 10 MB",
|
||||
"invalid_format": "รูปแบบไฟล์ปฏิทินไม่ถูกต้อง"
|
||||
@@ -2982,7 +2985,7 @@
|
||||
"caldav_url": "CalDAV URL",
|
||||
"copy_url": "คัดลอก CalDAV URL",
|
||||
"url_copied": "คัดลอก CalDAV URL ไปยังคลิปบอร์ดแล้ว",
|
||||
"share": "แชร์ปฏิทิน",
|
||||
"share": "แชร์ปฏิทิน…",
|
||||
"new_event_in_calendar": "กิจกรรมใหม่ในปฏิทินนี้",
|
||||
"shared_with": "แชร์กับ {names}",
|
||||
"shared_with_count": "{count, plural, one {แชร์กับบุคคล 1 คน} other {แชร์กับบุคคล # คน}}",
|
||||
|
||||
@@ -3345,6 +3345,9 @@
|
||||
"attendee": "Katılımcı",
|
||||
"accepted": "Kabul edildi",
|
||||
"declined": "Reddedildi",
|
||||
"accept": "Kabul et",
|
||||
"maybe": "Belki",
|
||||
"decline": "Reddet",
|
||||
"tentative": "Geçici",
|
||||
"needs_action": "İşlem gerekiyor",
|
||||
"remove": "Kaldır",
|
||||
@@ -3618,7 +3621,7 @@
|
||||
"target_calendar": "Takvime içe aktar",
|
||||
"import_button": "Seçilenleri içe aktar",
|
||||
"importing": "Etkinlikler içe aktarılıyor...",
|
||||
"success": "{count} etkinlik başarıyla içe aktarıldı",
|
||||
"success": "{count} etkinlik içe aktarıldı",
|
||||
"error": "Takvim içe aktarılamadı",
|
||||
"file_too_large": "Dosya 10 MB sınırını aşıyor",
|
||||
"invalid_format": "Geçersiz takvim dosyası biçimi"
|
||||
@@ -3665,7 +3668,7 @@
|
||||
"caldav_url": "CalDAV URL'si",
|
||||
"copy_url": "CalDAV URL'sini kopyala",
|
||||
"url_copied": "CalDAV URL'si panoya kopyalandı",
|
||||
"share": "Takvimi paylaş",
|
||||
"share": "Takvimi paylaş…",
|
||||
"new_event_in_calendar": "Bu takvimde yeni etkinlik",
|
||||
"shared_with": "Paylaşılan kişiler: {names}",
|
||||
"shared_with_count": "{count, plural, one {1 kişiyle paylaşıldı} other {# kişiyle paylaşıldı}}",
|
||||
|
||||
@@ -3345,6 +3345,9 @@
|
||||
"attendee": "Присутній",
|
||||
"accepted": "прийнято",
|
||||
"declined": "Відхилено",
|
||||
"accept": "Прийняти",
|
||||
"maybe": "Можливо",
|
||||
"decline": "Відхилити",
|
||||
"tentative": "Орієнтовний",
|
||||
"needs_action": "Потребує дії",
|
||||
"remove": "видалити",
|
||||
@@ -3585,14 +3588,14 @@
|
||||
"invalid_url": "Введіть дійсну URL-адресу",
|
||||
"url_fetch_failed": "Не вдалося отримати календар з URL-адреси",
|
||||
"parsing": "Розбір файлу календаря...",
|
||||
"parsed_events": "Знайдено подій: {count}",
|
||||
"parsed_events": "{count, plural, one {Знайдено # подію} few {Знайдено # події} many {Знайдено # подій} other {Знайдено # події}}",
|
||||
"no_events": "У файлі не знайдено подій",
|
||||
"select_all": "Вибрати все",
|
||||
"deselect_all": "Зняти вибір із усіх",
|
||||
"target_calendar": "Імпорт до календаря",
|
||||
"import_button": "Вибраний імпорт",
|
||||
"importing": "Імпорт подій...",
|
||||
"success": "{count} подій успішно імпортовано",
|
||||
"success": "{count, plural, one {Імпортовано # подію} few {Імпортовано # події} many {Імпортовано # подій} other {Імпортовано # події}}",
|
||||
"error": "Не вдалося імпортувати календар",
|
||||
"file_too_large": "Файл перевищує обмеження в 10 Мб",
|
||||
"invalid_format": "Недійсний формат файлу календаря"
|
||||
@@ -3627,7 +3630,7 @@
|
||||
"default_updated": "Типовий календар оновлено",
|
||||
"error_default": "Не вдалося встановити типовий календар",
|
||||
"clear_events": "Ясні події",
|
||||
"events_cleared": "{count} подій видалено",
|
||||
"events_cleared": "{count, plural, one {Видалено # подію} few {Видалено # події} many {Видалено # подій} other {Видалено # події}}",
|
||||
"error_clear": "Не вдалося очистити події календаря",
|
||||
"calendar_created": "Календар створено",
|
||||
"calendar_updated": "Календар оновлено",
|
||||
@@ -3639,7 +3642,7 @@
|
||||
"caldav_url": "URL-адреса CalDAV",
|
||||
"copy_url": "Скопіюйте URL-адресу CalDAV",
|
||||
"url_copied": "URL-адресу CalDAV скопійовано в буфер обміну",
|
||||
"share": "Поділитися календарем",
|
||||
"share": "Поділитися календарем…",
|
||||
"new_event_in_calendar": "Нова подія в цьому календарі",
|
||||
"shared_with": "Доступ надано: {names}",
|
||||
"shared_with_count": "{count, plural, one {Доступ надано # особі} few {Доступ надано # особам} many {Доступ надано # особам} other {Доступ надано # особи}}",
|
||||
|
||||
@@ -3345,6 +3345,9 @@
|
||||
"attendee": "與會者",
|
||||
"accepted": "已接受",
|
||||
"declined": "已拒絕",
|
||||
"accept": "接受",
|
||||
"maybe": "暫定",
|
||||
"decline": "拒絕",
|
||||
"tentative": "暫定",
|
||||
"needs_action": "待處理",
|
||||
"remove": "移除",
|
||||
@@ -3621,7 +3624,7 @@
|
||||
"target_calendar": "匯入到行事曆",
|
||||
"import_button": "匯入選取項目",
|
||||
"importing": "正在匯入活動…",
|
||||
"success": "{count} 個活動已成功匯入",
|
||||
"success": "已匯入 {count} 個活動",
|
||||
"error": "匯入行事曆失敗",
|
||||
"file_too_large": "檔案超過 10 MB 上限",
|
||||
"invalid_format": "行事曆檔案格式無效"
|
||||
@@ -3668,7 +3671,7 @@
|
||||
"caldav_url": "CalDAV URL",
|
||||
"copy_url": "複製 CalDAV URL",
|
||||
"url_copied": "CalDAV URL 已複製到剪貼簿",
|
||||
"share": "分享行事曆",
|
||||
"share": "分享行事曆…",
|
||||
"new_event_in_calendar": "在此行事曆中新增活動",
|
||||
"shared_with": "已與 {names} 共用",
|
||||
"shared_with_count": "{count, plural, other {已與 # 人共用}}",
|
||||
|
||||
@@ -3345,6 +3345,9 @@
|
||||
"attendee": "出席者",
|
||||
"accepted": "已接受",
|
||||
"declined": "已拒绝",
|
||||
"accept": "接受",
|
||||
"maybe": "暂定",
|
||||
"decline": "拒绝",
|
||||
"tentative": "暂定",
|
||||
"needs_action": "待处理",
|
||||
"remove": "移除",
|
||||
@@ -3592,7 +3595,7 @@
|
||||
"target_calendar": "导入到日历",
|
||||
"import_button": "导入所选",
|
||||
"importing": "正在导入活动...",
|
||||
"success": "{count} 个活动已成功导入",
|
||||
"success": "已导入 {count} 个活动",
|
||||
"error": "导入日历失败",
|
||||
"file_too_large": "文件超过 10MB 限制",
|
||||
"invalid_format": "日历文件格式无效"
|
||||
@@ -3639,7 +3642,7 @@
|
||||
"caldav_url": "CalDAV URL",
|
||||
"copy_url": "复制 CalDAV URL",
|
||||
"url_copied": "CalDAV URL 已复制到剪贴板",
|
||||
"share": "共享日历",
|
||||
"share": "共享日历…",
|
||||
"new_event_in_calendar": "在此日历中新建事件",
|
||||
"shared_with": "已与 {names} 共享",
|
||||
"shared_with_count": "{count, plural, other {已与 # 人共享}}",
|
||||
|
||||
Reference in New Issue
Block a user