Merge branch 'main' into feature/multiple-schedules-post-turbo

This commit is contained in:
Alex van Andel 2022-02-27 23:53:35 +01:00
commit 34f0558f24
19 changed files with 1456 additions and 310 deletions

View File

@ -22,7 +22,7 @@ import TrialBanner from "@ee/components/TrialBanner";
import HelpMenuItemDynamic from "@ee/lib/intercom/HelpMenuItemDynamic";
import classNames from "@lib/classNames";
import { BASE_URL } from "@lib/config/constants";
import { NEXT_PUBLIC_BASE_URL } from "@lib/config/constants";
import { shouldShowOnboarding } from "@lib/getting-started";
import { useLocale } from "@lib/hooks/useLocale";
import { collectPageParameters, telemetryEventTypes, useTelemetry } from "@lib/telemetry";
@ -62,7 +62,7 @@ function useRedirectToLoginIfUnauthenticated() {
router.replace({
pathname: "/auth/login",
query: {
callbackUrl: `${BASE_URL}/${location.pathname}${location.search}`,
callbackUrl: `${NEXT_PUBLIC_BASE_URL}/${location.pathname}${location.search}`,
},
});
}
@ -380,7 +380,7 @@ function UserDropdown({ small }: { small?: boolean }) {
<img
className="rounded-full"
src={
(process.env.NEXT_PUBLIC_APP_URL || process.env.BASE_URL) +
(process.env.NEXT_PUBLIC_APP_URL || process.env.NEXT_PUBLIC_BASE_URL) +
"/" +
user?.username +
"/avatar.png"

View File

@ -4,11 +4,13 @@ import dayjs, { Dayjs } from "dayjs";
import dayjsBusinessTime from "dayjs-business-time";
import timezone from "dayjs/plugin/timezone";
import utc from "dayjs/plugin/utc";
import { useEffect, useMemo, useState } from "react";
import { memoize } from "lodash";
import { useEffect, useMemo, useRef, useState } from "react";
import classNames from "@lib/classNames";
import { timeZone } from "@lib/clock";
import { weekdayNames } from "@lib/core/i18n/weekday";
import { doWorkAsync } from "@lib/doWorkAsync";
import { useLocale } from "@lib/hooks/useLocale";
import getSlots from "@lib/slots";
import { WorkingHours } from "@lib/types/schedule";
@ -87,7 +89,13 @@ function DatePicker({
const [month, setMonth] = useState<string>("");
const [year, setYear] = useState<string>("");
const [isFirstMonth, setIsFirstMonth] = useState<boolean>(false);
const [daysFromState, setDays] = useState<
| {
disabled: Boolean;
date: number;
}[]
| null
>(null);
useEffect(() => {
if (!browsingDate || (date && browsingDate.utcOffset() !== date?.utcOffset())) {
setBrowsingDate(date || dayjs().tz(timeZone()));
@ -99,13 +107,56 @@ function DatePicker({
setMonth(browsingDate.toDate().toLocaleString(i18n.language, { month: "long" }));
setYear(browsingDate.format("YYYY"));
setIsFirstMonth(browsingDate.startOf("month").isBefore(dayjs()));
setDays(null);
}
}, [browsingDate, i18n.language]);
const days = useMemo(() => {
const isDisabled = (
day: number,
{
browsingDate,
periodType,
periodStartDate,
periodEndDate,
periodCountCalendarDays,
periodDays,
eventLength,
minimumBookingNotice,
workingHours,
}
) => {
const date = browsingDate.startOf("day").date(day);
return (
isOutOfBounds(date, {
periodType,
periodStartDate,
periodEndDate,
periodCountCalendarDays,
periodDays,
}) ||
!getSlots({
inviteeDate: date,
frequency: eventLength,
minimumBookingNotice,
workingHours,
}).length
);
};
const isDisabledRef = useRef(
memoize(isDisabled, (day, { browsingDate }) => {
// Make a composite cache key
return day + "_" + browsingDate.toString();
})
);
const days = (() => {
if (!browsingDate) {
return [];
}
if (daysFromState) {
return daysFromState;
}
// Create placeholder elements for empty days in first week
let weekdayOfFirst = browsingDate.date(1).day();
if (weekStart === "Monday") {
@ -115,33 +166,49 @@ function DatePicker({
const days = Array(weekdayOfFirst).fill(null);
const isDisabled = (day: number) => {
const date = browsingDate.startOf("day").date(day);
return (
isOutOfBounds(date, {
periodType,
periodStartDate,
periodEndDate,
periodCountCalendarDays,
periodDays,
}) ||
!getSlots({
inviteeDate: date,
frequency: eventLength,
minimumBookingNotice,
workingHours,
}).length
);
};
const isDisabledMemoized = isDisabledRef.current;
const daysInMonth = browsingDate.daysInMonth();
const daysInitialOffset = days.length;
// Build UI with All dates disabled
for (let i = 1; i <= daysInMonth; i++) {
days.push({ disabled: isDisabled(i), date: i });
days.push({
disabled: true,
date: i,
});
}
// Update dates with their availability
doWorkAsync({
batch: 5,
name: "DatePicker",
length: daysInMonth,
callback: (i: number, isLast) => {
let day = i + 1;
days[daysInitialOffset + i] = {
disabled: isDisabledMemoized(day, {
browsingDate,
periodType,
periodStartDate,
periodEndDate,
periodCountCalendarDays,
periodDays,
eventLength,
minimumBookingNotice,
workingHours,
}),
date: day,
};
},
done: () => {
setDays(days);
},
});
return days;
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [browsingDate]);
})();
if (!browsingDate) {
return <Loader />;

View File

@ -60,7 +60,7 @@ export default function ConfirmationDialogContent(props: PropsWithChildren<Confi
</DialogPrimitive.Description>
</div>
</div>
<div className="mt-5 gap-x-2 sm:mt-8 sm:flex sm:flex-row-reverse">
<div className="mt-5 flex flex-row-reverse gap-x-2 sm:mt-8">
<DialogClose onClick={onConfirm} asChild>
{confirmBtn || <Button color="primary">{confirmBtnText}</Button>}
</DialogClose>

View File

@ -2,7 +2,7 @@ import type { IntegrationOAuthCallbackState } from "pages/api/integrations/types
import { useState } from "react";
import { useMutation } from "react-query";
import { BASE_URL } from "@lib/config/constants";
import { NEXT_PUBLIC_BASE_URL } from "@lib/config/constants";
import { AddAppleIntegrationModal } from "@lib/integrations/calendar/components/AddAppleIntegration";
import { AddCalDavIntegrationModal } from "@lib/integrations/calendar/components/AddCalDavIntegration";
@ -18,7 +18,7 @@ export default function ConnectIntegration(props: {
const mutation = useMutation(async () => {
const state: IntegrationOAuthCallbackState = {
returnTo: BASE_URL + location.pathname + location.search,
returnTo: NEXT_PUBLIC_BASE_URL + location.pathname + location.search,
};
const stateStr = encodeURIComponent(JSON.stringify(state));
const searchParams = `?state=${stateStr}`;

View File

@ -120,11 +120,11 @@ const CustomInputTypeForm: FC<Props> = (props) => {
value={selectedCustomInput?.id || -1}
{...register("id", { valueAsNumber: true })}
/>
<div className="mt-5 sm:mt-4 sm:flex sm:flex-row-reverse">
<Button type="submit">{t("save")}</Button>
<div className="mt-5 flex space-x-2 sm:mt-4">
<Button onClick={onCancel} type="button" color="secondary" className="ltr:mr-2">
{t("cancel")}
</Button>
<Button type="submit">{t("save")}</Button>
</div>
</form>
);

View File

@ -76,7 +76,7 @@ export default function TeamCreate(props: Props) {
/>
</div>
{errorMessage && <Alert severity="error" title={errorMessage} />}
<div className="mt-5 sm:mt-4 sm:flex sm:flex-row-reverse">
<div className="mt-5 flex flex-row-reverse sm:mt-4">
<button type="submit" className="btn btn-primary">
{t("create_team")}
</button>

View File

@ -3,3 +3,4 @@ export const WEBSITE_URL = process.env.NEXT_PUBLIC_APP_URL || "https://cal.com";
export const IS_PRODUCTION = process.env.NODE_ENV === "production";
export const TRIAL_LIMIT_DAYS = 14;
export const HOSTED_CAL_FEATURES = process.env.HOSTED_CAL_FEATURES || BASE_URL === "https://app.cal.com";
export const NEXT_PUBLIC_BASE_URL = process.env.NEXT_PUBLIC_BASE_URL || `https://${process.env.VERCEL_URL}`;

View File

@ -0,0 +1,48 @@
const data = {};
/**
* Starts an iteration from `0` to `length - 1` with batch size `batch`
*
* `callback` is called per iteration
*
* `done` is called when all iterations are done
*
* `name` is a unique identifier for the work. It allows the work that is not required to be dropped.
*/
export const doWorkAsync = ({
length,
name,
callback,
done,
batch,
offsetStart,
__pending,
}: {
name: string;
length: number;
callback: Function;
done: Function;
batch: number;
offsetStart?: number;
__pending?: boolean;
}) => {
offsetStart = offsetStart || 0;
const stepLength = batch;
const lastIndex = length - 1;
const offsetEndExclusive = offsetStart + stepLength;
if (!__pending && data[name]) {
cancelAnimationFrame(data[name]);
}
if (offsetStart >= length) {
done();
return;
}
for (let i = offsetStart; i < offsetEndExclusive && i < length; i++) {
callback(i, offsetEndExclusive > lastIndex);
}
data[name] = requestAnimationFrame(() => {
doWorkAsync({ length, callback, name, batch, done, offsetStart: offsetEndExclusive, __pending: true });
});
};

View File

@ -16,17 +16,29 @@ export type GetSlots = {
workingHours: WorkingHours[];
minimumBookingNotice: number;
};
export type WorkingHoursTimeFrame = { startTime: number; endTime: number };
const getMinuteOffset = (date: Dayjs, frequency: number) => {
// Diffs the current time with the given date and iff same day; (handled by 1440) - return difference; otherwise 0
const minuteOffset = Math.min(date.diff(dayjs().utc(), "minute"), 1440) % 1440;
// round down to nearest step
return Math.ceil(minuteOffset / frequency) * frequency;
const splitAvailableTime = (
startTimeMinutes: number,
endTimeMinutes: number,
frequency: number
): Array<WorkingHoursTimeFrame> => {
let initialTime = startTimeMinutes;
const finalizationTime = endTimeMinutes;
const result = [] as Array<WorkingHoursTimeFrame>;
while (initialTime < finalizationTime) {
const periodTime = initialTime + frequency;
result.push({ startTime: initialTime, endTime: periodTime });
initialTime += frequency;
}
return result;
};
const getSlots = ({ inviteeDate, frequency, minimumBookingNotice, workingHours }: GetSlots) => {
// current date in invitee tz
const startDate = dayjs().add(minimumBookingNotice, "minute");
const startOfDay = dayjs.utc().startOf("day");
const startOfInviteeDay = inviteeDate.startOf("day");
// checks if the start date is in the past
if (inviteeDate.isBefore(startDate, "day")) {
return [];
@ -36,33 +48,27 @@ const getSlots = ({ inviteeDate, frequency, minimumBookingNotice, workingHours }
{ utcOffset: -inviteeDate.utcOffset() },
workingHours.map((schedule) => ({
days: schedule.days,
startTime: dayjs.utc().startOf("day").add(schedule.startTime, "minute"),
endTime: dayjs.utc().startOf("day").add(schedule.endTime, "minute"),
startTime: startOfDay.add(schedule.startTime, "minute"),
endTime: startOfDay.add(schedule.endTime, "minute"),
}))
).filter((hours) => hours.days.includes(inviteeDate.day()));
const slots: Dayjs[] = [];
for (let minutes = getMinuteOffset(inviteeDate, frequency); minutes < 1440; minutes += frequency) {
const slot = dayjs(inviteeDate).startOf("day").add(minutes, "minute");
// check if slot happened already
if (slot.isBefore(startDate)) {
continue;
}
// add slots to available slots if it is found to be between the start and end time of the checked working hours.
if (
localWorkingHours.some((hours) =>
slot.isBetween(
inviteeDate.startOf("day").add(hours.startTime, "minute"),
inviteeDate.startOf("day").add(hours.endTime, "minute"),
null,
"[)"
)
)
) {
const slotsTimeFrameAvailable = [] as Array<WorkingHoursTimeFrame>;
// Here we split working hour in chunks for every frequency available that can fit in whole working hour
localWorkingHours.forEach((item, index) => {
slotsTimeFrameAvailable.push(...splitAvailableTime(item.startTime, item.endTime, frequency));
});
slotsTimeFrameAvailable.forEach((item) => {
const slot = startOfInviteeDay.add(item.startTime, "minute");
// Validating slot its not on the past
if (!slot.isBefore(startDate)) {
slots.push(slot);
}
}
});
return slots;
};

View File

@ -4,7 +4,7 @@ import { useRouter } from "next/router";
import { FormProvider, SubmitHandler, useForm } from "react-hook-form";
import { asStringOrNull } from "@lib/asStringOrNull";
import { BASE_URL } from "@lib/config/constants";
import { NEXT_PUBLIC_BASE_URL } from "@lib/config/constants";
import { useLocale } from "@lib/hooks/useLocale";
import prisma from "@lib/prisma";
import { isSAMLLoginEnabled } from "@lib/saml";
@ -60,7 +60,7 @@ export default function Signup({ email }: Props) {
.then(
async () =>
await signIn("Cal.com", {
callbackUrl: (`${BASE_URL}/${router.query.callbackUrl}` || "") as string,
callbackUrl: (`${NEXT_PUBLIC_BASE_URL}/${router.query.callbackUrl}` || "") as string,
})
)
.catch((err) => {
@ -130,7 +130,7 @@ export default function Signup({ email }: Props) {
className="w-5/12 justify-center"
onClick={() =>
signIn("Cal.com", {
callbackUrl: (`${BASE_URL}/${router.query.callbackUrl}` || "") as string,
callbackUrl: (`${NEXT_PUBLIC_BASE_URL}/${router.query.callbackUrl}` || "") as string,
})
}>
{t("login_instead")}
@ -184,7 +184,7 @@ export const getServerSideProps = async (ctx: GetServerSidePropsContext) => {
return {
redirect: {
permanent: false,
destination: "/auth/login?callbackUrl=" + `${BASE_URL}/${ctx.query.callbackUrl}`,
destination: "/auth/login?callbackUrl=" + `${NEXT_PUBLIC_BASE_URL}/${ctx.query.callbackUrl}`,
},
};
}

View File

@ -1,4 +1,7 @@
{
"trial_days_left": "Tienes $t(day, {\"count\": {{days}} }) restantes en tu prueba PRO",
"day": "{{count}} día",
"day_plural": "{{count}} días",
"upgrade_now": "Actualizar ahora",
"accept_invitation": "Aceptar invitación",
"calcom_explained": "Cal.com es la alternativa de código abierto de Calendly poniéndole en control de sus propios datos, flujo de trabajo y apariencia.",
@ -11,10 +14,10 @@
"organizer": "Organizador",
"need_to_reschedule_or_cancel": "¿Necesita reprogramar o cancelar?",
"cancellation_reason": "Motivo de la cancelación",
"cancellation_reason_placeholder": "¿Por qué estás cancelando? (opcional)",
"cancellation_reason_placeholder": "¿Por qué razón estás cancelando? (opcional)",
"rejection_reason": "Motivo del rechazo",
"rejection_reason_title": "¿Rechazar la solicitud de reserva?",
"rejection_reason_description": "¿Estás seguro de que quieres rechazar la reserva? Le haremos saber a la persona que ha intentado reservar. Puedes proporcionar una razón a continuación.",
"rejection_reason_description": "¿Estás seguro de que deseas rechazar la reserva? Le haremos saber a la persona que ha intentado reservar. Puedes indicar una razón a continuación.",
"rejection_confirmation": "Rechazar la reserva",
"manage_this_event": "Administrar este evento",
"your_event_has_been_scheduled": "Tu evento ha sido reprogramado",
@ -87,7 +90,12 @@
"you_have_been_invited": "Has sido invitado a unirte al equipo {{teamName}}",
"user_invited_you": "{{user}} te invitó a unirte al equipo {{teamName}}",
"hidden_team_member_title": "Estás oculto en este equipo",
"hidden_team_member_message": "No está pago tu asiento, actualiza a Pro o infórmale al propietario del equipo para que pague tu asiento.",
"hidden_team_owner_message": "Necesitas una cuenta Pro para gestionar equipos, permanecerás oculto hasta que se realice la mejora.",
"link_expires": "p.s. Expira en {{expiresIn}} horas.",
"upgrade_to_per_seat": "Actualiza a Por-Asiento",
"team_upgrade_seats_details": "De los {{memberCount}} miembros de tu equipo, {{unpaidCount}} asiento(s) no se ha(n) pagado. A ${{seatPrice}}/m por asiento, el costo total estimado de tu membresía es de ${{totalCost}}/m.",
"team_upgraded_successfully": "¡Tu equipo se actualizó con éxito!",
"use_link_to_reset_password": "Utilice el enlace de abajo para restablecer su contraseña",
"hey_there": "Hola,",
"forgot_your_password_calcom": "¿Has olvidado tu contraseña? - Cal.com",
@ -164,6 +172,7 @@
"30min_meeting": "Reunión de 30 min",
"secret_meeting": "Reunión Secreta",
"login_instead": "Iniciar Sesión en su lugar",
"already_have_an_account": "¿Ya tienes una cuenta?",
"create_account": "Crear Cuenta",
"confirm_password": "Confirmar Contraseña",
"create_your_account": "Crea tu Cuenta",
@ -218,9 +227,9 @@
"needs_to_be_confirmed_or_rejected": "Su reserva todavía necesita ser confirmada o rechazada.",
"user_needs_to_confirm_or_reject_booking": "{{user}} aún necesita confirmar o rechazar la reserva.",
"meeting_is_scheduled": "Esta reunión está programada",
"submitted": "Enviada",
"booking_submitted": "Reserva Enviada",
"booking_confirmed": "Reserva Confirmada",
"submitted": "Reserva enviada",
"booking_submitted": "Reserva enviada",
"booking_confirmed": "Reserva confirmada",
"enter_new_password": "Introduce la nueva contraseña que te gustaría para tu cuenta.",
"reset_password": "Restablecer Contraseña",
"change_your_password": "Cambiar Contraseña",
@ -234,6 +243,15 @@
"failed": "Falló",
"password_has_been_reset_login": "Su contraseña ha sido restablecida. Ahora puede iniciar sesión con su nueva contraseña.",
"unexpected_error_try_again": "Ocurrió un error inesperado. Inténtelo de nuevo.",
"sunday_time_error": "Hora inválida del domingo",
"monday_time_error": "Hora inválida del lunes",
"tuesday_time_error": "Hora inválida del martes",
"wednesday_time_error": "Hora inválida del miércoles",
"thursday_time_error": "Hora inválida del jueves",
"friday_time_error": "Hora inválida del viernes",
"saturday_time_error": "Hora inválida del sábado",
"error_end_time_before_start_time": "La hora final no puede ser anterior a la hora de inicio",
"error_end_time_next_day": "La hora final no puede ser mayor de 24 horas",
"back_to_bookings": "Volver a Reservas",
"free_to_pick_another_event_type": "No dude en elegir otro evento en cualquier momento.",
"cancelled": "Cancelado",
@ -426,6 +444,8 @@
"confirm_remove_member": "Sí, Eliminar Miembro",
"remove_member": "Eliminar Miembro",
"manage_your_team": "Administra tu Equipo",
"no_teams": "Todavía no tienes ningún equipo.",
"no_teams_description": "Los equipos permiten que otros reserven eventos compartidos entre tus compañeros de trabajo.",
"submit": "Enviar",
"delete": "Eliminar",
"update": "Actualizar",
@ -433,6 +453,8 @@
"pending": "Pendiente",
"open_options": "Abrir Opciones",
"copy_link": "Copiar Enlace",
"share": "Compartir",
"share_event": "¿Quieres reservar mi Cal o enviarme tu enlace?",
"copy_link_team": "Copiar enlace al equipo",
"leave_team": "Abandonar equipo",
"confirm_leave_team": "Sí, abandonar equipo",
@ -440,6 +462,7 @@
"user_from_team": "{{user}} de {{team}}",
"preview": "Vista Previa",
"link_copied": "¡Enlace Copiado!",
"link_shared": "¡Enlace compartido!",
"title": "Título",
"description": "Descripción",
"quick_video_meeting": "Reunión de Vídeo Rápida.",
@ -454,8 +477,11 @@
"url": "URL",
"hidden": "Oculto",
"readonly": "Sólo Lectura",
"plan_description": "Actualmente estás en el plan {{plan}}.",
"plan_upgrade_invitation": "Actualiza tu cuenta al plan Pro para poder utilizar todas las funciones que ofrecemos.",
"plan_upgrade": "Necesitas actualizar tu plan para tener más de un tipo de evento activo.",
"plan_upgrade_teams": "Necesita actualizar su plan para crear un equipo.",
"plan_upgrade_instructions": "Puedes <1>actualizar aquí</1>.",
"event_types_page_title": "Tipos de Evento",
"event_types_page_subtitle": "Crea eventos para que la gente que invites reserve en tu calendario.",
"new_event_type_btn": "Nuevo Tipo de Evento",
@ -488,10 +514,15 @@
"create_first_team_and_invite_others": "Crea tu primer equipo e invita a otros usuarios a trabajar contigo.",
"create_team_to_get_started": "Crea un equipo para empezar",
"teams": "Equipos",
"team_billing": "Facturación del equipo",
"upgrade_to_flexible_pro_title": "Hemos cambiado la facturación de los equipos",
"upgrade_to_flexible_pro_message": "Hay miembros en tu equipo sin asiento. Actualiza al plan Pro para cubrir los asientos restantes.",
"changed_team_billing_info": "A partir de enero de 2022 cobramos por asiento para los miembros del equipo. Los miembros de tu equipo que tenían el plan Pro de forma gratuita están ahora en una prueba de 14 días. Una vez que caduque su prueba, estos miembros estarán ocultos para tu equipo a menos que actualices ahora.",
"create_manage_teams_collaborative": "Cree y gestiona equipos para utilizar las funciones colaborativas.",
"only_available_on_pro_plan": "Esta función solo está disponible en el plan Pro",
"remove_cal_branding_description": "Para eliminar la marca Cal de sus páginas de reserva, debe actualizar a una cuenta Pro.",
"edit_profile_info_description": "Edite la información de su perfil, que se muestra en su enlace de programación.",
"change_email_tip": "Es posible que tengas que cerrar sesión y volver a entrar para ver el cambio realizado.",
"little_something_about": "Algo sobre ti.",
"profile_updated_successfully": "Perfil Actualizado con Éxito",
"your_user_profile_updated_successfully": "Su perfil de usuario se ha actualizado correctamente.",
@ -514,6 +545,7 @@
"add_attendees": "Añadir Asistentes",
"show_advanced_settings": "Mostrar Opciones Avanzadas",
"event_name": "Nombre del Evento",
"event_name_tooltip": "Nombre que aparecerá en los calendarios",
"meeting_with_user": "Reunión con {USER}",
"additional_inputs": "Campos Adicionales",
"label": "Etiqueta",
@ -558,6 +590,9 @@
"delete_event_type_description": "¿Está seguro de que desea eliminar este tipo de evento? Cualquiera con quien hayas compartido este enlace ya no podrá reservar con él.",
"delete_event_type": "Eliminar Tipo de Evento",
"confirm_delete_event_type": "Sí, Eliminar Tipo de Evento",
"delete_account": "Eliminar cuenta",
"confirm_delete_account": "Sí, eliminar cuenta",
"delete_account_confirmation_message": "¿Estás seguro de que quieres eliminar tu cuenta de Cal.com? Cualquier persona con la que hayas compartido el enlace de tu cuenta ya no podrá reservar con ella y cualquier preferencia que hayas guardado se perderá.",
"integrations": "Integraciones",
"settings": "Ajustes",
"event_type_moved_successfully": "El tipo de evento se ha movido correctamente",
@ -576,6 +611,51 @@
"not_installed": "No instalado",
"error_password_mismatch": "Las contraseñas no coinciden.",
"error_required_field": "Este campo es requerido.",
"status": "Estado",
"team_view_user_availability": "Ver disponibilidad de usuario",
"team_view_user_availability_disabled": "El usuario necesita aceptar la invitación para ver su disponibilidad"
"team_view_user_availability_disabled": "El usuario necesita aceptar la invitación para ver su disponibilidad",
"set_as_away": "Activar estado Ausente",
"set_as_free": "Desactivar estado Ausente",
"user_away": "Este usuario se encuentra Ausente.",
"user_away_description": "La persona a la que estás intentando reservar se ha marcado a sí misma como Ausente, por lo tanto, no acepta nuevas reservas por ahora.",
"meet_people_with_the_same_tokens": "Conoce personas con los mismos tokens",
"only_book_people_and_allow": "Solo reservar y permitir reservas de personas que compartan los mismos tokens, DAO o NFT.",
"saml_config_deleted_successfully": "Configuración SAML eliminada correctamente",
"account_created_with_identity_provider": "Tu cuenta se creó mediante un Proveedor de Identidad.",
"account_managed_by_identity_provider": "Tu cuenta es administrada por {{provider}}",
"account_managed_by_identity_provider_description": "Para cambiar tu correo electrónico, contraseña, habilitar la autenticación de doble factor y más, por favor visita la configuración de tu cuenta de {{provider}}.",
"signin_with_google": "Iniciar sesión con Google",
"signin_with_saml": "Iniciar sesión con SAML",
"saml_configuration": "Configuración SAML",
"delete_saml_configuration": "Eliminar configuración SAML",
"delete_saml_configuration_confirmation_message": "¿Estás seguro de que deseas eliminar la configuración SAML? Los miembros de tu equipo que utilicen el inicio de sesión SAML ya no podrán acceder a Cal.com.",
"confirm_delete_saml_configuration": "Sí, eliminar la configuración SAML",
"saml_not_configured_yet": "SAML no está configurado aún",
"saml_configuration_description": "Pega los metadatos SAML de tu Proveedor de Identidad en el cuadro de texto de abajo para actualizar tu configuración SAML.",
"saml_configuration_placeholder": "Pega los metadatos SAML de tu Proveedor de Identidad aquí",
"saml_configuration_update_failed": "Error al actualizar la configuración SAML",
"saml_configuration_delete_failed": "Error al eliminar la configuración SAML",
"saml_email_required": "Por favor, introduce un correo electrónico para que podamos encontrar tu Proveedor de Identidad SAML",
"you_will_need_to_generate": "Necesitarás generar un token de acceso desde tu antigua herramienta de programación.",
"import": "Importar",
"import_from": "Importar desde",
"access_token": "Token de acceso",
"visit_roadmap": "Hoja de ruta",
"remove": "Eliminar",
"add": "Añadir",
"verify_wallet": "Verificar billetera",
"connect_metamask": "Conectar Metamask",
"create_events_on": "Crear eventos en:",
"missing_license": "Falta la licencia",
"signup_requires": "Licencia comercial requerida",
"signup_requires_description": "Actualmente, Cal.com, Inc. no ofrece una versión gratuita de código abierto de la página de registro. Para recibir acceso completo a los componentes de registro es necesario adquirir una licencia comercial. Para uso personal, recomendamos la Plataforma de Datos Prisma o cualquier otra interfaz Postgres para crear cuentas.",
"next_steps": "Pasos siguientes",
"acquire_commercial_license": "Adquirir una licencia comercial",
"the_infrastructure_plan": "El plan de infraestructura está basado en el uso y tiene descuentos favorables para empresas emergentes.",
"prisma_studio_tip": "Crea una cuenta a través de Prisma Studio",
"prisma_studio_tip_description": "Aprende cómo configurar tu primer usuario",
"contact_sales": "Contactar con Ventas",
"error_404": "Error 404",
"requires_ownership_of_a_token": "Requiere la propiedad de un token perteneciente a la siguiente dirección:",
"example_name": "Juan Pérez"
}

View File

@ -4,11 +4,11 @@
"day_plural": "{{count}} jours",
"upgrade_now": "Mettre à niveau maintenant",
"accept_invitation": "Accepter l'invitation",
"calcom_explained": "Cal.com est lalternative open source Calendly vous permettant de contrôler vos propres données, workflows et apparences.",
"calcom_explained": "Cal.com est lalternative open source à Calendly vous permettant de contrôler vos propres données, votre flux de travail, et l'apparence.",
"have_any_questions": "Vous avez des questions ? Nous sommes là pour vous aider.",
"reset_password_subject": "Cal.com : Instructions pour réinitialiser le mot de passe",
"event_declined_subject": "Refusé : {{eventType}} avec {{name}} le {{date}}",
"event_cancelled_subject": "Anulé : {{eventType}} avec {{name}} le {{date}}",
"event_cancelled_subject": "Annulé : {{eventType}} avec {{name}} le {{date}}",
"event_request_declined": "Votre demande d'événement a été refusée",
"event_request_cancelled": "Votre événement programmé a été annulé",
"organizer": "Organisateur",
@ -58,10 +58,13 @@
"someone_requested_an_event": "Quelqu'un a demandé à programmer un événement sur votre calendrier.",
"someone_requested_password_reset": "Quelqu'un a demandé un lien pour modifier votre mot de passe.",
"password_reset_instructions": "Si vous n'avez pas effectué cette demande, vous pouvez ignorer cet e-mail en toute sécurité et votre mot de passe ne sera pas modifié.",
"event_awaiting_approval_subject": "En attente d'approbation : {{eventType}} avec {{name}} à {{date}}",
"event_still_awaiting_approval": "Un événement attend toujours votre approbation",
"your_meeting_has_been_booked": "Votre réunion a été réservée",
"event_type_has_been_rescheduled_on_time_date": "Votre {{eventType}} avec {{name}} a été reporté à {{time}} ({{timeZone}}) le {{date}}.",
"event_has_been_rescheduled": "Votre évènement a été reprogrammé.",
"hi_user_name": "Bonjour {{userName}}",
"ics_event_title": "{{eventType}} avec {{name}}",
"new_event_subject": "Nouvel événement : {{attendeeName}} - {{date}} - {{eventType}}",
"join_by_entrypoint": "Rejoindre par {{entryPoint}}",
"notes": "Notes",
@ -77,13 +80,22 @@
"meeting_password": "Mot de passe de la réunion",
"meeting_url": "URL de la réunion",
"meeting_request_rejected": "Votre demande de réunion a été refusée",
"rescheduled_event_type_subject": "Reporté : {{eventType}} avec {{name}} le {{date}}",
"rejected_event_type_with_organizer": "Refusé : {{eventType}} avec {{organizer}} le {{date}}",
"hi": "Bonjour",
"join_team": "Rejoindre l'équipe",
"manage_this_team": "Gérer cette équipe",
"team_info": "Informations sur l'équipe",
"request_another_invitation_email": "Si vous préférez ne pas utiliser {{toEmail}} comme votre adresse e-mail Cal.com ou si vous avez déjà un compte Cal.com, veuillez demander une autre invitation à cette adresse.",
"you_have_been_invited": "Vous avez été invité à rejoindre l'équipe {{teamName}}",
"user_invited_you": "{{user}} vous a invité à rejoindre l'équipe {{teamName}}",
"hidden_team_member_title": "Vous êtes caché dans cette équipe",
"hidden_team_member_message": "Votre place n'est pas payée, passez à la version Pro ou faites savoir au propriétaire de l'équipe qu'il peut payer votre place.",
"hidden_team_owner_message": "Vous avez besoin d'un compte pro pour utiliser les équipes, vous êtes caché jusqu'à ce que vous mettiez à niveau.",
"link_expires": "p.s. Il expire dans {{expiresIn}} heures.",
"upgrade_to_per_seat": "Mise à niveau vers la place",
"team_upgrade_seats_details": "Parmi les {{memberCount}} membres de votre équipe, {{unpaidCount}} place(s) sont non payées. À {{seatPrice}}$/m par place, le coût total estimé de votre adhésion est de {{totalCost}}$/m.",
"team_upgraded_successfully": "Votre équipe a été mise à niveau avec succès !",
"use_link_to_reset_password": "Utilisez le lien ci-dessous pour réinitialiser votre mot de passe",
"hey_there": "Salut,",
"forgot_your_password_calcom": "Mot de passe oublié ? - Cal.com",
@ -135,6 +147,7 @@
"rejected": "Refusé",
"unconfirmed": "Non confirmé",
"guests": "Invités",
"guest": "Invité",
"web_conferencing_details_to_follow": "Les détails de la conférence Web à suivre.",
"the_username": "Le nom d'utilisateur",
"username": "Nom d'utilisateur",
@ -159,6 +172,7 @@
"30min_meeting": "Réunion de 30 min",
"secret_meeting": "Réunion secrète",
"login_instead": "Se connecter à la place",
"already_have_an_account": "Vous avez déjà un compte ?",
"create_account": "Créer un compte",
"confirm_password": "Confirmer le mot de passe",
"create_your_account": "Créez votre compte",
@ -229,6 +243,15 @@
"failed": "Échoué",
"password_has_been_reset_login": "Votre mot de passe a été réinitialisé. Vous pouvez désormais vous connecter avec votre nouveau mot de passe.",
"unexpected_error_try_again": "Une erreur inattendue s'est produite. Veuillez réessayer.",
"sunday_time_error": "Heure non valide le dimanche",
"monday_time_error": "Heure non valide le lundi",
"tuesday_time_error": "Heure non valide le mardi",
"wednesday_time_error": "Heure non valide le mercredi",
"thursday_time_error": "Heure non valide le jeudi",
"friday_time_error": "Heure non valide le vendredi",
"saturday_time_error": "Heure non valide le samedi",
"error_end_time_before_start_time": "L'heure de fin ne peut être antérieure à l'heure de début",
"error_end_time_next_day": "La date de fin ne peut pas être supérieure à 24 heures",
"back_to_bookings": "Retour aux réservations",
"free_to_pick_another_event_type": "N'hésitez pas à choisir un autre événement à tout moment.",
"cancelled": "Annulé",
@ -308,6 +331,7 @@
"no_event_types_have_been_setup": "Cet utilisateur n'a pas encore configuré de types d'événements.",
"edit_logo": "Modifier le logo",
"upload_a_logo": "Soumettre un logo",
"remove_logo": "Supprimer le logo",
"enable": "Activer",
"code": "Code",
"code_is_incorrect": "Code incorrect.",
@ -384,6 +408,7 @@
"email_or_username": "E-mail ou identifiant",
"send_invite_email": "Envoyer un e-mail d'invitation",
"role": "Rôle",
"edit_role": "Modifier le rôle",
"edit_team": "Modifier l'équipe",
"reject": "Refuser",
"accept": "Accepter",
@ -399,10 +424,12 @@
"members": "Membres",
"member": "Membre",
"owner": "Propriétaire",
"admin": "Admin.",
"new_member": "Nouveau membre",
"invite": "Inviter",
"invite_new_member": "Inviter un nouveau membre",
"invite_new_team_member": "Invitez quelqu'un à rejoindre votre équipe.",
"change_member_role": "Changer le rôle du membre de l'équipe",
"disable_cal_branding": "Désactiver l'image de marque de Cal.com",
"disable_cal_branding_description": "Masquer toutes les marques de Cal.com de vos pages publiques.",
"danger_zone": "Zone dangereuse",
@ -417,6 +444,8 @@
"confirm_remove_member": "Oui, retirer le membre",
"remove_member": "Supprimer le membre",
"manage_your_team": "Gérez votre équipe",
"no_teams": "Vous n'avez pas encore d'équipe.",
"no_teams_description": "Les équipes permettent aux autres de réserver des événements partagés entre vos collègues.",
"submit": "Envoyer",
"delete": "Supprimer",
"update": "Mettre à jour",
@ -424,8 +453,16 @@
"pending": "En attente",
"open_options": "Ouvrir les options",
"copy_link": "Copier le lien vers l'événement",
"share": "Partager",
"share_event": "Voulez-vous réserver mon cal ou m'envoyer votre lien ?",
"copy_link_team": "Copier le lien vers l'équipe",
"leave_team": "Quitter l'équipe",
"confirm_leave_team": "Oui, quitter l'équipe",
"leave_team_confirmation_message": "Voulez-vous vraiment quitter cette équipe ? Vous ne pourrez plus l'utiliser pour réserver.",
"user_from_team": "{{user}} de {{team}}",
"preview": "Aperçu",
"link_copied": "Le lien a été copié !",
"link_shared": "Lien partagé !",
"title": "Titre",
"description": "Description",
"quick_video_meeting": "Une courte réunion vidéo.",
@ -440,7 +477,11 @@
"url": "URL",
"hidden": "Caché",
"readonly": "Lire seulement",
"plan_description": "Vous disposez actuellement de la formule {{plan}}.",
"plan_upgrade_invitation": "Mettez à niveau votre compte vers l'offre pro pour débloquer toutes les fonctionnalités que nous avons à proposer.",
"plan_upgrade": "Vous devez mettre à niveau votre plan pour avoir plus d'un type d'événement actif.",
"plan_upgrade_teams": "Vous devez mettre à niveau votre formule pour créer une équipe.",
"plan_upgrade_instructions": "Vous pouvez <1>mettre à niveau ici</1>.",
"event_types_page_title": "Types dévénement",
"event_types_page_subtitle": "Créez des événements à partager pour que les gens puissent les réserver sur votre calendrier.",
"new_event_type_btn": "Nouveau type d'événement",
@ -453,6 +494,8 @@
"event_type_created_successfully": "Type d'événement {{eventTypeTitle}} créé avec succès",
"event_type_updated_successfully": "Type d'événement {{eventTypeTitle}} mis à jour avec succès",
"event_type_deleted_successfully": "Type d'événement supprimé avec succès",
"web3_metamask_added": "Metamask ajouté avec succès",
"web3_metamask_disconnected": "Metamask déconnecté avec succès",
"hours": "Heures",
"your_email": "Votre adresse e-mail",
"change_avatar": "Changer d'avatar",
@ -471,10 +514,15 @@
"create_first_team_and_invite_others": "Créez votre première équipe et invitez d'autres utilisateurs à travailler avec vous.",
"create_team_to_get_started": "Créer une équipe pour commencer",
"teams": "Équipes",
"team_billing": "Facturation d'équipe",
"upgrade_to_flexible_pro_title": "Nous avons modifié la facturation pour les équipes",
"upgrade_to_flexible_pro_message": "Des membres dans votre équipe n'ont pas de place. Mettez à niveau votre offre pro pour couvrir les places manquantes.",
"changed_team_billing_info": "Depuis janvier 2022, nous facturons chaque place aux membres de l'équipe. Les membres de votre équipe qui ont eu la version Pro gratuitement disposent maintenant d'un essai de 14 jours. Une fois leur période d'essai expirée, ces membres seront cachés pour votre équipe, sauf si vous mettez à niveau maintenant.",
"create_manage_teams_collaborative": "Créer et gérer des équipes pour utiliser les fonctionnalités de collaboration.",
"only_available_on_pro_plan": "Cette fonctionnalité n'est disponible que dans l'offre Pro",
"remove_cal_branding_description": "Pour retirer l'image de marque de Cal de vos pages de réservation, vous devez passer à un compte Pro.",
"edit_profile_info_description": "Modifiez les informations de votre profil, qui apparaissent sur votre lien de réservation.",
"change_email_tip": "Vous devrez peut-être vous déconnecter et vous reconnecter pour que le changement prenne effet.",
"little_something_about": "Quelque chose à propos de vous.",
"profile_updated_successfully": "Profil mis à jour avec succès",
"your_user_profile_updated_successfully": "Votre profil d'utilisateur a été mis à jour avec succès.",
@ -497,6 +545,7 @@
"add_attendees": "Ajouter des participant·es",
"show_advanced_settings": "Afficher les paramètres avancés",
"event_name": "Nom de l'événement",
"event_name_tooltip": "Le nom qui apparaîtra dans les calendriers",
"meeting_with_user": "Rendez-vous avec {USER}",
"additional_inputs": "Entrées additionnelles",
"label": "Libellé",
@ -536,9 +585,14 @@
"new_event_type_to_book_description": "Créer un nouveau type dévénement pour que les personnes puisse réserver des créneaux.",
"length": "Durée",
"minimum_booking_notice": "Avis de réservation minimum",
"slot_interval": "Intervalles de créneaux horaires",
"slot_interval_default": "Utiliser la durée de l'événement (par défaut)",
"delete_event_type_description": "Voulez-vous vraiment supprimer ce type d'événement ? Toute personne avec qui vous avez partagé ce lien ne pourra plus réserver en l'utilisant.",
"delete_event_type": "Supprimer le type d'événement",
"confirm_delete_event_type": "Oui, supprimer le type d'événement",
"delete_account": "Supprimer le compte",
"confirm_delete_account": "Oui, supprimer le compte",
"delete_account_confirmation_message": "Êtes-vous sûr de vouloir supprimer votre compte Cal.com ? Toute personne avec qui vous avez partagé le lien de votre compte ne pourra plus réserver en utilisant ce lien et toutes les préférences que vous avez enregistrées seront perdues.",
"integrations": "Intégrations",
"settings": "Paramètres",
"event_type_moved_successfully": "Le type d'évènement a été déplacé avec succès",
@ -550,11 +604,58 @@
"connect_your_favourite_apps": "Connectez vos applications favorites.",
"automation": "Automatisation",
"configure_how_your_event_types_interact": "Configurez la manière dont vos types d'événements doivent interagir avec vos calendriers.",
"select_destination_calendar": "Créer des événements le",
"connect_an_additional_calendar": "Connecter un calendrier supplémentaire",
"conferencing": "Conférence",
"calendar": "Calendrier",
"not_installed": "Non installé",
"error_password_mismatch": "Les mots de passe ne correspondent pas.",
"error_required_field": "Ce champ est requis.",
"status": "Statut"
"status": "Statut",
"team_view_user_availability": "Voir la disponibilité de l'utilisateur",
"team_view_user_availability_disabled": "L'utilisateur doit accepter une invitation pour voir la disponibilité",
"set_as_away": "Se définir comme absent",
"set_as_free": "Désactiver le statut absent",
"user_away": "Cet utilisateur est actuellement absent.",
"user_away_description": "La personne pour laquelle vous essayez de réserver est absente, et n'accepte donc pas de nouvelles réservations.",
"meet_people_with_the_same_tokens": "Rencontrez des personnes avec les mêmes jetons",
"only_book_people_and_allow": "Réservez et autorisez uniquement les réservations de personnes qui partagent les mêmes jetons, DAO ou NFT.",
"saml_config_deleted_successfully": "Configuration SAML supprimée avec succès",
"account_created_with_identity_provider": "Votre compte a été créé à l'aide d'un fournisseur d'identité.",
"account_managed_by_identity_provider": "Votre compte est géré par {{provider}}",
"account_managed_by_identity_provider_description": "Pour modifier votre adresse e-mail et/ou votre mot de passe, activez l'authentification à deux facteurs et plus, veuillez consulter les paramètres de votre compte {{provider}}.",
"signin_with_google": "Se connecter avec Google",
"signin_with_saml": "Se connecter avec SAML",
"saml_configuration": "Configuration SAML",
"delete_saml_configuration": "Supprimer la configuration SAML",
"delete_saml_configuration_confirmation_message": "Êtes-vous sûr de vouloir supprimer la configuration SAML ? Les membres de votre équipe qui utilisent la connexion SAML ne pourront plus accéder à Cal.com.",
"confirm_delete_saml_configuration": "Oui, supprimer la configuration SAML",
"saml_not_configured_yet": "SAML non configuré pour l'instant",
"saml_configuration_description": "Veuillez coller les métadonnées SAML de votre fournisseur d'identité dans la zone de texte ci-dessous pour mettre à jour votre configuration SAML.",
"saml_configuration_placeholder": "Veuillez coller les métadonnées SAML de votre fournisseur d'identité ici",
"saml_configuration_update_failed": "La mise à jour de la configuration SAML a échoué",
"saml_configuration_delete_failed": "La suppression de la configuration SAML a échoué",
"saml_email_required": "Veuillez saisir une adresse e-mail pour que nous puissions trouver votre fournisseur d'identité SAML",
"you_will_need_to_generate": "Vous devrez générer un jeton d'accès à partir de votre ancien outil de planification.",
"import": "Importer",
"import_from": "Importer depuis",
"access_token": "Jeton d'accès",
"visit_roadmap": "Feuille de route",
"remove": "Supprimer",
"add": "Ajouter",
"verify_wallet": "Vérifier le portefeuille",
"connect_metamask": "Connecter Metamask",
"create_events_on": "Créer des événements le :",
"missing_license": "Licence manquante",
"signup_requires": "Licence commerciale requise",
"signup_requires_description": "Cal.com, Inc. ne propose pas actuellement de version open source gratuite de la page d'inscription. Pour obtenir un accès complet aux composants d'inscription, vous devez acquérir une licence commerciale. Pour une utilisation personnelle, nous recommandons la Plateforme de Données Prisma ou toute autre interface Postgres pour créer des comptes.",
"next_steps": "Prochaines étapes",
"acquire_commercial_license": "Obtenir une licence commerciale",
"the_infrastructure_plan": "L'offre d'infrastructure est basée sur l'utilisation et comporte des rabais favorables aux start-ups.",
"prisma_studio_tip": "Créer un compte via Prisma Studio",
"prisma_studio_tip_description": "Apprenez comment configurer votre premier utilisateur",
"contact_sales": "Contacter les ventes",
"error_404": "Erreur 404",
"requires_ownership_of_a_token": "Nécessite la propriété d'un jeton appartenant à l'adresse suivante :",
"example_name": "Jean Dupont"
}

View File

@ -1,6 +1,6 @@
{
"trial_days_left": "Hai solo $t(day, {\"count\": {{days}} }) rimasti al piano PRO",
"day": "{{count}} giorni",
"trial_days_left": "Ti rimangono $t(day, {\"count\": {{days}} }) di prova con il piano PRO",
"day": "{{count}} giorno",
"day_plural": "{{count}} giorni",
"upgrade_now": "Cambia piano",
"accept_invitation": "Accetta Invito",
@ -13,11 +13,11 @@
"event_request_cancelled": "Il tuo evento programmato è stato cancellato",
"organizer": "Organizzatore",
"need_to_reschedule_or_cancel": "È necessario riprogrammare o annullare?",
"cancellation_reason": "Motivo della cancellazione",
"cancellation_reason_placeholder": "Perché stai cancellando? (opzionale)",
"cancellation_reason": "Motivo dell'annullamento",
"cancellation_reason_placeholder": "Perché stai annullando? (facoltativo)",
"rejection_reason": "Motivo del rifiuto",
"rejection_reason_title": "Rifiutare la richiesta di prenotazione?",
"rejection_reason_description": "Sei sicuro di voler rifiutare la prenotazione? Faremo sapere alla persona che ha cercato di prenotare. Puoi fornire un motivo qui sotto.",
"rejection_reason_description": "Sei sicuro di voler rifiutare la prenotazione? Informeremo la persona che ha cercato di prenotare. Puoi indicare il motivo qui sotto.",
"rejection_confirmation": "Rifiuta la prenotazione",
"manage_this_event": "Gestisci questo evento",
"your_event_has_been_scheduled": "Il tuo evento è stato programmato",
@ -89,13 +89,13 @@
"request_another_invitation_email": "Se preferisci non usare {{toEmail}} come email Cal.com o già hai un account Cal.com, per favore richiedi un altro invito a quella email.",
"you_have_been_invited": "Sei stato invitato ad unirti al team {{teamName}}",
"user_invited_you": "{{user}} ti ha invitato a unirti alla squadra {{team}} su Cal.com",
"hidden_team_member_title": "Sei nascosto da questo team",
"hidden_team_member_message": "Il tuo posto non è pagato, passa a Pro o fai sapere al proprietario del team che può pagare per il tuo posto.",
"hidden_team_owner_message": "Hai bisogno di un account pro per utilizzare i team, sei nascosto fino a quando non si aggiorna.",
"hidden_team_member_title": "Sei nascosto in questo team",
"hidden_team_member_message": "Il tuo posto non è pagato. Passa a Pro oppure informa il proprietario del team che può pagare il tuo posto.",
"hidden_team_owner_message": "Per utilizzare i team ti occorre un account Pro. Sarai nascosto finché non cambierai piano.",
"link_expires": "p.s. Scade tra {{expiresIn}} ore.",
"upgrade_to_per_seat": "Passa a Per-Post",
"team_upgrade_seats_details": "Dei {{memberCount}} membri del tuo team, {{unpaidCount}} posti non sono stati pagati. A ${{seatPrice}}/m per posto il costo totale stimato della tua adesione è di ${{totalCost}}/m.",
"team_upgraded_successfully": "Il tuo team è stato aggiornato con successo!",
"upgrade_to_per_seat": "Passa al piano Per-posto",
"team_upgrade_seats_details": "Per i {{memberCount}} membri del tuo team, {{unpaidCount}} posti non sono pagati. A € {{seatPrice}}/m per posto, il costo totale stimato della tua adesione è di € {{totalCost}}/m.",
"team_upgraded_successfully": "Il tuo team è stato aggiornato!",
"use_link_to_reset_password": "Usa il link qui sotto per reimpostare la tua password",
"hey_there": "Ciao,",
"forgot_your_password_calcom": "Hai dimenticato la password? - Cal.com",
@ -113,7 +113,7 @@
"webhook_created_successfully": "Webhook creato con successo!",
"webhook_updated_successfully": "Webhook aggiornato con successo!",
"webhook_removed_successfully": "Webhook rimosso con successo!",
"payload_template": "Template Di Payload",
"payload_template": "Modello di Payload",
"dismiss": "Ignora",
"no_data_yet": "Ancora nessun dato",
"ping_test": "Test Ping",
@ -250,8 +250,8 @@
"thursday_time_error": "Ora non valida il giovedì",
"friday_time_error": "Ora non valida il venerdì",
"saturday_time_error": "Ora non valida il sabato",
"error_end_time_before_start_time": "L'ora di fine non può essere prima dell'orario di inizio",
"error_end_time_next_day": "L'ora di fine non può essere maggiore di 24 ore",
"error_end_time_before_start_time": "L'ora di conclusione non può precedere l'ora di inizio",
"error_end_time_next_day": "L'ora di conclusione non può essere maggiore di 24 ore",
"back_to_bookings": "Torna alle prenotazioni",
"free_to_pick_another_event_type": "Sentiti libero di scegliere un altro evento in qualsiasi momento.",
"cancelled": "Annullato",
@ -444,8 +444,8 @@
"confirm_remove_member": "Sì, rimuovi membro",
"remove_member": "Rimuovi membro",
"manage_your_team": "Gestisci il tuo team",
"no_teams": "Non hai ancora nessun team.",
"no_teams_description": "I team permettono ad altri di prenotare eventi condivisi tra i tuoi collaboratori.",
"no_teams": "Non hai ancora alcun team.",
"no_teams_description": "I team permettono ad altri di prenotare eventi in condivisione con i tuoi collaboratori.",
"submit": "Invia",
"delete": "Elimina",
"update": "Aggiorna",
@ -454,7 +454,7 @@
"open_options": "Apri opzioni",
"copy_link": "Copia link all'evento",
"share": "Condividi",
"share_event": "Ti dispiacerebbe prenotare il mio cal o inviarmi il tuo link?",
"share_event": "Ti dispiacerebbe prenotare sul mio calendario o inviarmi il tuo link?",
"copy_link_team": "Copia il link al team",
"leave_team": "Lascia il team",
"confirm_leave_team": "Sì, lascio il team",
@ -477,11 +477,11 @@
"url": "URL",
"hidden": "Nascosto",
"readonly": "Sola lettura",
"plan_description": "Al momento sei sul piano {{plan}}.",
"plan_upgrade_invitation": "Aggiorna il tuo account al piano pro per sbloccare tutte le funzionalità che abbiamo da offrire.",
"plan_description": "Al momento sei nel piano {{plan}}.",
"plan_upgrade_invitation": "Passa al piano Pro per sbloccare tutte le funzionalità che abbiamo da offrire.",
"plan_upgrade": "È necessario aggiornare il piano per avere più di un tipo di evento attivo.",
"plan_upgrade_teams": "Devi aggiornare il tuo piano per creare un team.",
"plan_upgrade_instructions": "Puoi aggiornare <1>qui</1>.",
"plan_upgrade_instructions": "Puoi <1>cambiare piano qui</1>.",
"event_types_page_title": "Tipo di Evento",
"event_types_page_subtitle": "Crea eventi da condividere per le persone che prenotano sul tuo calendario.",
"new_event_type_btn": "Nuovo tipo di evento",
@ -494,8 +494,8 @@
"event_type_created_successfully": "{{eventTypeTitle}} tipo di evento creato con successo",
"event_type_updated_successfully": "{{eventTypeTitle}} tipo di evento aggiornato con successo",
"event_type_deleted_successfully": "Tipo di evento eliminato con successo",
"web3_metamask_added": "Metamask aggiunto con successo",
"web3_metamask_disconnected": "Metamask disconnesso con successo",
"web3_metamask_added": "Metamask aggiunto",
"web3_metamask_disconnected": "Metamask disconnesso",
"hours": "Ore",
"your_email": "La Tua Email",
"change_avatar": "Cambia Avatar",
@ -514,15 +514,15 @@
"create_first_team_and_invite_others": "Crea il tuo primo team e invita altri utenti a lavorare insieme a te.",
"create_team_to_get_started": "Crea una squadra per iniziare",
"teams": "Team",
"team_billing": "Fatturazione Team",
"team_billing": "Fatturazione team",
"upgrade_to_flexible_pro_title": "Abbiamo cambiato la fatturazione per i team",
"upgrade_to_flexible_pro_message": "Ci sono membri del tuo team senza posto. Aggiorna il tuo piano pro per coprire i posti mancanti.",
"changed_team_billing_info": "A partire da gennaio 2022 ci addebitiamo su base per posto per i membri del team. I membri del tuo team che hanno avuto Pro gratis sono ora in una prova di 14 giorni. Una volta scaduta la loro prova, questi membri saranno nascosti dal tuo team a meno che tu non aggiorni ora.",
"upgrade_to_flexible_pro_message": "Alcuni membri del tuo team non hanno un posto. Aggiorna il tuo piano Pro per coprire i posti mancanti.",
"changed_team_billing_info": "A partire da gennaio 2022, applichiamo una tariffazione in base ai posti per i membri dei team. I membri del tuo team che utilizzavano Pro gratuitamente dispongono ora di un periodo di prova di 14 giorni. Terminata la prova, questi membri saranno nascosti dal tuo team, se non aggiornerai il piano.",
"create_manage_teams_collaborative": "Crea e gestisci team per utilizzare funzionalità di collaborazione.",
"only_available_on_pro_plan": "Questa funzione è disponibile solo nel piano Pro",
"remove_cal_branding_description": "Al fine di rimuovere il marchio Cal dalle pagine di prenotazione, è necessario acquistare un account Pro.",
"edit_profile_info_description": "Modifica le informazioni del tuo profilo, che verranno visualizzate sul tuo link di pianificazione.",
"change_email_tip": "Potrebbe essere necessario disconnettersi e tornare per vedere se il cambiamento ha effetto.",
"change_email_tip": "Perché la modifica abbia effetto, potrebbe essere necessario disconnettersi e accedere nuovamente.",
"little_something_about": "Qualcosa su di te.",
"profile_updated_successfully": "Profilo aggiornato con successo",
"your_user_profile_updated_successfully": "Il tuo profilo utente è stato aggiornato con successo.",
@ -592,7 +592,7 @@
"confirm_delete_event_type": "Sì, elimina tipo evento",
"delete_account": "Elimina account",
"confirm_delete_account": "Sì, elimina account",
"delete_account_confirmation_message": "Sei sicuro di voler eliminare il tuo account Cal.com? Chiunque abbia condiviso il link del tuo account non sarà più in grado di prenotare utilizzandolo e le preferenze che hai salvato andranno perse.",
"delete_account_confirmation_message": "Sei sicuro di voler eliminare il tuo account Cal.com? Chiunque abbia il link del tuo account non potrà più utilizzarlo per prenotare e le preferenze che hai salvato andranno perse.",
"integrations": "Integrazioni",
"settings": "Impostazioni",
"event_type_moved_successfully": "Il tipo di evento è stato spostato con successo",
@ -614,29 +614,29 @@
"status": "Stato",
"team_view_user_availability": "Visualizza la disponibilità degli utenti",
"team_view_user_availability_disabled": "L'utente deve accettare l'invito per visualizzare la disponibilità",
"set_as_away": "Mettiti via come assente",
"set_as_free": "Disabilita lo stato assente",
"set_as_away": "Segnalati assente",
"set_as_free": "Disabilita lo stato \"assente\"",
"user_away": "Questo utente è attualmente assente.",
"user_away_description": "La persona che stai cercando di prenotare si è messa assente, e quindi non sta accettando nuove prenotazioni.",
"user_away_description": "La persona che stai cercando di prenotare si è segnalata assente, quindi non accetta nuove prenotazioni.",
"meet_people_with_the_same_tokens": "Incontra persone con gli stessi token",
"only_book_people_and_allow": "Prenota e consenti le prenotazioni solo da persone che condividono gli stessi token, DAO o NFT.",
"saml_config_deleted_successfully": "Configurazione SAML eliminata con successo",
"account_created_with_identity_provider": "Il tuo account è stato creato utilizzando un Identity Provider.",
"only_book_people_and_allow": "Prenota e accetta prenotazioni solo con persone che condividono gli stessi token, DAO o NFT.",
"saml_config_deleted_successfully": "Configurazione SAML eliminata",
"account_created_with_identity_provider": "Il tuo account è stato creato utilizzando un provider di identità.",
"account_managed_by_identity_provider": "Il tuo account è gestito da {{provider}}",
"account_managed_by_identity_provider_description": "Per modificare la tua email, password, abilita l'autenticazione a due fattori e altro, visita le impostazioni dell'account {{provider}}.",
"account_managed_by_identity_provider_description": "Per modificare la tua email o la tua password, per abilitare l'autenticazione a due fattori e altro ancora, consulta le impostazioni del tuo account {{provider}}.",
"signin_with_google": "Accedi con Google",
"signin_with_saml": "Accedi con SAML",
"saml_configuration": "Configurazione SAML",
"delete_saml_configuration": "Elimina configurazione SAML",
"delete_saml_configuration_confirmation_message": "Sei sicuro di voler eliminare la configurazione SAML? I membri del tuo team che utilizzano l'accesso SAML non saranno più in grado di accedere a Cal.com.",
"confirm_delete_saml_configuration": "Elimina configurazione SAML",
"confirm_delete_saml_configuration": "Sì, elimina configurazione SAML",
"saml_not_configured_yet": "SAML non ancora configurato",
"saml_configuration_description": "Per favore incolla i metadata SAML dal tuo Identity Provider nella casella di testo qui sotto per aggiornare la configurazione SAML.",
"saml_configuration_placeholder": "Per favore incolla i metadata SAML dal tuo Identity Provider qui",
"saml_configuration_description": "Per aggiornare la configurazione SAML, incolla nella casella sottostante i metadati SAML forniti dal tuo provider di identità.",
"saml_configuration_placeholder": "Incolla qui i metadati SAML forniti dal tuo provider di identità",
"saml_configuration_update_failed": "Aggiornamento configurazione SAML non riuscito",
"saml_configuration_delete_failed": "Aggiornamento configurazione SAML non riuscito",
"saml_email_required": "Inserisci un'email in modo da poter trovare il tuo provider di identità SAML",
"you_will_need_to_generate": "Dovrai generare un token di accesso dal tuo vecchio strumento di pianificazione.",
"saml_configuration_delete_failed": "Eliminazione configurazione SAML non riuscita",
"saml_email_required": "Inserisci un indirizzo email che consenta di individuare il tuo provider di identità SAML",
"you_will_need_to_generate": "Dovrai generare un token di accesso con il tuo vecchio strumento di pianificazione.",
"import": "Importa",
"import_from": "Importa da",
"access_token": "Token di accesso",
@ -646,16 +646,16 @@
"verify_wallet": "Verifica Wallet",
"connect_metamask": "Connetti Metamask",
"create_events_on": "Crea eventi su:",
"missing_license": "Licenza Mancante",
"signup_requires": "Licenza commerciale richiesta",
"signup_requires_description": "Cal.com, Inc. attualmente non offre una versione open source gratuita nella pagina di iscrizione. Per ricevere l'accesso completo ai componenti di registrazione è necessario acquisire una licenza commerciale. Per uso personale consigliamo la Piattaforma dati Prisma o qualsiasi altra interfaccia Postgres per creare account.",
"missing_license": "Licenza mancante",
"signup_requires": "È necessaria una licenza commerciale",
"signup_requires_description": "Cal.com attualmente non offre una versione open source gratuita della pagina di registrazione. Per avere accesso completo ai componenti di registrazione è necessario acquisire una licenza commerciale. Per un uso personale consigliamo Prisma Data Platform o qualsiasi altra interfaccia Postgres per creare account.",
"next_steps": "Prossimi Passi",
"acquire_commercial_license": "Acquista una licenza commerciale",
"the_infrastructure_plan": "Il piano infrastrutturale è basato sull'utilizzo e ha sconti favorevoli per le startup.",
"the_infrastructure_plan": "Il piano infrastrutturale è basato sull'utilizzo e ha sconti rivolti alle startup.",
"prisma_studio_tip": "Crea un account tramite Prisma Studio",
"prisma_studio_tip_description": "Scopri come configurare il tuo primo utente",
"contact_sales": "Contatta Vendite",
"contact_sales": "Contatta reparto commerciale",
"error_404": "Errore 404",
"requires_ownership_of_a_token": "Richiede la proprietà di un token appartenente al seguente indirizzo:",
"requires_ownership_of_a_token": "Richiede il possesso di un token appartenente al seguente indirizzo:",
"example_name": "Paolo Rossi"
}

View File

@ -1,26 +1,26 @@
{
"trial_days_left": "PROトライアル版に $t(day, {\"count\": {{days}} }) があります",
"trial_days_left": "PRO トライアル版は残り $t(day, {\"count\": {{days}} }) です",
"day": "{{count}} 日",
"day_plural": "{{count}} 日間",
"upgrade_now": "今すぐアップグレード",
"accept_invitation": "招待を承",
"calcom_explained": "カレンダーの代わりとして、Cal.comは、所有するデータ、ワークフロー、イベントへの出席状況などを管理できます。",
"have_any_questions": "ご不明な点がございますか?お気軽にお問い合わせください",
"reset_password_subject": "Cal.com: パスワードリセット手順",
"event_declined_subject": "拒否: {{date}} 、{{name}} による{{eventType}}",
"event_cancelled_subject": "キャンセルしました: {{date}}、 {{name}} による {{eventType}}",
"event_request_declined": "イベントリクエストが却下されました",
"event_request_cancelled": "予定がキャンセルになりました",
"accept_invitation": "招待を承諾する",
"calcom_explained": "Cal.com は、Calendly の代替となるオープンソースのツールです。データ、ワークフロー、外観などを自分自身の手でコントロールすることができます。",
"have_any_questions": "ご不明な点があれば、お気軽にお問い合わせください。",
"reset_password_subject": "Cal.com: パスワードリセット手順",
"event_declined_subject": "拒否されました: {{name}} による {{eventType}}、{{date}}",
"event_cancelled_subject": "キャンセルされました: {{name}} による {{eventType}}、{{date}}",
"event_request_declined": "イベントのリクエストが拒否されました",
"event_request_cancelled": "スケジュールされていた予定がキャンセルされました",
"organizer": "主催者",
"need_to_reschedule_or_cancel": "スケジュール変更またはキャンセルが必要ですか?",
"cancellation_reason": "キャンセル理由",
"cancellation_reason_placeholder": "キャンセルする理由 (オプション)",
"rejection_reason": "却下の理由",
"rejection_reason_title": "予約リクエストを却下しますか?",
"rejection_reason_description": "この予約を却下してもよろしいですか?予約しようとした人に、以下の理由を提供できます。",
"rejection_confirmation": "予約を却下する",
"manage_this_event": "このイベントを管理",
"your_event_has_been_scheduled": "イベントが予定されています",
"need_to_reschedule_or_cancel": "スケジュールまたはキャンセルが必要ですか?",
"cancellation_reason": "キャンセル理由",
"cancellation_reason_placeholder": "なぜキャンセルが必要なのですか?(オプション)",
"rejection_reason": "拒否の理由",
"rejection_reason_title": "予約のリクエストを拒否しますか?",
"rejection_reason_description": "この予約を本当に拒否してよろしいですか?予約を試みたユーザーに対して通知を行います。以下に理由をご記入いただけます。",
"rejection_confirmation": "予約を拒否する",
"manage_this_event": "このイベントを管理する",
"your_event_has_been_scheduled": "イベントがスケジュールされました",
"accept_our_license": ".env 変数 <1>NEXT_PUBLIC_LICENSE_CONSENT</1> を '{{agree}} ' に変更することで、ライセンスを承認します。",
"remove_banner_instructions": "このバナーを削除するには、.envファイルを開き、<1>NEXT_PUBLIC_LICENSE_CONSENT</1>変数を「{{agree}}」に変更してください",
"error_message": "エラーメッセージ: '{{errorMessage}}'",
@ -28,7 +28,7 @@
"refund_failed": "{{userName}} の {{date}} の {{eventType}} に関するイベントの返金に失敗しました。",
"check_with_provider_and_user": "支払い業者に確認し、 {{userName}} の処理方法をご確認ください。",
"a_refund_failed": "返金に失敗しました",
"awaiting_payment_subject": "お支払いを待っています: {{date}} に開催される {{name}} の {{eventType}}",
"awaiting_payment_subject": "お支払いを待機しています: {{name}} による {{eventType}}、{{date}}",
"meeting_awaiting_payment": "会議の支払いを待っています",
"help": "ヘルプ",
"price": "料金",
@ -52,19 +52,19 @@
"integration_meeting_id": "{{integrationName}} ミーティングID: {{meetingId}}",
"confirmed_event_type_subject": "確認済: {{name}} の {{date}} の {{eventType}}",
"new_event_request": "新しいイベントのリクエスト: {{attendeeName}} - {{date}} - {{eventType}}",
"confirm_or_reject_request": "リクエストを承認または却下する",
"confirm_or_reject_request": "リクエストを承認または拒否する",
"check_bookings_page_to_confirm_or_reject": "予約ページを確認し、予約を確認または拒否してください。",
"event_awaiting_approval": "新しいイベントがあなたの承認を待っています",
"someone_requested_an_event": "誰かがあなたのカレンダーにイベントの追加をリクエストしています。",
"someone_requested_password_reset": "誰かがあなたのパスワードを変更するためのリンクをリクエストしました。",
"password_reset_instructions": "このメールをリクエストしていない場合は、このメールを無視してもパスワードは変更されません。",
"event_awaiting_approval_subject": "承認待ち: {{date}} に開催される {{name}} による {{eventType}}",
"event_still_awaiting_approval": "イベントはあなたの承認を待っています",
"someone_requested_an_event": "別のユーザーがあなたのカレンダーへのイベントの追加をリクエストしています。",
"someone_requested_password_reset": "別のユーザーがあなたのパスワードを変更するためのリンクをリクエストしています。",
"password_reset_instructions": "リクエストしていない場合には、このメールを無視していただいて構いません。これによりあなたのパスワードが変更されることはありません。",
"event_awaiting_approval_subject": "承認を待機しています: {{name}} による {{eventType}}、{{date}}",
"event_still_awaiting_approval": "承認待機中のイベントがあります",
"your_meeting_has_been_booked": "ミーティングが予約されました",
"event_type_has_been_rescheduled_on_time_date": "{{name}} と出席する {{eventType}} は ({{timeZone}}) の {{date}} {{time}} にスケジュール変更されました",
"event_has_been_rescheduled": "イベントのスケジュールが変更されました",
"hi_user_name": "こんにちは、 {{userName}}",
"ics_event_title": "{{name}} との{{eventType}}",
"ics_event_title": "{{name}} による {{eventType}}",
"new_event_subject": "新規イベント: {{attendeeName}} - {{date}} - {{eventType}}",
"join_by_entrypoint": "{{entryPoint}} に参加する",
"notes": "メモ",
@ -80,22 +80,22 @@
"meeting_password": "ミーティングパスワード",
"meeting_url": "ミーティングID",
"meeting_request_rejected": "ミーティングリクエストが拒否されました",
"rescheduled_event_type_subject": "変更日時: {{date}}、 {{name}} と {{eventType}}",
"rescheduled_event_type_subject": "再スケジュールされました: {{name}} による {{eventType}}、{{date}}",
"rejected_event_type_with_organizer": "拒否: {{date}} の{{organizer}} による{{eventType}}",
"hi": "こんにちは",
"join_team": "チームに参加",
"manage_this_team": "このチームを管理する",
"team_info": "チーム情報",
"team_info": "チーム情報",
"request_another_invitation_email": "{{toEmail}} を Cal.com のメールアドレスとして使用しない場合、または Cal.com アカウントをすでに持っている場合は、そのメールへの別の招待をリクエストしてください。",
"you_have_been_invited": "チーム {{teamName}} に招待されました。",
"user_invited_you": "{{user}} さんがあなたをチーム {{teamName}} に招待しました",
"hidden_team_member_title": "あなたはこのチームで非表示になっています",
"hidden_team_member_message": "あなたの座席は、支払いが完了していません。Proにアップグレードするか、チームオーナーにあなたの座席の支払いを知らせてください。",
"hidden_team_owner_message": "チームを使用するにはプロアカウントが必要です。アップグレードするまで非表示になります。",
"hidden_team_member_title": "あなたはこのチームで非表示にされています",
"hidden_team_member_message": "座席料の支払いが完了していません。Pro へとアップグレードするか、チームのオーナーにあなたの座席料の支払いをご依頼ください。",
"hidden_team_owner_message": "チームをご利用いただくためには、Pro アカウントが必要です。アップグレードするまでは非表示となります。",
"link_expires": "追記: {{expiresIn}} 時間後に有効期限が切れます。",
"upgrade_to_per_seat": "座席毎にアップグレード",
"team_upgrade_seats_details": "あなたのチームメンバー {{memberCount}} の内、 {{unpaidCount}} 名のお席のお支払いが完了していません。1席あたり ${{seatPrice}} 、全てのお席の金額は ${{totalCost}} です。",
"team_upgraded_successfully": "チームは正常にアップグレードされました!",
"upgrade_to_per_seat": "座席ごとにアップグレードする",
"team_upgrade_seats_details": "あなたのチームのメンバー {{memberCount}} 名の内 {{unpaidCount}} 名のユーザーの座席料の支払いが完了していません。1 座席あたりの金額は ${{seatPrice}}、すべての座席の合計金額は ${{totalCost}} です。",
"team_upgraded_successfully": "チームのアップグレードが正常に完了しました!",
"use_link_to_reset_password": "以下のリンクを使用してパスワードをリセットしてください",
"hey_there": "こんにちは!",
"forgot_your_password_calcom": "パスワードをお忘れですか? - Cal.com",
@ -243,15 +243,15 @@
"failed": "失敗",
"password_has_been_reset_login": "パスワードがリセットされました。新しく作成したパスワードでログインできるようになりました。",
"unexpected_error_try_again": "予期しないエラーが発生しました。再試行してください。",
"sunday_time_error": "日曜日の無効な時間",
"monday_time_error": "月曜日の無効な時間",
"tuesday_time_error": "火曜日の無効な時間",
"wednesday_time_error": "水曜日の無効な時間",
"thursday_time_error": "木曜日の無効な時間",
"friday_time_error": "金曜日の無効な時間",
"saturday_time_error": "土曜日の無効な時間",
"error_end_time_before_start_time": "終了時刻は開始時刻の前にすることはできません",
"error_end_time_next_day": "終了時刻は24時間以上にすることはできません",
"sunday_time_error": "日曜日の時間が無効です",
"monday_time_error": "月曜日の時間が無効です",
"tuesday_time_error": "火曜日の時間が無効です",
"wednesday_time_error": "水曜日の時間が無効です",
"thursday_time_error": "木曜日の時間が無効です",
"friday_time_error": "金曜日の時間が無効です",
"saturday_time_error": "土曜日の時間が無効です",
"error_end_time_before_start_time": "終了時刻を開始時刻よりも前の時刻に設定することはできません",
"error_end_time_next_day": "終了時刻に 24 時を超える時刻を設定することはできません",
"back_to_bookings": "予約に戻る",
"free_to_pick_another_event_type": "好きな他のイベントを選んでください。",
"cancelled": "キャンセルしました",
@ -408,7 +408,7 @@
"email_or_username": "メールアドレスまたはユーザー名",
"send_invite_email": "招待メールを送信",
"role": "権限",
"edit_role": "役割を編集",
"edit_role": "役割を編集する",
"edit_team": "チームを編集",
"reject": "拒否",
"accept": "許可",
@ -429,7 +429,7 @@
"invite": "招待する",
"invite_new_member": "新しいメンバーを招待する",
"invite_new_team_member": "チームに誰かを招待します。",
"change_member_role": "チームメンバーの役割を変更",
"change_member_role": "チームメンバーの役割を変更する",
"disable_cal_branding": "Cal.comのブランディングを無効にする",
"disable_cal_branding_description": "Cal.comのすべてのブランディングを公開ページから非表示にする。",
"danger_zone": "危険なエリア",
@ -445,7 +445,7 @@
"remove_member": "メンバーを削除",
"manage_your_team": "チームを管理",
"no_teams": "まだチームがありません。",
"no_teams_description": "チームを使用すると、同僚間で共有されたイベントを予約できます。",
"no_teams_description": "チームを使用することにより、同僚の間で共有されているイベントを予約できるようになります。",
"submit": "送信",
"delete": "削除",
"update": "更新",
@ -453,16 +453,16 @@
"pending": "保留中",
"open_options": "オプションを開く",
"copy_link": "イベントのリンクをコピー",
"share": "シェアする",
"share_event": "私のカルを予約もしくはリンクを送っていただけますか?",
"copy_link_team": "チームにリンクをコピー",
"leave_team": "チームから退する",
"confirm_leave_team": "はい、チームから退出します",
"leave_team_confirmation_message": "このチームから退してよろしいですか?チームを使用して予約することができなくなります。",
"user_from_team": "{{user}} からの {{team}}",
"share": "共有する",
"share_event": "私のカレンダーを予約するか、あなたのリンクを送っていただけませんか?",
"copy_link_team": "チームにリンクをコピーする",
"leave_team": "チームから退する",
"confirm_leave_team": "はい。チームから脱退します",
"leave_team_confirmation_message": "このチームから本当に脱退してよろしいですか?チームを使用して予約を行うことができなくなります。",
"user_from_team": "{{team}} の {{user}}",
"preview": "プレビュー",
"link_copied": "リンクをコピーしました!",
"link_shared": "リンクを共有",
"link_shared": "リンクを共有しました",
"title": "タイトル",
"description": "説明",
"quick_video_meeting": "短時間のビデオミーティング。",
@ -477,11 +477,11 @@
"url": "URL",
"hidden": "隠れている",
"readonly": "読み込み専用",
"plan_description": "あなたは現在 {{plan}} プランを利用中です。",
"plan_upgrade_invitation": "アカウントをプロプランにアップグレードすると、当社が提供するすべての機能が利用可能となります。",
"plan_description": "現在あなたは {{plan}} プランを利用しています。",
"plan_upgrade_invitation": "アカウントを Pro プランへとアップグレードすると、弊社が提供するすべての機能をご利用いただけるようになります。",
"plan_upgrade": "複数の有効なイベントタイプを持つには、プランをアップグレードする必要があります。",
"plan_upgrade_teams": "チームを作成するには、プランをアップグレードする必要があります。",
"plan_upgrade_instructions": "<1>ここでアップグレード</1>ができます。",
"plan_upgrade_teams": "チームを作成するためには、プランのアップグレードを行う必要があります。",
"plan_upgrade_instructions": "<1>こちらからアップグレード</1>を行うことができます。",
"event_types_page_title": "イベント種別",
"event_types_page_subtitle": "人々があなたのカレンダーを予約するために共有するイベントを作成します。",
"new_event_type_btn": "新しいイベントの種類",
@ -494,8 +494,8 @@
"event_type_created_successfully": "{{eventTypeTitle}} イベント種別が正常に作成されました",
"event_type_updated_successfully": "{{eventTypeTitle}} イベント種別が正常に更新されました",
"event_type_deleted_successfully": "イベント種別が正常に削除されました",
"web3_metamask_added": "メタマスクの追加に成功しました",
"web3_metamask_disconnected": "メタマスクの接続が解除されました",
"web3_metamask_added": "メタマスクが正常に追加されました",
"web3_metamask_disconnected": "メタマスクの接続が正常に解除されました",
"hours": "時間",
"your_email": "あなたのメールアドレス",
"change_avatar": "アバターを変更",
@ -514,15 +514,15 @@
"create_first_team_and_invite_others": "あなたの最初のチームを作成し、あなたと一緒に仕事をするために他のユーザーを招待してください。",
"create_team_to_get_started": "始めるためにチームを作成",
"teams": "チーム",
"team_billing": "チーム請求",
"upgrade_to_flexible_pro_title": "チームへの請求を変更しました",
"upgrade_to_flexible_pro_message": "あなたのチームには座席がないメンバーがいます。プロプランにアップグレードして不足している席を確保してください。",
"changed_team_billing_info": "2022年1月より、チームメンバーの座席単位で料金を請求します. Proを無料で利用したチームメンバーは、14日間の試用期間中です。 試用期間が終了すると、今すぐアップグレードしない限り、これらのメンバーはチームに表示されなくなります.",
"team_billing": "チーム請求",
"upgrade_to_flexible_pro_title": "チームへの請求内容を変更しました",
"upgrade_to_flexible_pro_message": "あなたのチームには座席がないメンバーがいます。Pro プランへとアップグレードし、不足している座席を確保してください。",
"changed_team_billing_info": "2022 年 1 月より、チームのメンバーには座席単位で料金が請求されます。Pro プランを無料でご利用いただいていたチームメンバーにつきましては、現在は 14 日間のトライアル期間中となっています。今すぐアップグレードしない限り、トライアル期間の終了とともにこれらのメンバーはあなたのチームにおいて非表示となります。",
"create_manage_teams_collaborative": "共同作業機能を使用するチームを作成および管理します。",
"only_available_on_pro_plan": "この機能はProプランでのみ利用できます。",
"remove_cal_branding_description": "予約ページからカルブランディングを削除するには、Proアカウントにアップグレードする必要があります。",
"edit_profile_info_description": "スケジューリングリンクに表示されるプロフィール情報を編集します。",
"change_email_tip": "変更を有効にするには、ログアウトして再度ログインする必要があります。",
"change_email_tip": "変更内容を有効にするには、一度ログアウトしてから再度ログインを行う必要があります。",
"little_something_about": "あなた自身につい何か少し。",
"profile_updated_successfully": "プロフィールが正常に更新されました",
"your_user_profile_updated_successfully": "ユーザープロフィールの更新が完了しました。",
@ -545,7 +545,7 @@
"add_attendees": "出席者を追加",
"show_advanced_settings": "詳細設定を表示",
"event_name": "イベント名",
"event_name_tooltip": "カレンダーに表示る名前",
"event_name_tooltip": "カレンダーに表示される名前",
"meeting_with_user": "{USER} とのミーティング",
"additional_inputs": "追加入力",
"label": "ラベル",
@ -586,16 +586,16 @@
"length": "長さ",
"minimum_booking_notice": "最低限の予約通知",
"slot_interval": "時間帯の間隔",
"slot_interval_default": "イベントの長さを使用 (デフォルト)",
"slot_interval_default": "イベントの長さを使用する (デフォルト)",
"delete_event_type_description": "このイベント種別を削除してもよろしいですか? あなた&apos;veがこのリンクを共有した人は、もはやそれを使用して予約することはできません。",
"delete_event_type": "イベント種別を削除",
"confirm_delete_event_type": "はい、イベント種別を削除します",
"delete_account": "アカウントを削除",
"confirm_delete_account": "はいアカウントを削除します",
"delete_account_confirmation_message": "本当にあなたのアカウントを削除してもよろしいですか?あなたのアカウントリンクを共有している人は、あなたのアカウントを使用して予約することができなくなり、保存した設定は失われます。",
"delete_account": "アカウントを削除する",
"confirm_delete_account": "はいアカウントを削除します",
"delete_account_confirmation_message": "あなたの Cal.com アカウントを本当に削除してもよろしいですか?あなたのアカウントリンクを共有しているユーザーは、そのアカウントを使用して予約を行うことができなくなり、保存していた設定も失われます。",
"integrations": "統合",
"settings": "設定",
"event_type_moved_successfully": "イベントタイプが正常に移動しました",
"event_type_moved_successfully": "イベントの種類が正常に移動されました",
"next_step": "手順をスキップ",
"prev_step": "前の手順",
"installed": "インストール済み",
@ -604,39 +604,39 @@
"connect_your_favourite_apps": "お気に入りのアプリを接続する",
"automation": "自動化",
"configure_how_your_event_types_interact": "イベント種別とカレンダーをどのように連携するかを設定します。",
"select_destination_calendar": "イベントを作成:",
"select_destination_calendar": "以下にイベントを作成する",
"connect_an_additional_calendar": "追加のカレンダーを接続する",
"conferencing": "ミーティング中",
"calendar": "カレンダー",
"not_installed": "インストールされていません",
"error_password_mismatch": "パスワードが一致しません。",
"error_required_field": "この項目は必須です。",
"status": "ステータス:",
"team_view_user_availability": "ユーザーの利用可否を表示",
"team_view_user_availability_disabled": "利用可否を確認するには招待を承認する必要があります",
"set_as_away": "自分自身を離れた状態に設定する",
"set_as_free": "離れた状態の無効化",
"user_away": "このユーザーは現在離れています。",
"user_away_description": "あなたが予約しようとしている人は離れています。そのため、新しい予約を受け入れていません.",
"meet_people_with_the_same_tokens": "同じトークンを持つ人に会いに行く",
"only_book_people_and_allow": "同じトークン、DAO、またはNFTを共有する人々からの予約のみ予約できます。",
"saml_config_deleted_successfully": "SAML設定を削除しました",
"account_created_with_identity_provider": "あなたのアカウントはIDプロバイダーを使用して作成されました。",
"status": "状態",
"team_view_user_availability": "ユーザーの状態を表示する",
"team_view_user_availability_disabled": "状態を表示するには、招待を承認する必要があります",
"set_as_away": "自分を離席中に設定する",
"set_as_free": "離席中状態を無効化する",
"user_away": "このユーザーは現在離席中です。",
"user_away_description": "あなたが予約しようとしているユーザーは離席中です。そのため、新しい予約を承認することができません。",
"meet_people_with_the_same_tokens": "同じトークンを持っているユーザーに会う",
"only_book_people_and_allow": "同じトークン、DAO、NFT を共有するユーザーからの予約や予約の許可のみが可能です。",
"saml_config_deleted_successfully": "SAML の構成が正常に削除されました",
"account_created_with_identity_provider": "あなたのアカウントは ID プロバイダーを使用して作成されました。",
"account_managed_by_identity_provider": "あなたのアカウントは {{provider}} によって管理されています",
"account_managed_by_identity_provider_description": "メールアドレスやパスワードの変更、二段階認証を有効にするには {{provider}} アカウント設定をご覧ください。",
"signin_with_google": "Googleアカウントでログイン",
"signin_with_saml": "SAMLでログイン",
"saml_configuration": "SAML設定",
"delete_saml_configuration": "SAMLの設定を削除",
"delete_saml_configuration_confirmation_message": "SAML設定を削除してもよろしいですか? SAMLでログインしているチームメンバーは、Cal.comにアクセスできなくなります。",
"confirm_delete_saml_configuration": "はい、SAML設定を削除します",
"saml_not_configured_yet": "SAMLが設定されていません",
"saml_configuration_description": "SAML設定を更新するには、以下のテキストボックスに、IDプロバイダーからSAML メタデータを貼り付けてください。",
"saml_configuration_placeholder": "IDプロバイダーからSAMLメタデータをここに貼り付けてください",
"saml_configuration_update_failed": "SAML設定の更新に失敗しました",
"saml_configuration_delete_failed": "SAML設定の削除に失敗しました",
"saml_email_required": "SAML IDプロバイダーを見つけるために、メールアドレスを入力してください",
"you_will_need_to_generate": "古いスケジュールツールからアクセストークンを生成する必要があります。",
"account_managed_by_identity_provider_description": "メールアドレスやパスワードを変更したり、二段階認証を有効にしたりするには、{{provider}} のアカウント設定をご確認ください。",
"signin_with_google": "Google アカウントを使用してサインイン",
"signin_with_saml": "SAML を使用してサインイン",
"saml_configuration": "SAML の構成",
"delete_saml_configuration": "SAML の構成を削除する",
"delete_saml_configuration_confirmation_message": "SAML の構成を本当に削除してよろしいですかSAML を使用してログインしているチームメンバーは、Cal.com にアクセスすることができなくなります。",
"confirm_delete_saml_configuration": "はい。SAML の構成を削除します",
"saml_not_configured_yet": "SAML がまだ構成されていません",
"saml_configuration_description": "SAML の構成を更新するには、以下のテキストボックスに ID プロバイダーから提供されている SAML のメタデータを貼り付けてください。",
"saml_configuration_placeholder": "ID プロバイダーから提供されている SAML のメタデータをこちらに貼り付けてください",
"saml_configuration_update_failed": "SAML の構成を更新することができませんでした",
"saml_configuration_delete_failed": "SAML の構成を削除することができませんでした",
"saml_email_required": "SAML ID プロバイダーを見つけるために、メールアドレスを入力してください",
"you_will_need_to_generate": "従来のスケジュールツールからアクセストークンを生成する必要があります。",
"import": "インポートする",
"import_from": "インポート元",
"access_token": "アクセストークン",
@ -644,18 +644,18 @@
"remove": "削除する",
"add": "追加する",
"verify_wallet": "ウォレットを確認する",
"connect_metamask": "メタマスク接続する",
"create_events_on": "イベントを作成:",
"missing_license": "ライセンスがりません",
"connect_metamask": "メタマスク接続する",
"create_events_on": "以下にイベントを作成する:",
"missing_license": "ライセンスが見つかりません",
"signup_requires": "商用ライセンスが必要です",
"signup_requires_description": "Cal.com, Inc.は現在、無料のオープンソース版のサインアップページを提供していません。 サインアップコンポーネントへのフルアクセスを受けるには、商用ライセンスを取得する必要があります。 個人的に使用するには、Prisma Data Platformまたは他のPostgresインターフェースを使用してアカウントを作成することをお勧めします。",
"signup_requires_description": "Cal.com, Inc. は、現時点ではサインアップページの無料のオープンソース版を提供しておりません。サインアップコンポーネントへのフルアクセスをご利用いただくためには、商用ライセンスを取得する必要があります。個人での利用につきましては、Prisma Data Platform またはその他の Postgres インターフェースを使用してアカウントの作成を行うことをお勧めしております。",
"next_steps": "次のステップ",
"acquire_commercial_license": "商用ライセンスを取得する",
"the_infrastructure_plan": "インフラストラクチャプランは、使用ベースとなっておりスタートアップには割引があります。",
"prisma_studio_tip": "Prisma Studio経由でアカウントを作成する",
"the_infrastructure_plan": "インフラストラクチャプランは使用量に応じて課金され、スタートアップに優しい割引制度もあります。",
"prisma_studio_tip": "Prisma Studio を介してアカウントを作成する",
"prisma_studio_tip_description": "最初のユーザーを設定する方法を学ぶ",
"contact_sales": "営業担当に問い合わせ",
"error_404": "エラー 404",
"requires_ownership_of_a_token": "次のアドレスに属するトークンの所有権が必要です:",
"contact_sales": "営業担当に問い合わせ",
"error_404": "404 エラー",
"requires_ownership_of_a_token": "次のアドレスに属するトークンの所有権が必要となります:",
"example_name": "山田太朗"
}

View File

@ -90,11 +90,11 @@
"you_have_been_invited": "{{teamName}} 팀에 초대되셨습니다.",
"user_invited_you": "{{user}} 님께서 Cal.com의 {{team}} 으로 초대하셨습니다.",
"hidden_team_member_title": "귀하는 이 팀에서 숨겨졌습니다",
"hidden_team_member_message": "귀하의 좌석 비용은 Pro로 업그레이드하든, 팀 소유자에게 그들이 귀하의 좌석 비용을 지불할 수 있다고 알리든, 어떤 경우에도 지불되지 않습니다.",
"hidden_team_member_message": "귀하의 시트 비용은 Pro로 업그레이드하든, 팀 소유자에게 그들이 귀하의 시트 비용을 지불할 수 있다고 알리든, 어떤 경우에도 지불되지 않습니다.",
"hidden_team_owner_message": "팀을 사용하려면 Pro 계정이 필요합니다. 귀하의 계정은 업그레이드할 때까지 숨겨졌습니다.",
"link_expires": "{{expiresIn}} 시간 안에 만료됩니다.",
"upgrade_to_per_seat": "좌석 단위로 업그레이드",
"team_upgrade_seats_details": "귀하의 팀원 {{memberCount}}명 중 {{unpaidCount}}석이 미지급되었습니다. 좌석당 ${{seatPrice}}/m에서 예상 총 멤버십 비용은 ${{totalCost}}/m입니다.",
"upgrade_to_per_seat": "시트 단위로 업그레이드",
"team_upgrade_seats_details": "귀하의 팀원 {{memberCount}}명 중 {{unpaidCount}}명의 시트 비용이 미지급되었습니다. 시트당 ${{seatPrice}}/m로 계산시, 예상 총 멤버십 비용은 ${{totalCost}}/m입니다.",
"team_upgraded_successfully": "팀이 성공적으로 업그레이드되었습니다!",
"use_link_to_reset_password": "비밀번호를 재설정하시려면 아래 링크를 사용하세요.",
"hey_there": "안녕하세요.",
@ -438,7 +438,7 @@
"continue": "계속하기",
"confirm": "확인",
"disband_team": "팀 해체",
"disband_team_confirmation_message": "이 팀을 해산하시겠습니까? 이 팀 링크를 공유한 사용자는 더 이상 이 링크를 사용하여 예약할 수 없습니다.",
"disband_team_confirmation_message": "이 팀을 해산하시겠습니까? 이 팀 링크를 공유한 모든 사람이 더 이상 이 링크를 사용하여 예약할 수 없습니다.",
"remove_member_confirmation_message": "이 멤버를 팀에서 제거하시겠습니까?",
"confirm_disband_team": "네, 팀을 해체합니다.",
"confirm_remove_member": "예, 회원을 제거합니다.",
@ -458,7 +458,7 @@
"copy_link_team": "팀에 링크 복사",
"leave_team": "팀 떠나기",
"confirm_leave_team": "예, 팀을 떠납니다",
"leave_team_confirmation_message": "이 팀에서 나가시겠습니까? 더 이상 이것을 사용하여 예약할 수 없습니다.",
"leave_team_confirmation_message": "이 팀에서 나가시겠습니까? 더 이상 이 팀을 이용해 예약할 수 없습니다.",
"user_from_team": "{{team}}의 {{user}}",
"preview": "미리보기",
"link_copied": "링크가 복사되었습니다!",
@ -478,10 +478,10 @@
"hidden": "숨기기",
"readonly": "읽기 전용",
"plan_description": "현재 {{plan}} 요금제를 사용 중입니다.",
"plan_upgrade_invitation": "귀하의 계정을 프로 플랜으로 업그레이드하여 저희가 제공하는 모든 기능을 잠금 해제하십시오.",
"plan_upgrade_invitation": "귀하의 계정을 Pro 플랜으로 업그레이드하여 저희가 제공하는 모든 기능을 잠금 해제하십시오.",
"plan_upgrade": "활성 이벤트 타입이 두 개 이상 있도록 요금제를 업그레이드해야 합니다.",
"plan_upgrade_teams": "팀을 만들려면 요금제를 업그레이드해야 합니다.",
"plan_upgrade_instructions": "<1>업그레이드는 여기</1>에서 할 수 있습니다.",
"plan_upgrade_instructions": "<1>여기</1>에서 업그레이드할 수 있습니다.",
"event_types_page_title": "이벤트 타입",
"event_types_page_subtitle": "사람들이 캘린더에서 예약할 수 있도록 공유할 이벤트를 만드세요.",
"new_event_type_btn": "새 이벤트 타입",
@ -516,8 +516,8 @@
"teams": "팀",
"team_billing": "팀 비용 청구",
"upgrade_to_flexible_pro_title": "팀에 대한 청구를 변경했습니다",
"upgrade_to_flexible_pro_message": "팀에 좌석 없는 구성원이 있습니다. 누락된 좌석을 보완하려면 Pro 요금제를 업그레이드하세요.",
"changed_team_billing_info": "2022년 1월부터 팀원에 대해 좌석별로 요금을 부과합니다. 무료로 Pro를 사용하던 팀원은 이제 14일 평가판을 사용할 수 있습니다. 평가판 기한이 만료되면 지금 업그레이드하지 않는 한 이 팀원은 팀에서 숨겨집니다.",
"upgrade_to_flexible_pro_message": "팀에 시트가 없는 구성원이 있습니다. 누락된 시트를 보완하려면 Pro 플랜을 업그레이드하세요.",
"changed_team_billing_info": "2022년 1월부터 팀원에 대해 시트별로 요금을 부과합니다. 무료로 Pro를 사용하던 팀원은 이제 14일 평가판을 사용할 수 있습니다. 평가판 기한이 만료되고 업그레이드하지 않으면 이 팀원은 팀에서 숨겨집니다.",
"create_manage_teams_collaborative": "협업 기능을 사용할 팀을 만들고 관리합니다.",
"only_available_on_pro_plan": "이 기능은 Pro 요금제에서만 사용할 수 있습니다.",
"remove_cal_branding_description": "예약 페이지에서 Cal 브랜드를 제거하려면 Pro 계정으로 업그레이드해야 합니다.",
@ -614,16 +614,16 @@
"status": "상태",
"team_view_user_availability": "사용자 여유 보기",
"team_view_user_availability_disabled": "사용 가능 여부를 보려면 사용자가 초대를 수락해야 합니다",
"set_as_away": "본인 공석으로 설정",
"set_as_away": "본인 공석으로 설정",
"set_as_free": "공석 상태 비활성화",
"user_away": "이 사용자는 현재 자리를 비웠습니다.",
"user_away_description": "예약 담당자가 자리를 비웠기 때문에 신규 예약을 받고 있지 않습니다.",
"user_away_description": "예약하려는 사람이 자신을 공석으로 설정했기 때문에 새 예약을 받고 있지 않습니다.",
"meet_people_with_the_same_tokens": "같은 토큰을 가진 사람들을 만나세요",
"only_book_people_and_allow": "동일 토큰, DAO 또는 NFT를 공유하는 사람들의 예약만 허용합니다.",
"saml_config_deleted_successfully": "SAML 구성이 성공적으로 삭제되었습니다",
"account_created_with_identity_provider": "귀하의 계정은 ID 제공자를 사용하여 생성되었습니다.",
"account_managed_by_identity_provider": "귀하의 계정 관리자는 {{provider}}입니다",
"account_managed_by_identity_provider_description": "이메일, 비밀번호를 변경하고 이중 인증을 활성화하려면 {{provider}} 계정 설정을 방문하십시오.",
"account_managed_by_identity_provider_description": "이메일, 비밀번호를 변경하고 이중 인증을 활성화하려면 {{provider}} 계정 설정을 방문하세요.",
"signin_with_google": "Google로 로그인",
"signin_with_saml": "SAML로 로그인",
"saml_configuration": "SAML 구성",
@ -631,11 +631,11 @@
"delete_saml_configuration_confirmation_message": "SAML 구성을 삭제하시겠습니까? SAML 로그인을 사용하는 팀원은 더 이상 Cal.com에 액세스할 수 없습니다.",
"confirm_delete_saml_configuration": "예, SAML 구성을 삭제합니다",
"saml_not_configured_yet": "SAML이 아직 구성되지 않았습니다",
"saml_configuration_description": "SAML 구성을 업데이트하려면 ID 제공자의 SAML 메타데이터를 아래 텍스트 상자에 붙여넣으십시오.",
"saml_configuration_placeholder": "여기에 ID 제공자의 SAML 메타데이터를 붙여넣으십시오.",
"saml_configuration_description": "SAML 구성을 업데이트하려면 ID 제공자의 SAML 메타데이터를 아래 텍스트 상자에 붙여넣으세요.",
"saml_configuration_placeholder": "여기에 ID 제공자의 SAML 메타데이터를 붙여넣으세요.",
"saml_configuration_update_failed": "SAML 구성 업데이트 실패",
"saml_configuration_delete_failed": "SAML 구성 삭제 실패",
"saml_email_required": "SAML ID 제공자를 찾을 수 있도록 이메일을 입력하십시오.",
"saml_email_required": "SAML ID 제공자를 찾을 수 있도록 이메일을 입력하세요.",
"you_will_need_to_generate": "이전 일정 관리 도구에서 액세스 토큰을 생성해야 합니다.",
"import": "가져오기",
"import_from": "가져오기 위치",
@ -651,9 +651,9 @@
"signup_requires_description": "지금은 Cal.com, Inc.에서 가입 페이지의 무료 오픈 소스 버전을 제공하지 않습니다. 가입 구성 요소에 대한 정식 액세스 권한을 받으려면 상용 라이선스를 취득해야 합니다. 개인 용도의 경우 Prisma Data Platform 또는 기타 Postgres 인터페이스를 사용하여 계정을 생성하는 것이 좋습니다.",
"next_steps": "다음 단계",
"acquire_commercial_license": "상용 라이선스 취득하기",
"the_infrastructure_plan": "인프라 계획은 사용량 기반이고 스타트업 위주의 할인을 제공합니다.",
"the_infrastructure_plan": "인프라 플랜은 사용량 기반이고 스타트업 위주의 할인을 제공합니다.",
"prisma_studio_tip": "Prisma Studio를 통해 계정 생성",
"prisma_studio_tip_description": "첫 번째 사용자 설정 방법 알아보기",
"prisma_studio_tip_description": "첫 사용자 설정 방법 알아보기",
"contact_sales": "영업팀에 문의",
"error_404": "오류 404",
"requires_ownership_of_a_token": "다음 주소에 속한 토큰의 소유권이 필요합니다:",

View File

@ -13,6 +13,12 @@
"event_request_cancelled": "Ваша запланированная встреча была отменена",
"organizer": "Организатор",
"need_to_reschedule_or_cancel": "Хотите перенести или отменить?",
"cancellation_reason": "Причина отмены",
"cancellation_reason_placeholder": "Укажите причину отмены (необязательное поле)",
"rejection_reason": "Причина отказа",
"rejection_reason_title": "Отказаться от бронирования?",
"rejection_reason_description": "Отказаться от брони? Мы сообщим пользователю, который пытался оформить бронь. Вы можете указать причину отказа ниже.",
"rejection_confirmation": "Отказаться от бронирования",
"manage_this_event": "Управление этой встречей",
"your_event_has_been_scheduled": "Запланирована новая встреча",
"accept_our_license": "Примите нашу лицензию, изменив переменную окружения <1>NEXT_PUBLIC_LICENSE_CONSENT</1> на '{{agree}}'.",
@ -78,10 +84,18 @@
"rejected_event_type_with_organizer": "Отклонено: {{eventType}} с {{organizer}} на {{date}}",
"hi": "Привет",
"join_team": "Вступить в команду",
"manage_this_team": "Управление этой командой",
"team_info": "Информация о команде",
"request_another_invitation_email": "Если вы не хотите использовать {{toEmail}} как ваш Cal.com адрес электронной почты или уже есть аккаунт Cal.com, пожалуйста, запросите другое приглашение на это письмо.",
"you_have_been_invited": "Вас пригласили присоединиться к команде {{teamName}}",
"user_invited_you": "{{user}} приглашает вас присоединиться к команде {{teamName}}",
"hidden_team_member_title": "В этой команде вы скрытый пользователь",
"hidden_team_member_message": "Ваше место не оплачено. Перейдите на аккаунт Pro или свяжитесь с руководителем команды, который сможет произвести оплату.",
"hidden_team_owner_message": "Чтобы работать с командами, необходим аккаунт Pro. До перехода на этот тариф Вы остаетесь скрытым пользователем.",
"link_expires": "p.s. Это истекает через {{expiresIn}} часов.",
"upgrade_to_per_seat": "Перейти на оплату из расчета за количество мест",
"team_upgrade_seats_details": "В вашей команде {{memberCount}} пользователей; из них не оплачено еще {{unpaidCount}} мест. При оплате ${{seatPrice}} в месяц за место общая сумма к оплате составляет ${{totalCost}} в месяц.",
"team_upgraded_successfully": "Вы успешно перешли на новый тариф для своей команды!",
"use_link_to_reset_password": "Используйте ссылку ниже, чтобы сбросить пароль",
"hey_there": "Привет,",
"forgot_your_password_calcom": "Забыли пароль? - Cal.com",
@ -158,6 +172,7 @@
"30min_meeting": "Встреча на 30 минут",
"secret_meeting": "Секретная встреча",
"login_instead": "Вход",
"already_have_an_account": "Уже есть аккаунт?",
"create_account": "Создать аккаунт",
"confirm_password": "Подтвердите пароль",
"create_your_account": "Создайте аккаунт",
@ -228,6 +243,15 @@
"failed": "Ошибка",
"password_has_been_reset_login": "Ваш пароль был сброшен. Теперь вы можете войти с новым паролем.",
"unexpected_error_try_again": "Произошла непредвиденная ошибка. Попробуйте еще раз.",
"sunday_time_error": "Недопустимое время в воскресенье",
"monday_time_error": "Недопустимое время в понедельник",
"tuesday_time_error": "Недопустимое время во вторник",
"wednesday_time_error": "Недопустимое время в среду",
"thursday_time_error": "Недопустимое время в четверг",
"friday_time_error": "Недопустимое время в пятницу",
"saturday_time_error": "Недопустимое время в субботу",
"error_end_time_before_start_time": "Время окончания не может быть ранее времени начала",
"error_end_time_next_day": "Время окончания не может позже 24 часов",
"back_to_bookings": "Вернуться к списку бронирований",
"free_to_pick_another_event_type": "Вы можете выбрать любое другое событие.",
"cancelled": "Отменено",
@ -420,6 +444,8 @@
"confirm_remove_member": "Да, удалить участника",
"remove_member": "Удалить участника",
"manage_your_team": "Управление вашей командой",
"no_teams": "У вас пока нет команд.",
"no_teams_description": "В команде другие пользователи могут бронировать совместные мероприятия с сотрудниками.",
"submit": "Отправить",
"delete": "Удалить",
"update": "Обновить",
@ -427,6 +453,8 @@
"pending": "В ожидании",
"open_options": "Открыть настройки",
"copy_link": "Скопировать ссылку на событие",
"share": "Поделиться",
"share_event": "Не могли бы вы забронировать нам встречу в Cal или отправить мне свою ссылку?",
"copy_link_team": "Скопировать ссылку на команду",
"leave_team": "Выйти из команды",
"confirm_leave_team": "Да, выйти из команды",
@ -434,6 +462,7 @@
"user_from_team": "{{user}} из {{team}}",
"preview": "Предпросмотр",
"link_copied": "Ссылка скопирована!",
"link_shared": "Ссылка отправлена!",
"title": "Заголовок",
"description": "Описание",
"quick_video_meeting": "Быстрая видео-встреча.",
@ -448,8 +477,11 @@
"url": "URL",
"hidden": "Скрытый",
"readonly": "Только для чтения",
"plan_description": "В настоящее время вы используете план {{plan}}.",
"plan_upgrade_invitation": "Перейдите на тарифный план Pro, чтобы воспользоваться всеми доступными функциями.",
"plan_upgrade": "Необходимо обновить тарифный план, чтобы иметь более одного активного типа события.",
"plan_upgrade_teams": "Вам нужно обновить тарифный план для создания команды.",
"plan_upgrade_instructions": "<1>Перейти на новый тарифный план</1>.",
"event_types_page_title": "Типы мероприятий",
"event_types_page_subtitle": "Создайте мероприятие, чтобы поделиться с людьми для бронирования в вашем календаре.",
"new_event_type_btn": "Новый тип мероприятия",
@ -462,6 +494,8 @@
"event_type_created_successfully": "{{eventTypeTitle}} тип мероприятия успешно создан",
"event_type_updated_successfully": "Шаблон события успешно обновлён",
"event_type_deleted_successfully": "Тип события успешно удален",
"web3_metamask_added": "Metamask успешно добавлен",
"web3_metamask_disconnected": "Metamask успешно отключен",
"hours": "Часы",
"your_email": "Ваш адрес электронной почты",
"change_avatar": "Изменить аватар",
@ -480,6 +514,10 @@
"create_first_team_and_invite_others": "Создайте свою первую команду и пригласите других пользователей работать вместе с вами.",
"create_team_to_get_started": "Создайте команду, чтобы начать работу",
"teams": "Команды",
"team_billing": "Условия расчета для команд",
"upgrade_to_flexible_pro_title": "Мы изменили условия расчета для команд",
"upgrade_to_flexible_pro_message": "В вашей команде есть пользователи без места. Перейдите на тарифный план Pro, чтобы получить недостающие места.",
"changed_team_billing_info": "С января 2022 года мы взимаем плату с членов команды за каждое место. Членам вашей команды, которые пользовались тарифным планом Pro бесплатно, теперь будет предоставлена 14-дневная пробная версия. Если вы не перейдете на тарифный план Pro сейчас, по истечении этого периода такие члены команды будут скрыты.",
"create_manage_teams_collaborative": "Создавайте и управляйте командами для использования совместных функций.",
"only_available_on_pro_plan": "Эта функция доступна только в Pro тарифе",
"remove_cal_branding_description": "Чтобы удалить брендинг Cal со страниц бронирования, необходимо перейти на Pro аккаунт.",
@ -580,6 +618,8 @@
"set_as_free": "Отключить статус \"отошел\"",
"user_away": "Этот пользователь в настоящее время отсутствует.",
"user_away_description": "Человек, с которым вы пытаетесь забронировать встречу - недоступен, поэтому он не принимает новых записей.",
"meet_people_with_the_same_tokens": "Проводите встречи с пользователями с такими же токенами",
"only_book_people_and_allow": "Теперь можно бронировать встречи и разрешить бронирование встреч только с пользователями, которые используют одинаковые токены, DAO или NFT.",
"saml_config_deleted_successfully": "Конфигурация SAML удалена",
"account_created_with_identity_provider": "Ваша учетная запись была создана с помощью идентификатора провайдера.",
"account_managed_by_identity_provider": "Ваш аккаунт управляется {{provider}}",
@ -600,5 +640,22 @@
"import": "Импорт",
"import_from": "Импортировать из",
"access_token": "Токен доступа",
"visit_roadmap": "План действий"
"visit_roadmap": "План действий",
"remove": "Удалить",
"add": "Добавить",
"verify_wallet": "Подтвердить кошелек",
"connect_metamask": "Подключить Metamask",
"create_events_on": "Создать мероприятия на:",
"missing_license": "Отсутствует лицензия",
"signup_requires": "Требуется коммерческая лицензия",
"signup_requires_description": "В настоящее время компания Cal.com, Inc. не предлагает бесплатную версию страницы регистрации с открытым исходным кодом. Чтобы получить полный доступ к компонентам входа в систему, необходимо приобрести коммерческую лицензию. Для личного пользования мы рекомендуем Prisma Data Platform или любой другой интерфейс Postgres для создания учетных записей.",
"next_steps": "Следующие шаги",
"acquire_commercial_license": "Приобрести коммерческую лицензию",
"the_infrastructure_plan": "Стоимость тарифного плана по развертыванию инфраструктуры зависит от вариантов использования; стартапам предоставляются скидки.",
"prisma_studio_tip": "Создать учетную запись через Prisma Studio",
"prisma_studio_tip_description": "Узнайте, как настроить первого пользователя",
"contact_sales": "Связаться с отделом продаж",
"error_404": "Ошибка 404",
"requires_ownership_of_a_token": "Нужно быть владельцем токена, относящегося к следующему адресу:",
"example_name": "Джон Доу"
}

@ -1 +1 @@
Subproject commit 9167779d6a22f9c75a1da513e3af0b2cc2f29e0f
Subproject commit aac908d6405603d2ef0554e5c43a55d4b7eb025c

View File

@ -1,41 +1,59 @@
# github submodule repo address without https:// prefix
SUBMODULE_GITHUB=github.com/calcom/website
# github submodule repo addresses without https:// prefix
# .gitmodules submodule path
SUBMODULE_PATH=apps/website
# This didn't work ¯\_(ツ)_/¯
# declare -A remotes=(
# ["apps/website"]="github.com/calcom/website"
# ["apps/api"]="github.com/calcom/api"
# )
# github access token is necessary
# add it to Environment Variables on Vercel
if [ "$GITHUB_ACCESS_TOKEN" == "" ]; then
echo "Error: GITHUB_ACCESS_TOKEN is empty"
exit 1
echo "Error: GITHUB_ACCESS_TOKEN is empty"
exit 1
fi
# stop execution on error - don't let it build if something goes wrong
set -e
# get submodule commit
output=`git submodule status --recursive` # get submodule info
no_prefix=${output#*-} # get rid of the prefix
COMMIT=${no_prefix% *} # get rid of the suffix
output=$(git submodule status --recursive) # get submodule info
# set up an empty temporary work directory
rm -rf tmp || true # remove the tmp folder if exists
mkdir tmp # create the tmp folder
cd tmp # go into the tmp folder
# Extract each submodule commit hash and path
submodules=$(echo $output | sed "s/ -/__/g" | sed "s/ /=/g" | sed "s/-//g" | tr "__" "\n")
# checkout the current submodule commit
git config --global init.defaultBranch main
git config --global advice.detachedHead false
git init # initialise empty repo
git remote add origin https://$GITHUB_ACCESS_TOKEN@$SUBMODULE_GITHUB # add origin of the submodule
git fetch --depth=1 origin $COMMIT # fetch only the required version
git checkout $COMMIT # checkout on the right commit
# move the submodule from tmp to the submodule path
cd .. # go folder up
rm -rf tmp/.git # remove .git
mv tmp/* $SUBMODULE_PATH/ # move the submodule to the submodule path
for submodule in $submodules; do
IFS="=" read COMMIT SUBMODULE_PATH <<<"$submodule"
# clean up
rm -rf tmp # remove the tmp folder
# This should be a hash table but couldn't make it work ¯\_(ツ)_/¯
# SUBMODULE_GITHUB=$remotes[$SUBMODULE_PATH]
if [ "$SUBMODULE_PATH" == "apps/website" ]; then
SUBMODULE_GITHUB=github.com/calcom/website
fi
if [ "$SUBMODULE_PATH" == "apps/api" ]; then
SUBMODULE_GITHUB=github.com/calcom/api
fi
# set up an empty temporary work directory
rm -rf tmp || true # remove the tmp folder if exists
mkdir tmp # create the tmp folder
cd tmp # go into the tmp folder
# checkout the current submodule commit
git init # initialise empty repo
git remote add $SUBMODULE_PATH https://$GITHUB_ACCESS_TOKEN@$SUBMODULE_GITHUB # add origin of the submodule
git fetch --depth=1 $SUBMODULE_PATH $COMMIT # fetch only the required version
git checkout $COMMIT # checkout on the right commit
# move the submodule from tmp to the submodule path
cd .. # go folder up
rm -rf tmp/.git # remove .git
mv tmp/* $SUBMODULE_PATH/ # move the submodule to the submodule path
# clean up
rm -rf tmp # remove the tmp folder
done

856
yarn.lock

File diff suppressed because it is too large Load Diff