Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a8a10c0f35 | ||
|
|
5f7d904349 | ||
|
|
abce20824f | ||
|
|
76a8c89d33 | ||
|
|
fc9360d99a | ||
|
|
a5c21d5e3e | ||
|
|
3960c8a954 | ||
|
|
0cbcda7430 | ||
|
|
ff12e35748 | ||
|
|
15d967b1d2 | ||
|
|
b309be1d94 | ||
|
|
94dc2643f2 | ||
|
|
6440d3da6a | ||
|
|
9e08cf88f4 | ||
|
|
8b3eb986df | ||
|
|
8a6a7524cc | ||
|
|
1dbdb8a4d4 | ||
|
|
4fb0852505 | ||
|
|
0815ab715b | ||
|
|
944ff68463 | ||
|
|
676254e96b | ||
|
|
207bcb9a97 | ||
|
|
4d825672db | ||
|
|
ba86e7f540 | ||
|
|
3206e4ea12 | ||
|
|
dbcebec31b | ||
|
|
f427c09e88 | ||
|
|
ded838881f | ||
|
|
08da9d805a | ||
|
|
7cd0d5c3c3 | ||
|
|
b018ee34a7 | ||
|
|
17345f9326 | ||
|
|
a1d7b30d51 | ||
|
|
87dbfba5df | ||
|
|
e5d44d029a |
@@ -17,8 +17,8 @@ runs:
|
||||
with:
|
||||
path: ${{ inputs.path }}
|
||||
key: ${{ runner.os }}-${{ env.cache-name }}-${{ inputs.path }}-${{ github.sha }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-${{ env.cache-name }}-${{ inputs.path }}-
|
||||
restore-keys: |
|
||||
${{ runner.os }}-${{ env.cache-name }}-${{ inputs.path }}-${{ github.sha }}
|
||||
- name: Postgres Dump Backup
|
||||
if: steps.cache-db.outputs.cache-hit != 'true'
|
||||
uses: tj-actions/pg-dump@v2.3
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
name: cleanup caches by a branch
|
||||
on:
|
||||
pull_request:
|
||||
types:
|
||||
- closed
|
||||
|
||||
jobs:
|
||||
cleanup:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Cleanup
|
||||
run: |
|
||||
gh extension install actions/gh-actions-cache
|
||||
|
||||
REPO=${{ github.repository }}
|
||||
BRANCH="refs/pull/${{ github.event.pull_request.number }}/merge"
|
||||
|
||||
echo "Fetching list of cache key"
|
||||
cacheKeysForPR=$(gh actions-cache list -R $REPO -B $BRANCH | cut -f 1 )
|
||||
|
||||
## Setting this to not fail the workflow while deleting cache keys.
|
||||
set +e
|
||||
echo "Deleting caches..."
|
||||
for cacheKey in $cacheKeysForPR
|
||||
do
|
||||
gh actions-cache delete $cacheKey -R $REPO -B $BRANCH --confirm
|
||||
done
|
||||
echo "Done"
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -3,7 +3,7 @@ on:
|
||||
workflow_call:
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: buildjet-4vcpu-ubuntu-2204
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
@@ -9,10 +9,12 @@ on:
|
||||
jobs:
|
||||
build:
|
||||
name: Production build
|
||||
if: ${{ github.event_name == 'push' }}
|
||||
uses: ./.github/workflows/production-build.yml
|
||||
secrets: inherit
|
||||
analyze:
|
||||
needs: build
|
||||
if: always()
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
@@ -85,3 +85,12 @@ jobs:
|
||||
needs: build
|
||||
uses: ./.github/workflows/nextjs-bundle-analysis.yml
|
||||
secrets: inherit
|
||||
|
||||
required:
|
||||
needs: [lint, type-check, test, build, e2e]
|
||||
if: always()
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: fail if conditional jobs failed
|
||||
if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'skipped') || contains(needs.*.result, 'cancelled')
|
||||
run: exit 1
|
||||
|
||||
@@ -10,7 +10,7 @@ import NavTabs from "./NavTabs";
|
||||
const tabs = [
|
||||
{
|
||||
name: "profile",
|
||||
href: "/settings/profile",
|
||||
href: "/settings/my-account/profile",
|
||||
icon: FiUser,
|
||||
},
|
||||
{
|
||||
|
||||
@@ -303,6 +303,11 @@ const Component = ({
|
||||
);
|
||||
};
|
||||
|
||||
const ShellHeading = () => {
|
||||
const { t } = useLocale();
|
||||
return <span className="block py-2">{t("app_store")}</span>;
|
||||
};
|
||||
|
||||
export default function App(props: {
|
||||
name: string;
|
||||
description: AppType["description"];
|
||||
@@ -328,10 +333,8 @@ export default function App(props: {
|
||||
images?: string[];
|
||||
isTemplate?: boolean;
|
||||
}) {
|
||||
const { t } = useLocale();
|
||||
|
||||
return (
|
||||
<Shell smallHeading isPublic heading={t("app_store")} backPath="/apps" withoutSeo>
|
||||
<Shell smallHeading isPublic heading={<ShellHeading />} backPath="/apps" withoutSeo>
|
||||
<HeadSeo
|
||||
title={props.name}
|
||||
description={props.description}
|
||||
|
||||
@@ -2,11 +2,12 @@ import { useAutoAnimate } from "@formkit/auto-animate/react";
|
||||
import Link from "next/link";
|
||||
import { useRouter } from "next/router";
|
||||
import type { FC } from "react";
|
||||
import { useEffect, useState } from "react";
|
||||
import { useEffect, useState, useCallback } from "react";
|
||||
|
||||
import type { Dayjs } from "@calcom/dayjs";
|
||||
import dayjs from "@calcom/dayjs";
|
||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||
import useMediaQuery from "@calcom/lib/hooks/useMediaQuery";
|
||||
import { TimeFormat } from "@calcom/lib/timeFormat";
|
||||
import { nameOfDay } from "@calcom/lib/weekday";
|
||||
import type { Slot } from "@calcom/trpc/server/routers/viewer/slots";
|
||||
@@ -50,6 +51,15 @@ const AvailableTimes: FC<AvailableTimesProps> = ({
|
||||
useEffect(() => {
|
||||
setBrand(getComputedStyle(document.documentElement).getPropertyValue("--brand-color").trim());
|
||||
}, []);
|
||||
const isMobile = useMediaQuery("(max-width: 768px)");
|
||||
const ref = useCallback(
|
||||
(node: HTMLDivElement) => {
|
||||
if (isMobile) {
|
||||
node?.scrollIntoView({ behavior: "smooth" });
|
||||
}
|
||||
},
|
||||
[isMobile]
|
||||
);
|
||||
|
||||
return (
|
||||
<div ref={slotPickerRef}>
|
||||
@@ -75,7 +85,7 @@ const AvailableTimes: FC<AvailableTimesProps> = ({
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex-grow overflow-y-auto sm:block md:h-[364px]">
|
||||
<div ref={ref} className="flex-grow overflow-y-auto sm:block md:h-[364px]">
|
||||
{slots.length > 0 &&
|
||||
slots.map((slot) => {
|
||||
type BookingURL = {
|
||||
|
||||
@@ -82,13 +82,14 @@ export const EventAdvancedTab = ({ eventType, team }: Pick<EventTypeSetupProps,
|
||||
setCustomInputs([...customInputs]);
|
||||
};
|
||||
|
||||
const replaceEventNamePlaceholder = (eventNameObject: EventNameObjectType, previewEventName: string) =>
|
||||
previewEventName
|
||||
.replace("{Event type title}", eventNameObject.eventType)
|
||||
.replace("{Scheduler}", eventNameObject.attendeeName)
|
||||
.replace("{Organiser}", eventNameObject.host);
|
||||
|
||||
const changePreviewText = (eventNameObject: EventNameObjectType, previewEventName: string) => {
|
||||
setPreviewText(
|
||||
previewEventName
|
||||
.replace("{Event type title}", eventNameObject.eventType)
|
||||
.replace("{Scheduler}", eventNameObject.attendeeName)
|
||||
.replace("{Organiser}", eventNameObject.host)
|
||||
);
|
||||
setPreviewText(replaceEventNamePlaceholder(eventNameObject, previewEventName));
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
@@ -101,6 +102,8 @@ export const EventAdvancedTab = ({ eventType, team }: Pick<EventTypeSetupProps,
|
||||
}
|
||||
}, [eventType.customInputs]);
|
||||
|
||||
const eventNamePlaceholder = replaceEventNamePlaceholder(eventNameObject, t("meeting_with_user"));
|
||||
|
||||
return (
|
||||
<div className="flex flex-col space-y-8">
|
||||
{/**
|
||||
@@ -141,7 +144,7 @@ export const EventAdvancedTab = ({ eventType, team }: Pick<EventTypeSetupProps,
|
||||
<TextField
|
||||
label={t("event_name_in_calendar")}
|
||||
type="text"
|
||||
placeholder={t("meeting_with_user")}
|
||||
placeholder={eventNamePlaceholder}
|
||||
defaultValue={eventType.eventName || ""}
|
||||
{...formMethods.register("eventName", {
|
||||
onChange: (e) => {
|
||||
@@ -413,7 +416,7 @@ export const EventAdvancedTab = ({ eventType, team }: Pick<EventTypeSetupProps,
|
||||
<TextField
|
||||
label={t("event_name_in_calendar")}
|
||||
type="text"
|
||||
placeholder={t("meeting_with_user")}
|
||||
placeholder={eventNamePlaceholder}
|
||||
defaultValue={eventType.eventName || ""}
|
||||
{...formMethods.register("eventName", {
|
||||
onChange: (e) => {
|
||||
|
||||
@@ -246,7 +246,7 @@ export const EventSetupTab = (
|
||||
</Trans>
|
||||
</div>
|
||||
)}
|
||||
{validLocations.length > 0 && validLocations.length !== locationOptions.length && (
|
||||
{validLocations.length > 0 && (
|
||||
<li>
|
||||
<Button
|
||||
data-testid="add-location"
|
||||
|
||||
@@ -197,7 +197,7 @@ function EventTypeSingleLayout({
|
||||
heading={eventType.title}
|
||||
CTA={
|
||||
<div className="flex items-center justify-end">
|
||||
<div className="hidden items-center rounded-md px-2 sm:flex sm:hover:bg-gray-100">
|
||||
<div className="hidden items-center rounded-md px-2 sm:hover:bg-gray-100 lg:flex">
|
||||
<Skeleton
|
||||
as={Label}
|
||||
htmlFor="hiddenSwitch"
|
||||
@@ -206,7 +206,7 @@ function EventTypeSingleLayout({
|
||||
</Skeleton>
|
||||
<Switch
|
||||
id="hiddenSwitch"
|
||||
defaultChecked={formMethods.getValues("hidden")}
|
||||
checked={formMethods.watch("hidden")}
|
||||
onCheckedChange={(e) => {
|
||||
formMethods.setValue("hidden", e);
|
||||
}}
|
||||
@@ -261,7 +261,7 @@ function EventTypeSingleLayout({
|
||||
<DropdownMenuTrigger asChild>
|
||||
<Button className="lg:hidden" StartIcon={FiMoreHorizontal} variant="icon" color="secondary" />
|
||||
</DropdownMenuTrigger>
|
||||
<DropdownMenuContent>
|
||||
<DropdownMenuContent style={{ minWidth: "200px" }}>
|
||||
<DropdownMenuItem className="focus:ring-gray-100">
|
||||
<DropdownItem
|
||||
target="_blank"
|
||||
@@ -293,17 +293,17 @@ function EventTypeSingleLayout({
|
||||
{t("delete")}
|
||||
</DropdownItem>
|
||||
</DropdownMenuItem>
|
||||
<DropdownMenuSeparator className="block sm:hidden" />
|
||||
<div className="flex items-center rounded-md py-1.5 px-4 sm:hidden sm:hover:bg-gray-100">
|
||||
<DropdownMenuSeparator />
|
||||
<div className="flex h-9 flex-row items-center justify-between py-2 px-4 sm:hover:bg-gray-100">
|
||||
<Skeleton
|
||||
as={Label}
|
||||
htmlFor="hiddenSwitch"
|
||||
className="mt-2 inline cursor-pointer self-center pr-2 sm:hidden">
|
||||
className="mt-2 inline cursor-pointer self-center pr-2 ">
|
||||
{t("hide_from_profile")}
|
||||
</Skeleton>
|
||||
<Switch
|
||||
id="hiddenSwitch"
|
||||
defaultChecked={formMethods.getValues("hidden")}
|
||||
checked={formMethods.watch("hidden")}
|
||||
onCheckedChange={(e) => {
|
||||
formMethods.setValue("hidden", e);
|
||||
}}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
export function isBrandingHidden(hideBrandingSetting: boolean, belongsToActiveTeam: boolean) {
|
||||
return belongsToActiveTeam && hideBrandingSetting;
|
||||
export function isBrandingHidden(hideBrandingSetting: boolean, hasPaidPlan: boolean) {
|
||||
return hasPaidPlan && hideBrandingSetting;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@calcom/web",
|
||||
"version": "2.6.4",
|
||||
"version": "2.6.6",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"analyze": "ANALYZE=true next build",
|
||||
|
||||
@@ -3,6 +3,7 @@ import { z } from "zod";
|
||||
|
||||
import type { LocationObject } from "@calcom/app-store/locations";
|
||||
import { IS_TEAM_BILLING_ENABLED, WEBAPP_URL } from "@calcom/lib/constants";
|
||||
import hasKeyInMetadata from "@calcom/lib/hasKeyInMetadata";
|
||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||
import type { User } from "@calcom/prisma/client";
|
||||
|
||||
@@ -82,6 +83,7 @@ async function getUserPageProps(context: GetStaticPropsContext) {
|
||||
weekStart: true,
|
||||
brandColor: true,
|
||||
darkBrandColor: true,
|
||||
metadata: true,
|
||||
eventTypes: {
|
||||
where: {
|
||||
// Many-to-many relationship causes inclusion of the team events - cool -
|
||||
@@ -157,7 +159,7 @@ async function getUserPageProps(context: GetStaticPropsContext) {
|
||||
locations: privacyFilteredLocations(locations),
|
||||
descriptionAsSafeHTML: eventType.description ? md.render(eventType.description) : null,
|
||||
});
|
||||
// Check if the user you are logging into has any active teams
|
||||
// Check if the user you are logging into has any active teams or premium user name
|
||||
const hasActiveTeam =
|
||||
user.teams.filter((m) => {
|
||||
if (!IS_TEAM_BILLING_ENABLED) return true;
|
||||
@@ -166,6 +168,8 @@ async function getUserPageProps(context: GetStaticPropsContext) {
|
||||
return false;
|
||||
}).length > 0;
|
||||
|
||||
const hasPremiumUserName = hasKeyInMetadata(user, "isPremium");
|
||||
|
||||
return {
|
||||
props: {
|
||||
eventType: eventTypeObject,
|
||||
@@ -182,7 +186,7 @@ async function getUserPageProps(context: GetStaticPropsContext) {
|
||||
away: user?.away,
|
||||
isDynamic: false,
|
||||
trpcState: ssg.dehydrate(),
|
||||
isBrandingHidden: isBrandingHidden(user.hideBranding, hasActiveTeam),
|
||||
isBrandingHidden: isBrandingHidden(user.hideBranding, hasActiveTeam || hasPremiumUserName),
|
||||
},
|
||||
revalidate: 10, // seconds
|
||||
};
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { useAutoAnimate } from "@formkit/auto-animate/react";
|
||||
import type { GetServerSidePropsContext } from "next";
|
||||
|
||||
import { NewScheduleButton, ScheduleListItem } from "@calcom/features/schedules";
|
||||
import Shell from "@calcom/features/shell/Shell";
|
||||
@@ -14,8 +13,6 @@ import { HttpError } from "@lib/core/http/error";
|
||||
|
||||
import SkeletonLoader from "@components/availability/SkeletonLoader";
|
||||
|
||||
import { ssrInit } from "@server/lib/ssr";
|
||||
|
||||
export function AvailabilityList({ schedules }: RouterOutputs["viewer"]["availability"]["list"]) {
|
||||
const { t } = useLocale();
|
||||
const utils = trpc.useContext();
|
||||
@@ -118,13 +115,3 @@ export default function AvailabilityPage() {
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export const getServerSideProps = async (context: GetServerSidePropsContext) => {
|
||||
const ssr = await ssrInit(context);
|
||||
|
||||
return {
|
||||
props: {
|
||||
trpcState: ssr.dehydrate(),
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
@@ -442,17 +442,19 @@ export default function Success(props: SuccessProps) {
|
||||
<div className="mt-3">
|
||||
<p className="text-gray-600 dark:text-gray-300">{getTitle()}</p>
|
||||
</div>
|
||||
{props.paymentStatus && (
|
||||
<h4>
|
||||
{!props.paymentStatus.success &&
|
||||
!props.paymentStatus.refunded &&
|
||||
t("booking_with_payment_cancelled")}
|
||||
{props.paymentStatus.success &&
|
||||
!props.paymentStatus.refunded &&
|
||||
t("booking_with_payment_cancelled_already_paid")}
|
||||
{props.paymentStatus.refunded && t("booking_with_payment_cancelled_refunded")}
|
||||
</h4>
|
||||
)}
|
||||
{props.paymentStatus &&
|
||||
(bookingInfo.status === BookingStatus.CANCELLED ||
|
||||
bookingInfo.status === BookingStatus.REJECTED) && (
|
||||
<h4>
|
||||
{!props.paymentStatus.success &&
|
||||
!props.paymentStatus.refunded &&
|
||||
t("booking_with_payment_cancelled")}
|
||||
{props.paymentStatus.success &&
|
||||
!props.paymentStatus.refunded &&
|
||||
t("booking_with_payment_cancelled_already_paid")}
|
||||
{props.paymentStatus.refunded && t("booking_with_payment_cancelled_refunded")}
|
||||
</h4>
|
||||
)}
|
||||
|
||||
<div className="border-bookinglightest text-bookingdark dark:border-darkgray-200 mt-8 grid grid-cols-3 border-t pt-8 text-left dark:text-gray-300">
|
||||
{(isCancelled || reschedule) && cancellationReason && (
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { useAutoAnimate } from "@formkit/auto-animate/react";
|
||||
import type { GetServerSidePropsContext } from "next";
|
||||
import Link from "next/link";
|
||||
import { useRouter } from "next/router";
|
||||
import type { FC } from "react";
|
||||
@@ -60,8 +59,6 @@ import { HttpError } from "@lib/core/http/error";
|
||||
import { EmbedButton, EmbedDialog } from "@components/Embed";
|
||||
import SkeletonLoader from "@components/eventtype/SkeletonLoader";
|
||||
|
||||
import { ssrInit } from "@server/lib/ssr";
|
||||
|
||||
type EventTypeGroups = RouterOutputs["viewer"]["eventTypes"]["getByViewer"]["eventTypeGroups"];
|
||||
type EventTypeGroupProfile = EventTypeGroups[number]["profile"];
|
||||
|
||||
@@ -73,6 +70,7 @@ interface EventTypeListHeadingProps {
|
||||
|
||||
type EventTypeGroup = EventTypeGroups[number];
|
||||
type EventType = EventTypeGroup["eventTypes"][number];
|
||||
|
||||
interface EventTypeListProps {
|
||||
group: EventTypeGroup;
|
||||
groupIndex: number;
|
||||
@@ -134,11 +132,9 @@ const Item = ({ type, group, readOnly }: { type: EventType; group: EventTypeGrou
|
||||
data-testid={"event-type-slug-" + type.id}>
|
||||
{`/${group.profile.slug}/${type.slug}`}
|
||||
</small>
|
||||
) : (
|
||||
<></>
|
||||
)}
|
||||
) : null}
|
||||
{readOnly && (
|
||||
<span className="inline items-center rounded-sm bg-gray-100 px-1.5 py-0.5 text-xs font-medium text-gray-800 ltr:ml-2 ltr:mr-2 rtl:ml-2">
|
||||
<span className="items-center rounded-sm bg-gray-100 px-1.5 py-0.5 text-xs font-medium text-gray-800 ltr:ml-2 ltr:mr-2 rtl:ml-2">
|
||||
{t("readonly")}
|
||||
</span>
|
||||
)}
|
||||
@@ -695,14 +691,4 @@ const EventTypesPage = () => {
|
||||
);
|
||||
};
|
||||
|
||||
export const getServerSideProps = async (context: GetServerSidePropsContext) => {
|
||||
const ssr = await ssrInit(context);
|
||||
|
||||
return {
|
||||
props: {
|
||||
trpcState: ssr.dehydrate(),
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
export default EventTypesPage;
|
||||
|
||||
@@ -1,13 +1,9 @@
|
||||
import type { GetServerSidePropsContext } from "next";
|
||||
|
||||
import AdminAppsList from "@calcom/features/apps/AdminAppsList";
|
||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||
import { Meta } from "@calcom/ui";
|
||||
|
||||
import { getLayout } from "@components/auth/layouts/AdminLayout";
|
||||
|
||||
import { ssrInit } from "@server/lib/ssr";
|
||||
|
||||
function AdminAppsView() {
|
||||
const { t } = useLocale();
|
||||
return (
|
||||
@@ -20,14 +16,4 @@ function AdminAppsView() {
|
||||
|
||||
AdminAppsView.getLayout = getLayout;
|
||||
|
||||
export const getServerSideProps = async (context: GetServerSidePropsContext) => {
|
||||
const ssr = await ssrInit(context);
|
||||
|
||||
return {
|
||||
props: {
|
||||
trpcState: ssr.dehydrate(),
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
export default AdminAppsView;
|
||||
|
||||
@@ -1,2 +1 @@
|
||||
export { getServerSideProps } from "./[category]";
|
||||
export { default } from "./[category]";
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import type { GetServerSidePropsContext } from "next";
|
||||
import { signIn } from "next-auth/react";
|
||||
import { useRef } from "react";
|
||||
|
||||
@@ -7,8 +6,6 @@ import { Button, Meta, TextField } from "@calcom/ui";
|
||||
|
||||
import { getLayout } from "@components/auth/layouts/AdminLayout";
|
||||
|
||||
import { ssrInit } from "@server/lib/ssr";
|
||||
|
||||
function AdminView() {
|
||||
const { t } = useLocale();
|
||||
const usernameRef = useRef<HTMLInputElement>(null);
|
||||
@@ -41,14 +38,4 @@ function AdminView() {
|
||||
|
||||
AdminView.getLayout = getLayout;
|
||||
|
||||
export const getServerSideProps = async (context: GetServerSidePropsContext) => {
|
||||
const ssr = await ssrInit(context);
|
||||
|
||||
return {
|
||||
props: {
|
||||
trpcState: ssr.dehydrate(),
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
export default AdminView;
|
||||
|
||||
@@ -1,11 +1,7 @@
|
||||
import type { GetServerSidePropsContext } from "next";
|
||||
|
||||
import { Meta } from "@calcom/ui";
|
||||
|
||||
import { getLayout } from "@components/auth/layouts/AdminLayout";
|
||||
|
||||
import { ssrInit } from "@server/lib/ssr";
|
||||
|
||||
function AdminAppsView() {
|
||||
return (
|
||||
<>
|
||||
@@ -17,14 +13,4 @@ function AdminAppsView() {
|
||||
|
||||
AdminAppsView.getLayout = getLayout;
|
||||
|
||||
export const getServerSideProps = async (context: GetServerSidePropsContext) => {
|
||||
const ssr = await ssrInit(context);
|
||||
|
||||
return {
|
||||
props: {
|
||||
trpcState: ssr.dehydrate(),
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
export default AdminAppsView;
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import type { GetServerSidePropsContext } from "next";
|
||||
import { useRouter } from "next/router";
|
||||
import { useState } from "react";
|
||||
import { HelpScout, useChat } from "react-live-chat-loader";
|
||||
@@ -10,8 +9,6 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||
import { Button, Meta } from "@calcom/ui";
|
||||
import { FiExternalLink } from "@calcom/ui/components/icon";
|
||||
|
||||
import { ssrInit } from "@server/lib/ssr";
|
||||
|
||||
interface CtaRowProps {
|
||||
title: string;
|
||||
description: string;
|
||||
@@ -72,14 +69,4 @@ const BillingView = () => {
|
||||
|
||||
BillingView.getLayout = getLayout;
|
||||
|
||||
export const getServerSideProps = async (context: GetServerSidePropsContext) => {
|
||||
const ssr = await ssrInit(context);
|
||||
|
||||
return {
|
||||
props: {
|
||||
trpcState: ssr.dehydrate(),
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
export default BillingView;
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import type { GetServerSidePropsContext } from "next";
|
||||
import { useState } from "react";
|
||||
|
||||
import type { TApiKeys } from "@calcom/ee/api-keys/components/ApiKeyListItem";
|
||||
@@ -19,8 +18,6 @@ import {
|
||||
} from "@calcom/ui";
|
||||
import { FiLink, FiPlus } from "@calcom/ui/components/icon";
|
||||
|
||||
import { ssrInit } from "@server/lib/ssr";
|
||||
|
||||
const ApiKeysView = () => {
|
||||
const { t } = useLocale();
|
||||
|
||||
@@ -96,14 +93,4 @@ const ApiKeysView = () => {
|
||||
|
||||
ApiKeysView.getLayout = getLayout;
|
||||
|
||||
export const getServerSideProps = async (context: GetServerSidePropsContext) => {
|
||||
const ssr = await ssrInit(context);
|
||||
|
||||
return {
|
||||
props: {
|
||||
trpcState: ssr.dehydrate(),
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
export default ApiKeysView;
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import type { GetServerSidePropsContext } from "next";
|
||||
import { Controller, useForm } from "react-hook-form";
|
||||
|
||||
import ThemeLabel from "@calcom/features/settings/ThemeLabel";
|
||||
@@ -20,8 +19,6 @@ import {
|
||||
UpgradeTeamsBadge,
|
||||
} from "@calcom/ui";
|
||||
|
||||
import { ssrInit } from "@server/lib/ssr";
|
||||
|
||||
const SkeletonLoader = ({ title, description }: { title: string; description: string }) => {
|
||||
return (
|
||||
<SkeletonContainer>
|
||||
@@ -215,14 +212,4 @@ const AppearanceView = () => {
|
||||
|
||||
AppearanceView.getLayout = getLayout;
|
||||
|
||||
export const getServerSideProps = async (context: GetServerSidePropsContext) => {
|
||||
const ssr = await ssrInit(context);
|
||||
|
||||
return {
|
||||
props: {
|
||||
trpcState: ssr.dehydrate(),
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
export default AppearanceView;
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import type { GetServerSidePropsContext } from "next";
|
||||
import { Trans } from "next-i18next";
|
||||
import Link from "next/link";
|
||||
import { useRouter } from "next/router";
|
||||
@@ -30,8 +29,6 @@ import { QueryCell } from "@lib/QueryCell";
|
||||
|
||||
import { CalendarSwitch } from "@components/settings/CalendarSwitch";
|
||||
|
||||
import { ssrInit } from "@server/lib/ssr";
|
||||
|
||||
const SkeletonLoader = () => {
|
||||
return (
|
||||
<SkeletonContainer>
|
||||
@@ -228,14 +225,4 @@ const CalendarsView = () => {
|
||||
|
||||
CalendarsView.getLayout = getLayout;
|
||||
|
||||
export const getServerSideProps = async (context: GetServerSidePropsContext) => {
|
||||
const ssr = await ssrInit(context);
|
||||
|
||||
return {
|
||||
props: {
|
||||
trpcState: ssr.dehydrate(),
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
export default CalendarsView;
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import type { GetServerSidePropsContext } from "next";
|
||||
import { useRouter } from "next/router";
|
||||
import { useMemo } from "react";
|
||||
import { Controller, useForm } from "react-hook-form";
|
||||
@@ -23,8 +22,6 @@ import {
|
||||
|
||||
import { withQuery } from "@lib/QueryCell";
|
||||
|
||||
import { ssrInit } from "@server/lib/ssr";
|
||||
|
||||
const SkeletonLoader = ({ title, description }: { title: string; description: string }) => {
|
||||
return (
|
||||
<SkeletonContainer>
|
||||
@@ -223,14 +220,4 @@ const GeneralView = ({ localeProp, user }: GeneralViewProps) => {
|
||||
|
||||
GeneralQueryView.getLayout = getLayout;
|
||||
|
||||
export const getServerSideProps = async (context: GetServerSidePropsContext) => {
|
||||
const ssr = await ssrInit(context);
|
||||
|
||||
return {
|
||||
props: {
|
||||
trpcState: ssr.dehydrate(),
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
export default GeneralQueryView;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { IdentityProvider } from "@prisma/client";
|
||||
import crypto from "crypto";
|
||||
import MarkdownIt from "markdown-it";
|
||||
import type { GetServerSidePropsContext } from "next";
|
||||
import { signOut } from "next-auth/react";
|
||||
import type { BaseSyntheticEvent } from "react";
|
||||
import { useRef, useState } from "react";
|
||||
@@ -42,8 +41,6 @@ import { FiAlertTriangle, FiTrash2 } from "@calcom/ui/components/icon";
|
||||
import TwoFactor from "@components/auth/TwoFactor";
|
||||
import { UsernameAvailabilityField } from "@components/ui/UsernameAvailability";
|
||||
|
||||
import { ssrInit } from "@server/lib/ssr";
|
||||
|
||||
const md = new MarkdownIt("default", { html: true, breaks: true });
|
||||
|
||||
const SkeletonLoader = ({ title, description }: { title: string; description: string }) => {
|
||||
@@ -385,14 +382,4 @@ const ProfileForm = ({
|
||||
|
||||
ProfileView.getLayout = getLayout;
|
||||
|
||||
export const getServerSideProps = async (context: GetServerSidePropsContext) => {
|
||||
const ssr = await ssrInit(context);
|
||||
|
||||
return {
|
||||
props: {
|
||||
trpcState: ssr.dehydrate(),
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
export default ProfileView;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { IdentityProvider } from "@prisma/client";
|
||||
import type { GetServerSidePropsContext } from "next";
|
||||
import { signOut, useSession } from "next-auth/react";
|
||||
import { useForm } from "react-hook-form";
|
||||
|
||||
@@ -10,8 +9,6 @@ import { userMetadata } from "@calcom/prisma/zod-utils";
|
||||
import { trpc } from "@calcom/trpc/react";
|
||||
import { Alert, Button, Form, Meta, PasswordField, Select, SettingsToggle, showToast } from "@calcom/ui";
|
||||
|
||||
import { ssrInit } from "@server/lib/ssr";
|
||||
|
||||
type ChangePasswordSessionFormValues = {
|
||||
oldPassword: string;
|
||||
newPassword: string;
|
||||
@@ -209,14 +206,4 @@ const PasswordView = () => {
|
||||
|
||||
PasswordView.getLayout = getLayout;
|
||||
|
||||
export const getServerSideProps = async (context: GetServerSidePropsContext) => {
|
||||
const ssr = await ssrInit(context);
|
||||
|
||||
return {
|
||||
props: {
|
||||
trpcState: ssr.dehydrate(),
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
export default PasswordView;
|
||||
|
||||
@@ -1,15 +1 @@
|
||||
import type { GetServerSidePropsContext } from "next";
|
||||
|
||||
import { ssrInit } from "@server/lib/ssr";
|
||||
|
||||
export { default } from "@calcom/features/ee/sso/page/user-sso-view";
|
||||
|
||||
export const getServerSideProps = async (context: GetServerSidePropsContext) => {
|
||||
const ssr = await ssrInit(context);
|
||||
|
||||
return {
|
||||
props: {
|
||||
trpcState: ssr.dehydrate(),
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import type { GetServerSidePropsContext } from "next";
|
||||
import { useState } from "react";
|
||||
|
||||
import { getLayout } from "@calcom/features/settings/layouts/SettingsLayout";
|
||||
@@ -9,8 +8,6 @@ import { Badge, Meta, Switch, SkeletonButton, SkeletonContainer, SkeletonText }
|
||||
import DisableTwoFactorModal from "@components/settings/DisableTwoFactorModal";
|
||||
import EnableTwoFactorModal from "@components/settings/EnableTwoFactorModal";
|
||||
|
||||
import { ssrInit } from "@server/lib/ssr";
|
||||
|
||||
const SkeletonLoader = () => {
|
||||
return (
|
||||
<SkeletonContainer>
|
||||
@@ -85,14 +82,4 @@ const TwoFactorAuthView = () => {
|
||||
|
||||
TwoFactorAuthView.getLayout = getLayout;
|
||||
|
||||
export const getServerSideProps = async (context: GetServerSidePropsContext) => {
|
||||
const ssr = await ssrInit(context);
|
||||
|
||||
return {
|
||||
props: {
|
||||
trpcState: ssr.dehydrate(),
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
export default TwoFactorAuthView;
|
||||
|
||||
@@ -1,15 +1 @@
|
||||
import type { GetServerSidePropsContext } from "next";
|
||||
|
||||
import { ssrInit } from "@server/lib/ssr";
|
||||
|
||||
export { default } from "@calcom/features/ee/teams/pages/team-appearance-view";
|
||||
|
||||
export const getServerSideProps = async (context: GetServerSidePropsContext) => {
|
||||
const ssr = await ssrInit(context);
|
||||
|
||||
return {
|
||||
props: {
|
||||
trpcState: ssr.dehydrate(),
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,15 +1 @@
|
||||
import type { GetServerSidePropsContext } from "next";
|
||||
|
||||
import { ssrInit } from "@server/lib/ssr";
|
||||
|
||||
export { default } from "@calcom/features/ee/teams/pages/team-billing-view";
|
||||
|
||||
export const getServerSideProps = async (context: GetServerSidePropsContext) => {
|
||||
const ssr = await ssrInit(context);
|
||||
|
||||
return {
|
||||
props: {
|
||||
trpcState: ssr.dehydrate(),
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,15 +1 @@
|
||||
import type { GetServerSidePropsContext } from "next";
|
||||
|
||||
import { ssrInit } from "@server/lib/ssr";
|
||||
|
||||
export { default } from "@calcom/features/ee/teams/pages/team-members-view";
|
||||
|
||||
export const getServerSideProps = async (context: GetServerSidePropsContext) => {
|
||||
const ssr = await ssrInit(context);
|
||||
|
||||
return {
|
||||
props: {
|
||||
trpcState: ssr.dehydrate(),
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,15 +1 @@
|
||||
import type { GetServerSidePropsContext } from "next";
|
||||
|
||||
import { ssrInit } from "@server/lib/ssr";
|
||||
|
||||
export { default } from "@calcom/features/ee/teams/pages/team-profile-view";
|
||||
|
||||
export const getServerSideProps = async (context: GetServerSidePropsContext) => {
|
||||
const ssr = await ssrInit(context);
|
||||
|
||||
return {
|
||||
props: {
|
||||
trpcState: ssr.dehydrate(),
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,15 +1 @@
|
||||
import type { GetServerSidePropsContext } from "next";
|
||||
|
||||
import { ssrInit } from "@server/lib/ssr";
|
||||
|
||||
export { default } from "@calcom/features/ee/sso/page/teams-sso-view";
|
||||
|
||||
export const getServerSideProps = async (context: GetServerSidePropsContext) => {
|
||||
const ssr = await ssrInit(context);
|
||||
|
||||
return {
|
||||
props: {
|
||||
trpcState: ssr.dehydrate(),
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import type { GetServerSidePropsContext } from "next";
|
||||
import Head from "next/head";
|
||||
|
||||
import { CreateANewTeamForm } from "@calcom/features/ee/teams/components";
|
||||
@@ -6,8 +5,6 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||
|
||||
import { getLayout } from "@components/layouts/WizardLayout";
|
||||
|
||||
import { ssrInit } from "@server/lib/ssr";
|
||||
|
||||
const CreateNewTeamPage = () => {
|
||||
const { t } = useLocale();
|
||||
return (
|
||||
@@ -23,14 +20,4 @@ const CreateNewTeamPage = () => {
|
||||
|
||||
CreateNewTeamPage.getLayout = getLayout;
|
||||
|
||||
export const getServerSideProps = async (context: GetServerSidePropsContext) => {
|
||||
const ssr = await ssrInit(context);
|
||||
|
||||
return {
|
||||
props: {
|
||||
trpcState: ssr.dehydrate(),
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
export default CreateNewTeamPage;
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import type { GetServerSidePropsContext } from "next";
|
||||
|
||||
import { TeamsListing } from "@calcom/features/ee/teams/components";
|
||||
import Shell from "@calcom/features/shell/Shell";
|
||||
import { WEBAPP_URL } from "@calcom/lib/constants";
|
||||
@@ -7,8 +5,6 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||
import { Button } from "@calcom/ui";
|
||||
import { FiPlus } from "@calcom/ui/components/icon";
|
||||
|
||||
import { ssrInit } from "@server/lib/ssr";
|
||||
|
||||
function Teams() {
|
||||
const { t } = useLocale();
|
||||
return (
|
||||
@@ -31,14 +27,4 @@ function Teams() {
|
||||
|
||||
Teams.requiresLicense = false;
|
||||
|
||||
export const getServerSideProps = async (context: GetServerSidePropsContext) => {
|
||||
const ssr = await ssrInit(context);
|
||||
|
||||
return {
|
||||
props: {
|
||||
trpcState: ssr.dehydrate(),
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
export default Teams;
|
||||
|
||||
@@ -1,15 +1 @@
|
||||
import type { GetServerSidePropsContext } from "next";
|
||||
|
||||
import { ssrInit } from "@server/lib/ssr";
|
||||
|
||||
export { default } from "@calcom/features/ee/workflows/pages/index";
|
||||
|
||||
export const getServerSideProps = async (context: GetServerSidePropsContext) => {
|
||||
const ssr = await ssrInit(context);
|
||||
|
||||
return {
|
||||
props: {
|
||||
trpcState: ssr.dehydrate(),
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
@@ -10,7 +10,7 @@ test("Can delete user account", async ({ page, users }) => {
|
||||
|
||||
await page.waitForSelector("[data-testid=dashboard-shell]");
|
||||
|
||||
await page.goto(`/settings/profile`);
|
||||
await page.goto(`/settings/my-account/profile`);
|
||||
await page.click("[data-testid=delete-account]");
|
||||
if (!user.username) throw Error(`Test user doesn't have a username`);
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,6 +7,7 @@
|
||||
"upgrade_now": "Jetzt upgraden",
|
||||
"accept_invitation": "Einladung annehmen",
|
||||
"calcom_explained": "{{appName}} stellt die Planungsinfrastruktur für absolut jeden bereit.",
|
||||
"calcom_explained_new_user": "Beenden Sie die Einrichtung Ihres {{appName}} -Kontos! Sie sind nur ein paar Schritte von der Lösung aller Probleme in der Zeitplanung entfernt.",
|
||||
"have_any_questions": "Haben Sie Fragen? Wir sind hier um Ihnen zu helfen.",
|
||||
"reset_password_subject": "{{appName}}: Anleitung zum Zurücksetzen des Passworts",
|
||||
"event_declined_subject": "Abgelehnt: {{title}} am {{date}}",
|
||||
@@ -23,6 +24,8 @@
|
||||
"rejection_reason_description": "Sind Sie sicher, dass Sie die Buchung ablehnen möchten? Wir werden die Person, die versucht hat zu buchen, informieren. Sie können einen Grund angeben.",
|
||||
"rejection_confirmation": "Buchung ablehnen",
|
||||
"manage_this_event": "Diesen Termin verwalten",
|
||||
"invite_team_member": "Teammitglied einladen",
|
||||
"invite_team_notifcation_badge": "Inv.",
|
||||
"your_event_has_been_scheduled": "Ihr Termin wurde gebucht",
|
||||
"your_event_has_been_scheduled_recurring": "Ihr wiederkehrender Termin wurde gebucht",
|
||||
"accept_our_license": "Akzeptieren Sie unsere Lizenz, indem Sie die .env-Variable <1>NEXT_PUBLIC_LICENSE_CONSENT</1> auf '{{agree}} ' ändern.",
|
||||
@@ -410,6 +413,8 @@
|
||||
"password_updated_successfully": "Passwort erfolgreich aktualisiert",
|
||||
"password_has_been_changed": "Ihr Passwort wurde erfolgreich geändert.",
|
||||
"error_changing_password": "Fehler beim Ändern des Passworts",
|
||||
"session_timeout_changed": "Ihre Session Konfiguration wurde erfolgreich aktualisiert.",
|
||||
"session_timeout_change_error": "Fehler beim Aktualisieren der Session Konfiguration",
|
||||
"something_went_wrong": "Etwas ist schief gelaufen",
|
||||
"something_doesnt_look_right": "Irgendwas sieht nicht richtig aus?",
|
||||
"please_try_again": "Bitte erneut versuchen",
|
||||
@@ -428,6 +433,7 @@
|
||||
"password_hint_num": "Enthält mindestens 1 Zahl",
|
||||
"invalid_password_hint": "Das Passwort muss mindestens {{passwordLength}} Zeichen lang sein und mindestens eine Nummer beinhalten, sowie eine Mischung aus Groß- und Kleinbuchstaben sein",
|
||||
"incorrect_password": "Passwort ist falsch",
|
||||
"incorrect_username_password": "Benutzername oder Passwort ist falsch.",
|
||||
"24_h": "24 Std",
|
||||
"use_setting": "Benutze Einstellung",
|
||||
"am_pm": "am/pm",
|
||||
@@ -455,6 +461,7 @@
|
||||
"slots_load_fail": "Die verfügbaren Zeitfenster konnten nicht geladen werden.",
|
||||
"additional_guests": "+ Weitere Gäste",
|
||||
"your_name": "Ihr Name",
|
||||
"your_full_name": "Ihr vollständiger Name",
|
||||
"email_address": "E-Mail Adresse",
|
||||
"enter_valid_email": "Bitte geben Sie eine gültige Emaildresse ein",
|
||||
"location": "Ort",
|
||||
@@ -508,6 +515,8 @@
|
||||
"admin": "Administrator",
|
||||
"administrator_user": "Administrator Benutzer",
|
||||
"lets_create_first_administrator_user": "Lass uns als erstes den Administrator Benutzer anlegen.",
|
||||
"admin_user_created": "Administrator-Benutzereinstellungen",
|
||||
"admin_user_created_description": "Sie haben bereits einen Administrator-Benutzer erstellt. Sie können sich nun in Ihr Konto einloggen.",
|
||||
"new_member": "Neues Mitglied",
|
||||
"invite": "Einladen",
|
||||
"add_team_members": "Teammitglieder hinzufügen",
|
||||
@@ -658,6 +667,7 @@
|
||||
"edit_availability": "Verfügbarkeit bearbeiten",
|
||||
"configure_availability": "Konfigurieren Sie die Zeiten, in denen Sie für Buchungen zur Verfügung stehen.",
|
||||
"copy_times_to": "Zeiten kopieren in",
|
||||
"copy_times_to_tooltip": "Kopiere Zeiten nach …",
|
||||
"change_weekly_schedule": "Wöchentliche Termine ändern",
|
||||
"logo": "Logo",
|
||||
"error": "Fehler",
|
||||
@@ -669,6 +679,7 @@
|
||||
"add_attendees": "Teilnehmende hinzufügen",
|
||||
"show_advanced_settings": "Erweiterte Einstellungen anzeigen",
|
||||
"event_name": "Termin-Name",
|
||||
"event_name_in_calendar": "Ereignisname im Kalender",
|
||||
"event_name_tooltip": "Der Name, der in Kalendern angezeigt wird",
|
||||
"meeting_with_user": "Meeting mit {{attendeeName}}",
|
||||
"additional_inputs": "Zusätzliche Notizen",
|
||||
@@ -787,6 +798,7 @@
|
||||
"number_apps_one": "{{count}} Apps",
|
||||
"number_apps_other": "{{count}} Apps",
|
||||
"trending_apps": "Angesagte Apps",
|
||||
"most_popular": "Am beliebtesten",
|
||||
"explore_apps": "{{category}} Apps",
|
||||
"installed_apps": "Installierte Apps",
|
||||
"free_to_use_apps": "Kostenlos",
|
||||
@@ -797,12 +809,14 @@
|
||||
"no_category_apps_description_analytics": "Fügen Sie eine Analyse-App für Ihre Buchungsseiten hinzu",
|
||||
"no_category_apps_description_automation": "Fügen Sie eine Automatisierungs-App hinzu, die verwendet werden soll",
|
||||
"no_category_apps_description_other": "Füge jede beliebige andere Art von App hinzu, um alle möglichen Dinge zu tun",
|
||||
"no_category_apps_description_web3": "Fügen Sie eine web3-App für Ihre Buchungsseiten hinzu",
|
||||
"installed_app_calendar_description": "Legen Sie den/die Kalender in denen nach Konflikten gesucht werden sollen fest, um Doppelbuchungen zu vermeiden.",
|
||||
"installed_app_conferencing_description": "Fügen Sie Ihre liebsten Videokonferenz-Apps für Ihre Meetings hinzu",
|
||||
"installed_app_payment_description": "Konfigurieren Sie die Zahlungsdienstleister, welcher bei der Belastung Ihrer Kunden verwendet werden sollen.",
|
||||
"installed_app_analytics_description": "Konfigurieren Sie, welche Analyse-Apps für Ihre Buchungsseiten verwendet werden sollen",
|
||||
"installed_app_other_description": "Alle von Ihnen installierten Apps aus anderen Kategorien.",
|
||||
"installed_app_automation_description": "Konfigurieren Sie, welche Automatisierungs-Apps verwendet werden sollen",
|
||||
"installed_app_web3_description": "Konfigurieren Sie, welche Web3-Apps für Ihre Buchungsseiten verwendet werden sollen",
|
||||
"analytics": "Analyse",
|
||||
"empty_installed_apps_headline": "Keine Apps installiert",
|
||||
"empty_installed_apps_description": "Apps erlauben es Ihnen, Ihren Arbeitsfluss zu verbessern und Ihre Planung viel besser zu gestalten.",
|
||||
@@ -930,6 +944,11 @@
|
||||
"current_location": "Aktueller Ort",
|
||||
"user_phone": "Ihre Telefonnummer",
|
||||
"new_location": "Neuer Ort",
|
||||
"session": "Session",
|
||||
"session_description": "Verwalten Sie Ihre Account-Session",
|
||||
"session_timeout_after": "Timeout Session nach",
|
||||
"session_timeout": "Session Timeout",
|
||||
"session_timeout_description": "Nach einer bestimmten Zeit die Session löschen.",
|
||||
"no_location": "Kein Ort definiert",
|
||||
"set_location": "Ort festlegen",
|
||||
"update_location": "Ort aktualisieren",
|
||||
@@ -1073,6 +1092,7 @@
|
||||
"broken_video_action": "Wir konnten den <1>{{location}}</1> Meeting-Link nicht zu Ihrem geplanten Ereignis hinzufügen. Kontaktieren Sie Ihre Eingeladenen oder aktualisieren Sie Ihr Kalenderereignis, um die Einzelheiten hinzuzufügen. Sie können entweder <3> Ihren Standort im Ereignistyp ändern</3> oder <5>die App entfernen und erneut hinzufügen.</5>",
|
||||
"broken_calendar_action": "Wir konnten Ihren <1>{{calendar}}</1> nicht aktualisieren. <2> Bitte überprüfen Sie die Kalendereinstellungen oder entfernen Sie Ihren Kalender und fügen Sie Ihren Kalender erneut hinzu </2>",
|
||||
"attendee_name": "Name des Teilnehmenden",
|
||||
"scheduler_full_name": "Der vollständige Name der buchenden Person",
|
||||
"broken_integration": "Defekte Integration",
|
||||
"problem_adding_video_link": "Beim Hinzufügen eines Video-Links ist ein Problem aufgetreten",
|
||||
"problem_updating_calendar": "Es gab ein Problem beim Aktualisieren Ihres Kalenders",
|
||||
@@ -1215,6 +1235,7 @@
|
||||
"connect_automation_apps": "Automatisierungs-Apps verbinden",
|
||||
"connect_analytics_apps": "Analyse-Apps verbinden",
|
||||
"connect_other_apps": "Andere Apps verbinden",
|
||||
"connect_web3_apps": "Web3-Apps verbinden",
|
||||
"current_step_of_total": "Schritt {{currentStep}} von {{maxSteps}}",
|
||||
"add_variable": "Variable hinzufügen",
|
||||
"custom_phone_number": "Benutzerdefinierte Telefonnummer",
|
||||
@@ -1231,6 +1252,7 @@
|
||||
"to": "An",
|
||||
"workflow_turned_on_successfully": "{{workflowName}} Workflow erfolgreich {{offOn}}geschaltet",
|
||||
"download_responses": "Antworten herunterladen",
|
||||
"download_responses_description": "Laden Sie alle Antworten zu Ihrem Formular im CSV-Format herunter.",
|
||||
"download": "Herunterladen",
|
||||
"create_your_first_form": "Erstellen Sie Ihr erstes Formular",
|
||||
"create_your_first_form_description": "Mithilfe von Leitungsformularen können Sie qualifizierende Fragen stellen und zur richtigen Person oder zum richtigen Veranstaltungstyp weiterleiten.",
|
||||
@@ -1272,6 +1294,8 @@
|
||||
"routing_forms_send_email_owner": "E-Mail an Eigentümer senden",
|
||||
"routing_forms_send_email_owner_description": "Sendet eine E-Mail an den Eigentümer, wenn das Formular abgeschickt wird",
|
||||
"add_new_form": "Neues Formular hinzufügen",
|
||||
"create_your_first_route": "Erstellen Sie Ihre erste Route",
|
||||
"route_to_the_right_person": "Route an die richtige Person anhand der Formularantworten",
|
||||
"form_description": "Erstellen Sie Ihr Formular, um einen Bucher zu anzuleiten",
|
||||
"copy_link_to_form": "Link in Formular kopieren",
|
||||
"theme": "Theme",
|
||||
@@ -1302,6 +1326,7 @@
|
||||
"password_reset_leading": "Falls Sie nicht bald eine E-Mail erhalten, überprüfen Sie, ob die eingegebene E-Mail-Adresse korrekt ist. Überprüfen Sie außerdem Ihren Spam-Ordner oder wenden Sie sich an den Support, wenn das Problem weiterhin besteht.",
|
||||
"password_updated": "Passwort aktualisiert!",
|
||||
"pending_payment": "Zahlung ausstehend",
|
||||
"pending_invites": "Offene Einladungen",
|
||||
"confirmation_page_rainbow": "Sperren Sie Ihr Ereignis hinter Tokens oder NFTs auf Ethereum, Polygon und mehr.",
|
||||
"not_on_cal": "Nicht auf {{appName}}",
|
||||
"no_calendar_installed": "Kein Kalender installiert",
|
||||
@@ -1428,6 +1453,9 @@
|
||||
"disabled_calendar": "Wenn Sie einen anderen Kalender installiert haben, werden neue Buchungen zu dem Kalender hinzugefügt. Verbinden Sie andernfalls einen neuen Kalender, damit Sie keine neuen Buchungen verpassen.",
|
||||
"enable_apps": "Apps aktivieren",
|
||||
"enable_apps_description": "Apps aktivieren, die Benutzer mit Cal.com integrieren können",
|
||||
"purchase_license": "Lizenz kaufen",
|
||||
"already_have_key": "Ich habe bereits einen Key:",
|
||||
"already_have_key_suggestion": "Bitte fügen Sie Ihre vorhandene CALCOM_LICENSE_KEY Lizenz hier ein.",
|
||||
"app_is_enabled": "{{appName}} ist aktiviert",
|
||||
"app_is_disabled": "{{appName}} ist deaktiviert",
|
||||
"keys_have_been_saved": "Schlüssel wurden gespeichert",
|
||||
@@ -1448,6 +1476,7 @@
|
||||
"individual": "Person",
|
||||
"all_bookings_filter_label": "Alle Buchungen",
|
||||
"all_users_filter_label": "Alle Benutzer",
|
||||
"your_bookings_filter_label": "Ihre Buchungen",
|
||||
"meeting_url_variable": "Meeting-URL",
|
||||
"meeting_url_info": "Die URL der Meeting-Konferenz",
|
||||
"date_overrides": "Datumsüberschreibungen",
|
||||
@@ -1486,6 +1515,7 @@
|
||||
"round_robin_hosts": "Round-Robin-Veranstalter",
|
||||
"minimum_round_robin_hosts_count": "Anzahl der Veranstalter, die teilnehmen müssen",
|
||||
"hosts": "Veranstalter",
|
||||
"upgrade_to_enable_feature": "Sie müssen ein Team erstellen, um diese Funktion zu aktivieren. Klicken Sie hier, um ein Team zu erstellen.",
|
||||
"new_attendee": "Neuer Teilnehmer",
|
||||
"awaiting_approval": "Wartet auf Genehmigung",
|
||||
"requires_google_calendar": "Diese App erfordert eine Verbindung mit Google Calendar",
|
||||
@@ -1494,9 +1524,99 @@
|
||||
"continue_to_install_google_calendar": "Installation von Google Calender fortsetzen",
|
||||
"install_google_meet": "Google Meet installieren",
|
||||
"install_google_calendar": "Google Calendar installieren",
|
||||
"sender_name": "Absendername",
|
||||
"already_invited": "Teilnehmer bereits eingeladen",
|
||||
"no_recordings_found": "Keine Aufzeichnungen gefunden",
|
||||
"reporting": "Berichte",
|
||||
"reporting_feature": "Alle Daten anzeigen und als CSV herunterladen",
|
||||
"teams_plan_required": "Teamplan benötigt",
|
||||
"routing_forms_are_a_great_way": "Routing-Formulare sind eine gute Möglichkeit, Ihre eingehenden Leads zur richtigen Person zu leiten. Upgrade auf einen Teamplan, um auf diese Funktion zuzugreifen.",
|
||||
"choose_a_license": "Wählen Sie eine Lizenz",
|
||||
"choose_license_description": "Cal.com enthält eine kostenlose AGPLv3-Lizenz, die einige Einschränkungen enthält, die jederzeit auf eine Enterprise-Lizenz aktualisiert werden können. Sie können später jederzeit upgraden.",
|
||||
"license": "Lizenz",
|
||||
"agplv3_license": "AGPLv3 Lizenz",
|
||||
"ee_enterprise_license": "„/ee“ Enterprise-Lizenz",
|
||||
"enterprise_booking_fee": "Ab {{enterprise_booking_fee}}/Monat",
|
||||
"enterprise_license_includes": "Alles für einen kommerziellen Anwendungsfall",
|
||||
"no_need_to_keep_your_code_open_source": "Sie müssen Ihren Code nicht Open-Source lassen",
|
||||
"repackage_rebrand_resell": "Einfaches neuverpacken, rebranding und weiterverkaufen",
|
||||
"a_vast_suite_of_enterprise_features": "Eine große Auswahl an Enterprise-Funktionen",
|
||||
"free_license_fee": "0.00€/Monat",
|
||||
"forever_open_and_free": "Für immer offen & kostenlos",
|
||||
"required_to_keep_your_code_open_source": "Ihr Code muss Open-Source bleiben",
|
||||
"cannot_repackage_and_resell": "Kann nicht einfach neu verpackt, gerebrandet und weiterverkauft werden",
|
||||
"no_enterprise_features": "Keine Enterprise-Funktionen",
|
||||
"step_enterprise_license": "Enterprise-Lizenz",
|
||||
"step_enterprise_license_description": "Alles für einen kommerziellen Einsatzfall mit privatem Hosting, Umverpackung, Rebranding, Wiederverkauf und Zugriff auf exklusive Enterprise Komponenten.",
|
||||
"setup": "Einrichtung",
|
||||
"setup_description": "Cal.com Instanz einrichten",
|
||||
"configure": "Konfigurieren",
|
||||
"sso_configuration": "SAML-Konfiguration",
|
||||
"sso_configuration_description": "SAML/OIDC SSO konfigurieren und Teammitgliedern erlauben, sich mit einem Identity Provider anzumelden",
|
||||
"sso_oidc_heading": "SSO mit OIDC",
|
||||
"sso_oidc_description": "Konfigurieren Sie OIDC SSO mit einem Identity Provider Ihrer Wahl.",
|
||||
"sso_oidc_configuration_title": "OIDC-Konfiguration",
|
||||
"sso_oidc_configuration_description": "Konfigurieren Sie die OIDC-Verbindung zu Ihrem Identitätsanbieter. Sie finden die erforderlichen Informationen in Ihrem Identitätsanbieter.",
|
||||
"sso_oidc_callback_copied": "Callback-URL kopiert",
|
||||
"sso_saml_heading": "SSO mit SAML",
|
||||
"sso_saml_description": "Konfigurieren Sie SAML SSO mit Identity Provider Ihrer Wahl.",
|
||||
"sso_saml_configuration_title": "SAML-Konfiguration",
|
||||
"sso_saml_configuration_description": "Konfigurieren Sie SAML-Verbindung zu Ihrem Identitätsanbieter. Sie finden die erforderlichen Informationen in Ihrem Identitätsanbieter.",
|
||||
"sso_saml_acsurl_copied": "ACS-URL kopiert",
|
||||
"sso_saml_entityid_copied": "Entitäts-ID kopiert",
|
||||
"sso_connection_created_successfully": "{{connectionType}} Konfiguration erfolgreich erstellt",
|
||||
"sso_connection_deleted_successfully": "{{connectionType}} Konfiguration erfolgreich gelöscht",
|
||||
"delete_sso_configuration": "Lösche {{connectionType}} Konfiguration",
|
||||
"delete_sso_configuration_confirmation": "Ja, {{connectionType}} Konfiguration löschen",
|
||||
"delete_sso_configuration_confirmation_description": "Sind Sie sicher, dass Sie die {{connectionType}} -Konfiguration löschen möchten? Ihre Teammitglieder, die {{connectionType}} anmelden, werden keinen Zugriff mehr auf Cal.com haben.",
|
||||
"organizer_timezone": "Zeitzone des Veranstalters",
|
||||
"email_no_user_cta": "Erstellen Sie Ihr Konto",
|
||||
"email_user_cta": "Einladung anzeigen",
|
||||
"email_no_user_invite_heading": "Sie wurden eingeladen dem Team {{appName}} beizutreten",
|
||||
"email_no_user_invite_subheading": "{{invitedBy}} hat Sie eingeladen, dem Team {{appName}} beizutreten. {{appName}} ist der Event-Planer, der es Ihnen und Ihrem Team ermöglicht, Meetings ohne E-Mail Tennis zu planen.",
|
||||
"email_no_user_invite_steps_intro": "Wir begleiten Sie durch ein paar Schritte und Sie genießen stressfreie Planung mit Ihrem Team in kürzester Zeit.",
|
||||
"email_no_user_step_one": "Benutzernamen auswählen",
|
||||
"email_no_user_step_two": "Kalenderkonto verbinden",
|
||||
"email_no_user_step_three": "Verfügbarkeit festlegen",
|
||||
"email_no_user_step_four": "{{teamName}} beitreten",
|
||||
"email_no_user_signoff": "Glückliche Terminplanung wünscht das {{appName}} Team",
|
||||
"impersonation_user_tip": "Sie sind dabei einen Benutzer zu identifizieren, was bedeutet, dass Sie Änderungen in ihrem Namen vornehmen können. Bitte seien Sie vorsichtig.",
|
||||
"scheduler": "{Scheduler}",
|
||||
"available_variables": "Verfügbare Variablen",
|
||||
"recommended_next_steps": "Empfohlene nächste Schritte",
|
||||
"create_a_managed_event": "Erstellen Sie ein verwalteten Ereignistyp",
|
||||
"meetings_are_better_with_the_right": "Treffen sind besser mit den richtigen Teammitgliedern. Laden Sie sie jetzt ein.",
|
||||
"collective_or_roundrobin": "Kollektiv oder Round-Robin",
|
||||
"book_your_team_members": "Buchen Sie Ihre Teammitglieder zusammen mit Kollektivveranstaltungen oder wählen Sie anhand Round-Robin die richtige Person.",
|
||||
"default_app_link_title": "Standard-App-Link festlegen",
|
||||
"default_app_link_description": "Mit dem Festlegen eines Standard-App-Links können alle neu erstellten Ereignistypen den App-Link verwenden, den Sie gesetzt haben.",
|
||||
"change_default_conferencing_app": "Als Standard festlegen",
|
||||
"booking_confirmation_failed": "Buchungsbestätigung fehlgeschlagen"
|
||||
"under_maintenance": "Wartungsarbeiten",
|
||||
"under_maintenance_description": "Das {{appName}} -Team führt geplante Wartungsarbeiten durch. Wenn Sie Fragen haben, wenden Sie sich bitte an den Support.",
|
||||
"event_type_seats": "{{numberOfSeats}} Sitze",
|
||||
"booking_with_payment_cancelled": "Zahlung für dieses Ereignis ist nicht mehr möglich",
|
||||
"booking_with_payment_cancelled_already_paid": "Eine Rückerstattung für diese Buchungszahlung ist auf dem Weg.",
|
||||
"booking_with_payment_cancelled_refunded": "Diese Buchungszahlung wurde zurückerstattet.",
|
||||
"booking_confirmation_failed": "Buchungsbestätigung fehlgeschlagen",
|
||||
"get_started_zapier_templates": "Beginnen Sie mit Zapier-Templates",
|
||||
"a_routing_form": "Ein Routing-Formular",
|
||||
"form_description_placeholder": "Formularbeschreibung",
|
||||
"keep_me_connected_with_form": "Mich mit dem Formular verbunden lassen",
|
||||
"fields_in_form_duplicated": "Alle Änderungen in Router und Felder des Formulars, die dupliziert werden, werden auch im Duplikat wiedergegeben.",
|
||||
"form_deleted": "Formular gelöscht",
|
||||
"delete_form": "Formular löschen",
|
||||
"delete_form_action": "Ja, Formular löschen",
|
||||
"delete_form_confirmation": "Sind Sie sicher, dass Sie dieses Formular löschen möchten? Jede Person, mit dem Link kann nicht mehr mit dem Formular buchen. Außerdem wurden alle zugehörigen Antworten gelöscht.",
|
||||
"typeform_redirect_url_copied": "Typeform Umleitungs-URL kopiert! Sie können die URL in Typeform einstellen.",
|
||||
"modifications_in_fields_warning": "Änderungen in den Feldern und Routen der folgenden Formulare werden in diesem Formular reflektiert.",
|
||||
"connected_forms": "Verbundene Formulare",
|
||||
"form_modifications_warning": "Folgende Formulare wären betroffen, wenn Sie hier Felder oder Routen ändern.",
|
||||
"responses_collection_waiting_description": "Warten Sie einige Zeit, bis Antworten gesammelt werden. Sie können das Formular auch selbst abschicken.",
|
||||
"this_is_what_your_users_would_see": "Dies ist, was Ihre Benutzer sehen würden",
|
||||
"identifies_name_field": "Identifiziert Feld mit diesem Namen.",
|
||||
"add_1_option_per_line": "1 Option pro Zeile hinzufügen",
|
||||
"select_a_router": "Router auswählen",
|
||||
"add_a_new_route": "Neue Route hinzufügen",
|
||||
"no_responses_yet": "Noch keine Antworten",
|
||||
"this_will_be_the_placeholder": "Dies wird der Platzhalter sein"
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
"upgrade_now": "Mettre à niveau maintenant",
|
||||
"accept_invitation": "Accepter l'invitation",
|
||||
"calcom_explained": "{{appName}} fournit une infrastructure de planification pour absolument tout le monde.",
|
||||
"calcom_explained_new_user": "Terminez la configuration de votre compte {{appName}} ! Vous n'êtes qu'à quelques pas de résoudre tous vos problèmes de planification.",
|
||||
"have_any_questions": "Vous avez des questions ? Nous sommes là pour vous aider.",
|
||||
"reset_password_subject": "{{appName}} : Instructions de réinitialisation de mot de passe",
|
||||
"event_declined_subject": "Refusé : {{title}} à {{date}}",
|
||||
@@ -20,9 +21,11 @@
|
||||
"cancellation_reason_placeholder": "Pourquoi annulez-vous ?",
|
||||
"rejection_reason": "Motif de refus",
|
||||
"rejection_reason_title": "Refuser la demande de réservation ?",
|
||||
"rejection_reason_description": "Êtes-vous sûr(e) de vouloir refuser la réservation ? Nous informerons la personne qui a tenté de réserver. Vous pouvez fournir un motif ci-dessous.",
|
||||
"rejection_reason_description": "Voulez-vous vraiment refuser la réservation ? Nous informerons la personne qui a tenté de réserver. Vous pouvez fournir un motif ci-dessous.",
|
||||
"rejection_confirmation": "Refuser la réservation",
|
||||
"manage_this_event": "Gérer cet événement",
|
||||
"invite_team_member": "Inviter un membre d'équipe",
|
||||
"invite_team_notifcation_badge": "Inv.",
|
||||
"your_event_has_been_scheduled": "Votre événement a été planifié",
|
||||
"your_event_has_been_scheduled_recurring": "Votre événement récurrent a été planifié",
|
||||
"accept_our_license": "Acceptez notre licence en changeant la variable .env <1>NEXT_PUBLIC_LICENSE_CONSENT</1> en « {{agree}} ».",
|
||||
@@ -108,13 +111,13 @@
|
||||
"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 impayées. À {{seatPrice}} $/mois par place, le coût total estimé de votre abonnement est de {{totalCost}} $/mois.",
|
||||
"team_upgrade_banner_description": "Merci d'avoir essayé notre nouveau plan d'équipe. Nous avons remarqué que votre équipe « {{teamName}} » doit être mise à niveau.",
|
||||
"team_upgrade_banner_description": "Merci d'avoir essayé notre nouveau plan Équipes. Nous avons remarqué que votre équipe « {{teamName}} » doit être mise à niveau.",
|
||||
"team_upgrade_banner_action": "Mettre à niveau",
|
||||
"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é ? - {{appName}}",
|
||||
"delete_webhook_confirmation_message": "Êtes-vous sûr(e) de vouloir supprimer ce webhook ? Vous ne recevrez plus les données de rendez-vous de {{appName}} à un lien spécifié, en temps réel, lorsqu'un événement est planifié ou annulé.",
|
||||
"delete_webhook_confirmation_message": "Voulez-vous vraiment supprimer ce webhook ? Vous ne recevrez plus les données de rendez-vous de {{appName}} à un lien spécifié, en temps réel, lorsqu'un événement est planifié ou annulé.",
|
||||
"confirm_delete_webhook": "Oui, supprimer le webhook",
|
||||
"edit_webhook": "Modifier le webhook",
|
||||
"delete_webhook": "Supprimer le webhook",
|
||||
@@ -410,6 +413,8 @@
|
||||
"password_updated_successfully": "Mot de passe mis à jour avec succès",
|
||||
"password_has_been_changed": "Votre mot de passe a été modifié avec succès.",
|
||||
"error_changing_password": "Erreur lors de la modification du mot de passe",
|
||||
"session_timeout_changed": "La configuration de votre session a été mise à jour avec succès.",
|
||||
"session_timeout_change_error": "Erreur lors de la mise à jour de la configuration de la session",
|
||||
"something_went_wrong": "Une erreur s'est produite.",
|
||||
"something_doesnt_look_right": "Quelque chose ne va pas ?",
|
||||
"please_try_again": "Veuillez réessayer.",
|
||||
@@ -423,11 +428,12 @@
|
||||
"forgotten_secret_description": "Vous pouvez modifier ce secret si vous l'avez perdu ou oublié. Soyez cependant conscient que toutes les intégrations l'utilisant devront être mises à jour.",
|
||||
"current_incorrect_password": "Le mot de passe actuel est incorrect",
|
||||
"password_hint_caplow": "Mélange de lettres majuscules et minuscules",
|
||||
"password_hint_min": "Minimum 7 caractères",
|
||||
"password_hint_min": "7 caractères minimum",
|
||||
"password_hint_admin_min": "Minimum 15 caractères",
|
||||
"password_hint_num": "Contient au moins 1 chiffre",
|
||||
"invalid_password_hint": "Le mot de passe doit contenir au moins {{passwordLength}} caractères, un chiffre et un mélange de lettres, majuscules et minuscules.",
|
||||
"invalid_password_hint": "Le mot de passe doit contenir au moins {{passwordLength}} caractères, un chiffre et un mélange de lettres majuscules et minuscules.",
|
||||
"incorrect_password": "Le mot de passe est incorrect.",
|
||||
"incorrect_username_password": "Le nom d'utilisateur ou le mot de passe est incorrect.",
|
||||
"24_h": "24 h",
|
||||
"use_setting": "Utiliser le paramètre",
|
||||
"am_pm": "AM/PM",
|
||||
@@ -455,6 +461,7 @@
|
||||
"slots_load_fail": "Impossible de charger les créneaux disponibles.",
|
||||
"additional_guests": "Ajouter des invités",
|
||||
"your_name": "Votre nom",
|
||||
"your_full_name": "Votre nom complet",
|
||||
"email_address": "Adresse e-mail",
|
||||
"enter_valid_email": "Veuillez saisir une adresse e-mail valide",
|
||||
"location": "Lieu",
|
||||
@@ -508,6 +515,8 @@
|
||||
"admin": "Administrateur",
|
||||
"administrator_user": "Utilisateur administrateur",
|
||||
"lets_create_first_administrator_user": "Nous allons créer le premier utilisateur administrateur.",
|
||||
"admin_user_created": "Utilisateur administrateur configuré",
|
||||
"admin_user_created_description": "Vous avez déjà créé un utilisateur administrateur. Vous pouvez maintenant vous connecter à votre compte.",
|
||||
"new_member": "Nouveau membre",
|
||||
"invite": "Inviter",
|
||||
"add_team_members": "Ajouter des membres d'équipe",
|
||||
@@ -531,8 +540,8 @@
|
||||
"confirm": "Confirmer",
|
||||
"confirm_all": "Confirmer tout",
|
||||
"disband_team": "Dissoudre l'équipe",
|
||||
"disband_team_confirmation_message": "Êtes-vous sûr(e) de vouloir dissoudre cette équipe ? Toute personne avec qui vous avez partagé ce lien d'équipe ne pourra plus faire de réservation en l'utilisant.",
|
||||
"remove_member_confirmation_message": "Êtes-vous sûr de vouloir retirer ce membre de l'équipe ?",
|
||||
"disband_team_confirmation_message": "Voulez-vous vraiment dissoudre cette équipe ? Toute personne avec qui vous avez partagé ce lien d'équipe ne pourra plus faire de réservation en l'utilisant.",
|
||||
"remove_member_confirmation_message": "Voulez-vous vraiment supprimer ce membre de l'équipe ?",
|
||||
"confirm_disband_team": "Oui, dissoudre l'équipe",
|
||||
"confirm_remove_member": "Oui, retirer le membre",
|
||||
"remove_member": "Supprimer le membre",
|
||||
@@ -551,7 +560,7 @@
|
||||
"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": "Êtes-vous sûr(e) de vouloir quitter cette équipe ? Vous ne pourrez plus l'utiliser pour effectuer des réservations.",
|
||||
"leave_team_confirmation_message": "Voulez-vous vraiment quitter cette équipe ? Vous ne pourrez plus l'utiliser pour effectuer des réservations.",
|
||||
"user_from_team": "{{user}} de {{team}}",
|
||||
"preview": "Aperçu",
|
||||
"link_copied": "Lien copié !",
|
||||
@@ -658,6 +667,7 @@
|
||||
"edit_availability": "Modifier les disponibilités",
|
||||
"configure_availability": "Définissez les moments où vous êtes disponible pour les réservations.",
|
||||
"copy_times_to": "Copier les créneaux vers",
|
||||
"copy_times_to_tooltip": "Copier les horaires dans…",
|
||||
"change_weekly_schedule": "Modifier votre planning hebdomadaire",
|
||||
"logo": "Logo",
|
||||
"error": "Erreur",
|
||||
@@ -669,8 +679,9 @@
|
||||
"add_attendees": "Ajouter des participants",
|
||||
"show_advanced_settings": "Afficher les paramètres avancés",
|
||||
"event_name": "Nom de l'événement",
|
||||
"event_name_in_calendar": "Nom de l'événement dans le calendrier",
|
||||
"event_name_tooltip": "Le nom qui apparaîtra dans les calendriers",
|
||||
"meeting_with_user": "Rendez-vous avec {{attendeeName}}",
|
||||
"meeting_with_user": "{Event type title} entre {Organiser} et {Scheduler}",
|
||||
"additional_inputs": "Champs supplémentaires",
|
||||
"additional_input_description": "Exiger que le planificateur saisisse des champs supplémentaires avant la confirmation de la réservation.",
|
||||
"label": "Libellé",
|
||||
@@ -723,12 +734,12 @@
|
||||
"minimum_booking_notice": "Préavis minimum",
|
||||
"slot_interval": "Fréquence de créneaux horaires",
|
||||
"slot_interval_default": "Utiliser la durée de l'événement (par défaut)",
|
||||
"delete_event_type_description": "Êtes-vous sûr(e) de vouloir supprimer ce type d'événement ? Toute personne avec qui vous avez partagé ce lien ne pourra plus faire de réservation en l'utilisant.",
|
||||
"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 faire de réservation 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(e) de vouloir supprimer votre compte {{appName}} ? 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 sauvegardées seront perdues.",
|
||||
"delete_account_confirmation_message": "Voulez-vous vraiment supprimer votre compte {{appName}} ? 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 sauvegardées seront perdues.",
|
||||
"integrations": "Intégrations",
|
||||
"apps": "Applications",
|
||||
"apps_description": "Vous trouverez ici une liste de vos applications.",
|
||||
@@ -787,6 +798,7 @@
|
||||
"number_apps_one": "{{count}} Application",
|
||||
"number_apps_other": "{{count}} applications",
|
||||
"trending_apps": "Applications populaires",
|
||||
"most_popular": "Le plus populaire",
|
||||
"explore_apps": "Applications {{category}}",
|
||||
"installed_apps": "Applications installées",
|
||||
"free_to_use_apps": "Gratuit",
|
||||
@@ -797,12 +809,14 @@
|
||||
"no_category_apps_description_analytics": "Ajoutez une application d'analyse pour vos pages de réservation.",
|
||||
"no_category_apps_description_automation": "Ajoutez une application d'automatisation.",
|
||||
"no_category_apps_description_other": "Ajoutez n'importe quel autre type d'application pour faire toutes sortes de choses.",
|
||||
"no_category_apps_description_web3": "Ajoutez une application Web3 pour vos pages de réservation.",
|
||||
"installed_app_calendar_description": "Définissez les calendriers pour vérifier les conflits afin d'éviter les réservations en double.",
|
||||
"installed_app_conferencing_description": "Ajoutez vos applications de visioconférence préférées pour vos rendez-vous.",
|
||||
"installed_app_payment_description": "Configurez les services de traitement de paiement à utiliser lors de la facturation de vos clients.",
|
||||
"installed_app_analytics_description": "Configurez les applications d'analyse à utiliser pour vos pages de réservation.",
|
||||
"installed_app_other_description": "Toutes vos applications installées à partir d'autres catégories.",
|
||||
"installed_app_automation_description": "Configurez les applications d'automatisation à utiliser.",
|
||||
"installed_app_web3_description": "Configurez les applications Web3 à utiliser pour vos pages de réservation.",
|
||||
"analytics": "Analytiques",
|
||||
"empty_installed_apps_headline": "Aucune application installée",
|
||||
"empty_installed_apps_description": "Les applications vous permettent d'améliorer votre workflow et votre processus de planification de façon significative.",
|
||||
@@ -829,7 +843,7 @@
|
||||
"connect_metamask": "Connecter MetaMask",
|
||||
"create_events_on": "Créer des événements dans :",
|
||||
"enterprise_license": "Il s'agit d'une fonctionnalité d'entreprise",
|
||||
"enterprise_license_description": "Pour activer cette fonctionnalité, obtenez une clé de déploiement sur la console {{consoleUrl}} et ajoutez-la à votre fichier .env en tant que CALCOM_LICENSE_KEY. Si votre équipe a déjà une licence, veuillez contacter {{supportMail}} pour obtenir de l'aide.",
|
||||
"enterprise_license_description": "Pour activer cette fonctionnalité, demandez à un administrateur d'accéder à {{setupUrl}} pour saisir une clé de licence. Si une clé de licence est déjà en place, veuillez contacter {{supportMail}} pour obtenir de l'aide.",
|
||||
"missing_license": "Licence manquante",
|
||||
"signup_requires": "Licence commerciale requise",
|
||||
"signup_requires_description": "{{companyName}} ne propose actuellement pas de version open source gratuite de la page d'inscription. Pour recevoir un accès complet aux composants d'inscription, vous devez acquérir une licence commerciale. Pour un usage personnel, nous recommandons la plateforme de données Prisma ou toute autre interface Postgres pour créer des comptes.",
|
||||
@@ -930,6 +944,11 @@
|
||||
"current_location": "Lieu actuel",
|
||||
"user_phone": "Votre numéro de téléphone",
|
||||
"new_location": "Nouveau lieu",
|
||||
"session": "Session",
|
||||
"session_description": "Contrôlez la session de votre compte.",
|
||||
"session_timeout_after": "Expiration de la session après",
|
||||
"session_timeout": "Expiration de la session",
|
||||
"session_timeout_description": "Invalidez votre session après un certain temps.",
|
||||
"no_location": "Aucun lieu défini",
|
||||
"set_location": "Définir le lieu",
|
||||
"update_location": "Mettre à jour le lieu",
|
||||
@@ -1010,7 +1029,7 @@
|
||||
"workflow_name": "Nom du workflow",
|
||||
"custom_workflow": "Workflow personnalisé",
|
||||
"workflow_created_successfully": "{{workflowName}} créé avec succès",
|
||||
"delete_workflow_description": "Êtes-vous sûr(e) de vouloir supprimer ce workflow ?",
|
||||
"delete_workflow_description": "Voulez-vous vraiment supprimer ce workflow ?",
|
||||
"delete_workflow": "Supprimer le workflow",
|
||||
"confirm_delete_workflow": "Oui, supprimer le workflow",
|
||||
"workflow_deleted_successfully": "Workflow supprimé avec succès",
|
||||
@@ -1034,7 +1053,7 @@
|
||||
"trial_expired": "Votre période d'essai a expiré",
|
||||
"remove_app": "Supprimer l'application",
|
||||
"yes_remove_app": "Oui, supprimer l'application",
|
||||
"are_you_sure_you_want_to_remove_this_app": "Êtes-vous sûr(e) de vouloir supprimer cette application ?",
|
||||
"are_you_sure_you_want_to_remove_this_app": "Voulez-vous vraiment supprimer cette application ?",
|
||||
"app_removed_successfully": "Application supprimée avec succès",
|
||||
"error_removing_app": "Erreur lors de la suppression de l'application",
|
||||
"web_conference": "Visioconférence",
|
||||
@@ -1073,6 +1092,7 @@
|
||||
"broken_video_action": "Nous n'avons pas pu ajouter le lien <1>{{location}}</1> à votre événement planifié. Contactez vos invités ou mettez à jour votre événement de calendrier pour ajouter les détails. Vous pouvez <3> changer le lieu sur le type d'événement</3> ou essayer <5>de supprimer et d'ajouter à nouveau l'application.</5>",
|
||||
"broken_calendar_action": "Nous n'avons pas pu mettre à jour votre <1>{{calendar}}</1>. <2> Veuillez vérifier les paramètres de votre calendrier ou supprimer et ajouter votre calendrier à nouveau </2>",
|
||||
"attendee_name": "Nom du participant",
|
||||
"scheduler_full_name": "Le nom complet de la personne qui effectue la réservation",
|
||||
"broken_integration": "Intégration défaillante",
|
||||
"problem_adding_video_link": "Un problème est survenu lors de l'ajout d'un lien vidéo",
|
||||
"problem_updating_calendar": "Un problème est survenu lors de la mise à jour de votre calendrier",
|
||||
@@ -1098,8 +1118,8 @@
|
||||
"upgrade_to_access_recordings_title": "Mettez à niveau pour accéder aux enregistrements",
|
||||
"upgrade_to_access_recordings_description": "Les enregistrements ne sont disponibles que dans le plan d'équipes. Mettez à niveau pour commencer à enregistrer vos appels.",
|
||||
"recordings_are_part_of_the_teams_plan": "Les enregistrements font partie du plan d'équipes",
|
||||
"team_feature_teams": "Ceci est une fonctionnalité d'équipe. Mettez à jour vers le plan Team pour voir les disponibilités de votre équipe.",
|
||||
"team_feature_workflows": "Ceci est une fonctionnalité d'équipe. Mettez à jour vers le plan Team pour automatiser vos notifications et rappels d'événements avec les workflows.",
|
||||
"team_feature_teams": "Ceci est une fonctionnalité d'équipe. Mettez à jour vers le plan Équipes pour voir les disponibilités de votre équipe.",
|
||||
"team_feature_workflows": "Ceci est une fonctionnalité d'équipe. Mettez à jour vers le plan Équipes pour automatiser vos notifications et rappels d'événements avec les workflows.",
|
||||
"show_eventtype_on_profile": "Afficher sur le profil",
|
||||
"embed": "Intégrer",
|
||||
"new_username": "Nouveau nom d'utilisateur",
|
||||
@@ -1123,7 +1143,7 @@
|
||||
"no_input": "Aucun champ",
|
||||
"test_workflow_action": "Tester l'action du workflow",
|
||||
"send_sms": "Envoyer un SMS",
|
||||
"send_sms_to_number": "Êtes-vous sûr(e) de vouloir envoyer un SMS au {{number}} ?",
|
||||
"send_sms_to_number": "Voulez-vous vraiment envoyer un SMS au {{number}} ?",
|
||||
"missing_connected_calendar": "Aucun calendrier par défaut connecté",
|
||||
"connect_your_calendar_and_link": "Vous pouvez connecter votre calendrier depuis <1>ici</1>.",
|
||||
"default_calendar_selected": "Calendrier par défaut",
|
||||
@@ -1152,7 +1172,7 @@
|
||||
"personal_cal_url": "Mon lien {{appName}} personnel",
|
||||
"bio_hint": "Quelques mots à propos de vous. Ces informations apparaîtront sur votre page publique.",
|
||||
"delete_account_modal_title": "Supprimer le compte",
|
||||
"confirm_delete_account_modal": "Êtes-vous sûr(e) de vouloir supprimer votre compte {{appName}} ?",
|
||||
"confirm_delete_account_modal": "Voulez-vous vraiment supprimer votre compte {{appName}} ?",
|
||||
"delete_my_account": "Supprimer mon compte",
|
||||
"start_of_week": "Début de la semaine",
|
||||
"recordings_title": "Enregistrements",
|
||||
@@ -1215,6 +1235,7 @@
|
||||
"connect_automation_apps": "Connecter des applications d'automatisation",
|
||||
"connect_analytics_apps": "Connecter des applications analytiques",
|
||||
"connect_other_apps": "Connecter d'autres applications",
|
||||
"connect_web3_apps": "Connecter des apps Web3",
|
||||
"current_step_of_total": "Étape {{currentStep}} sur {{maxSteps}}",
|
||||
"add_variable": "Ajouter une variable",
|
||||
"custom_phone_number": "Numéro de téléphone personnalisé",
|
||||
@@ -1231,6 +1252,7 @@
|
||||
"to": "À",
|
||||
"workflow_turned_on_successfully": "Le workflow {{workflowName}} a été {{offOn}} avec succès",
|
||||
"download_responses": "Télécharger les réponses",
|
||||
"download_responses_description": "Téléchargez toutes les réponses à votre formulaire au format CSV.",
|
||||
"download": "Télécharger",
|
||||
"create_your_first_form": "Créez votre premier formulaire",
|
||||
"create_your_first_form_description": "Avec les formulaires de routage, vous pouvez poser des questions de qualification et rediriger vers la bonne personne ou le bon type d'événement.",
|
||||
@@ -1268,10 +1290,12 @@
|
||||
"exchange_authentication_standard": "Authentification de base",
|
||||
"exchange_authentication_ntlm": "Authentification NTLM",
|
||||
"exchange_compression": "Compression GZip",
|
||||
"routing_forms_description": "Vous pouvez voir tous les formulaires et parcours que vous avez créés ici.",
|
||||
"routing_forms_description": "Vous pouvez voir tous les formulaires et routes que vous avez créés ici.",
|
||||
"routing_forms_send_email_owner": "Envoyer un e-mail au propriétaire",
|
||||
"routing_forms_send_email_owner_description": "Envoie un e-mail au propriétaire lorsque le formulaire est soumis",
|
||||
"add_new_form": "Ajouter un nouveau formulaire",
|
||||
"create_your_first_route": "Créez votre première route",
|
||||
"route_to_the_right_person": "Acheminez vers la bonne personne en fonction des réponses à votre formulaire.",
|
||||
"form_description": "Créez votre formulaire pour acheminer un organisateur",
|
||||
"copy_link_to_form": "Copier le lien vers le formulaire",
|
||||
"theme": "Apparence",
|
||||
@@ -1302,6 +1326,7 @@
|
||||
"password_reset_leading": "Si vous ne recevez pas d'e-mail bientôt, vérifiez que l'adresse e-mail que vous avez saisie est correcte, vérifiez vos spams ou contactez l'assistance si le problème persiste.",
|
||||
"password_updated": "Mot de passe mis à jour !",
|
||||
"pending_payment": "Paiement en attente",
|
||||
"pending_invites": "Invitations en attente",
|
||||
"confirmation_page_rainbow": "Le token protège votre événement avec des tokens ou des NFT sur Ethereum, Polygon et plus encore.",
|
||||
"not_on_cal": "Pas sur {{appName}}",
|
||||
"no_calendar_installed": "Aucun calendrier installé",
|
||||
@@ -1404,7 +1429,7 @@
|
||||
"sender_id_error_message": "Seules les lettres, chiffres et espaces sont autorisés (max. 11 caractères)",
|
||||
"test_routing_form": "Tester le formulaire de routage",
|
||||
"test_preview": "Tester l'aperçu",
|
||||
"route_to": "Router vers",
|
||||
"route_to": "Rediriger vers",
|
||||
"test_preview_description": "Tester votre formulaire de routage sans envoyer de données",
|
||||
"test_routing": "Tester le routage",
|
||||
"payment_app_disabled": "Un administrateur a désactivé une application de paiement",
|
||||
@@ -1428,6 +1453,9 @@
|
||||
"disabled_calendar": "Si un autre calendrier est installé, les nouvelles réservations y seront ajoutées. Si ce n'est pas le cas, connectez un nouveau calendrier pour ne pas manquer de nouvelles réservations.",
|
||||
"enable_apps": "Activer les applications",
|
||||
"enable_apps_description": "Activer les applications que les utilisateurs peuvent intégrer à Cal.com",
|
||||
"purchase_license": "Acheter une licence",
|
||||
"already_have_key": "J'ai déjà une clé :",
|
||||
"already_have_key_suggestion": "Veuillez copier votre variable d'environnement CALCOM_LICENSE_KEY existante ici.",
|
||||
"app_is_enabled": "{{appName}} est activé",
|
||||
"app_is_disabled": "{{appName}} est désactivé",
|
||||
"keys_have_been_saved": "Les clés ont été sauvegardées",
|
||||
@@ -1448,6 +1476,7 @@
|
||||
"individual": "Individuel",
|
||||
"all_bookings_filter_label": "Toutes les réservations",
|
||||
"all_users_filter_label": "Tous les utilisateurs",
|
||||
"your_bookings_filter_label": "Vos réservations",
|
||||
"meeting_url_variable": "Lien du rendez-vous",
|
||||
"meeting_url_info": "Lien de la visioconférence du rendez-vous",
|
||||
"date_overrides": "Superpositions de dates",
|
||||
@@ -1486,7 +1515,7 @@
|
||||
"round_robin_hosts": "Hôtes round-robin",
|
||||
"minimum_round_robin_hosts_count": "Nombre d'hôtes requis pour participer",
|
||||
"hosts": "Hôtes",
|
||||
"upgrade_to_enable_feature": "Vous devez mettre à niveau pour activer cette fonctionnalité. Cliquez pour mettre à niveau.",
|
||||
"upgrade_to_enable_feature": "Vous devez créer une équipe pour activer cette fonctionnalité. Cliquez pour créer une équipe.",
|
||||
"new_attendee": "Nouveau participant",
|
||||
"awaiting_approval": "En attente de validation",
|
||||
"requires_google_calendar": "Cette application nécessite une connexion à Google Agenda",
|
||||
@@ -1495,9 +1524,100 @@
|
||||
"continue_to_install_google_calendar": "Continuer à installer Google Agenda",
|
||||
"install_google_meet": "Installer Google Meet",
|
||||
"install_google_calendar": "Installer Google Agenda",
|
||||
"sender_name": "Nom de l'expéditeur",
|
||||
"already_invited": "Participant déjà invité",
|
||||
"no_recordings_found": "Aucun enregistrement trouvé",
|
||||
"reporting": "Rapports",
|
||||
"reporting_feature": "Voir toutes les données entrantes et les télécharger au format CSV.",
|
||||
"teams_plan_required": "Plan Équipes requis",
|
||||
"routing_forms_are_a_great_way": "Les formulaires de routage sont un excellent moyen d'acheminer vos prospects entrants vers la bonne personne. Passez au plan Équipes pour accéder à cette fonctionnalité.",
|
||||
"choose_a_license": "Choisir une licence",
|
||||
"choose_license_description": "Cal.com est fourni avec licence AGPLv3 accessible et gratuite (avec certaines limitations) qui peut être mis à niveau vers une licence Entreprise à tout moment. Vous pouvez mettre à niveau à tout moment plus tard.",
|
||||
"license": "Licence",
|
||||
"agplv3_license": "Licence AGPLv3",
|
||||
"ee_enterprise_license": "Licence Entreprise « /ee »",
|
||||
"enterprise_booking_fee": "À partir de {{enterprise_booking_fee}}/mois",
|
||||
"enterprise_license_includes": "Tout pour un usage commercial",
|
||||
"no_need_to_keep_your_code_open_source": "Pas besoin de garder votre code open source",
|
||||
"repackage_rebrand_resell": "Restructurez, changez de marque et revendez facilement",
|
||||
"a_vast_suite_of_enterprise_features": "Une vaste suite de fonctionnalités d'entreprise",
|
||||
"free_license_fee": "0,00 $/mois",
|
||||
"forever_open_and_free": "Ouvert et gratuit pour toujours",
|
||||
"required_to_keep_your_code_open_source": "Votre code doit rester open source",
|
||||
"cannot_repackage_and_resell": "Impossible de restructurer, changer de marque et revendre facilement",
|
||||
"no_enterprise_features": "Aucune fonctionnalité d'entreprise",
|
||||
"step_enterprise_license": "Licence Entreprise",
|
||||
"step_enterprise_license_description": "Tout pour une utilisation commerciale avec hébergement privé, restructuration, changement de marque, revente et accès à des composants d'entreprise exclusifs.",
|
||||
"setup": "Configurer",
|
||||
"setup_description": "Configurez l'instance Cal.com.",
|
||||
"configure": "Configurer",
|
||||
"sso_configuration": "Authentification unique",
|
||||
"sso_configuration_description": "Configurez le SSO SAML/OIDC et autorisez les membres d'équipe à se connecter à l'aide d'un fournisseur d'identité.",
|
||||
"sso_oidc_heading": "SSO avec OIDC",
|
||||
"sso_oidc_description": "Configurez le SSO OIDC avec le fournisseur d'identité de votre choix.",
|
||||
"sso_oidc_configuration_title": "Configuration OIDC",
|
||||
"sso_oidc_configuration_description": "Configurez la connexion OIDC à votre fournisseur d'identité. Vous pouvez trouver les informations requises dans votre fournisseur d'identité.",
|
||||
"sso_oidc_callback_copied": "Lien de rappel copié",
|
||||
"sso_saml_heading": "SSO avec SAML",
|
||||
"sso_saml_description": "Configurez le SSO SAML avec le fournisseur d'identité de votre choix.",
|
||||
"sso_saml_configuration_title": "Configuration SAML",
|
||||
"sso_saml_configuration_description": "Configurez la connexion SAML à votre fournisseur d'identité. Vous pouvez trouver les informations requises dans votre fournisseur d'identité.",
|
||||
"sso_saml_acsurl_copied": "Lien ACS copié",
|
||||
"sso_saml_entityid_copied": "ID d'entité copié",
|
||||
"sso_connection_created_successfully": "Configuration {{connectionType}} créée avec succès",
|
||||
"sso_connection_deleted_successfully": "Configuration {{connectionType}} supprimée avec succès",
|
||||
"delete_sso_configuration": "Supprimer la configuration {{connectionType}}",
|
||||
"delete_sso_configuration_confirmation": "Oui, supprimer la configuration {{connectionType}}",
|
||||
"delete_sso_configuration_confirmation_description": "Voulez-vous vraiment supprimer la configuration {{connectionType}} ? Les membres de votre équipe utilisant la connexion {{connectionType}} ne pourront plus accéder à Cal.com.",
|
||||
"organizer_timezone": "Fuseau horaire de l'organisateur",
|
||||
"email_no_user_cta": "Créez votre compte",
|
||||
"email_user_cta": "Voir l'invitation",
|
||||
"email_no_user_invite_heading": "Vous avez été invité(e) à rejoindre une équipe sur {{appName}}",
|
||||
"email_no_user_invite_subheading": "{{invitedBy}} a été invité à rejoindre son équipe sur {{appName}}. {{appName}} est le planificateur d'événements qui vous permet, à vous et à votre équipe, de planifier des rendez-vous sans les allers-retours par e-mail.",
|
||||
"email_no_user_invite_steps_intro": "Nous vous guiderons à travers quelques étapes courtes et vous profiterez d'une planification sans stress avec votre équipe en un rien de temps.",
|
||||
"email_no_user_step_one": "Choisissez votre nom d'utilisateur",
|
||||
"email_no_user_step_two": "Connectez votre compte de calendrier",
|
||||
"email_no_user_step_three": "Définissez vos disponibilités",
|
||||
"email_no_user_step_four": "Rejoignez {{teamName}}",
|
||||
"email_no_user_signoff": "Bonne planification de la part de l'équipe {{appName}}",
|
||||
"impersonation_user_tip": "Vous êtes sur le point d'emprunter l'identité d'un utilisateur, ce qui signifie que vous pouvez effectuer des modifications en son nom. S'il vous plaît, soyez prudent(e).",
|
||||
"scheduler": "{Scheduler}",
|
||||
"available_variables": "Variables disponibles",
|
||||
"recommended_next_steps": "Étapes suivantes recommandées",
|
||||
"create_a_managed_event": "Créer un type d'événement géré",
|
||||
"meetings_are_better_with_the_right": "Les rendez-vous sont meilleurs avec les bons membres d'équipe. Invitez-les maintenant.",
|
||||
"create_a_one_one_template": "Créez un modèle unique pour un type d'événement et distribuez-le à plusieurs membres.",
|
||||
"collective_or_roundrobin": "Collective ou round-robin",
|
||||
"book_your_team_members": "Réservez les membres de votre équipe entre eux avec des événements collectifs ou mettez en place un cycle pour obtenir la bonne personne avec le round-robin.",
|
||||
"default_app_link_title": "Définir un lien d'application par défaut",
|
||||
"default_app_link_description": "Définir un lien d'application par défaut permet à tous les nouveaux types d'événements d'utiliser le lien d'application que vous avez défini.",
|
||||
"change_default_conferencing_app": "Définir par défaut",
|
||||
"booking_confirmation_failed": "Échec de la confirmation de la réservation"
|
||||
"under_maintenance": "En cours de maintenance",
|
||||
"under_maintenance_description": "L'équipe {{appName}} effectue une maintenance planifiée. Si vous avez des questions, veuillez contacter l'assistance.",
|
||||
"event_type_seats": "{{numberOfSeats}} places",
|
||||
"booking_with_payment_cancelled": "Payer pour cet événement n'est plus possible",
|
||||
"booking_with_payment_cancelled_already_paid": "Un remboursement pour ce paiement de réservation est en route.",
|
||||
"booking_with_payment_cancelled_refunded": "Ce paiement de réservation a été remboursé.",
|
||||
"booking_confirmation_failed": "Échec de la confirmation de la réservation",
|
||||
"get_started_zapier_templates": "Démarrer avec les modèles Zapier",
|
||||
"a_routing_form": "Un formulaire de routage",
|
||||
"form_description_placeholder": "Description du formulaire",
|
||||
"keep_me_connected_with_form": "Rester connecté avec le formulaire",
|
||||
"fields_in_form_duplicated": "Toute modification du routeur et des champs du formulaire dupliqué se répercutera dans la duplication.",
|
||||
"form_deleted": "Formulaire supprimé",
|
||||
"delete_form": "Supprimer le formulaire",
|
||||
"delete_form_action": "Oui, supprimer le formulaire",
|
||||
"delete_form_confirmation": "Voulez-vous vraiment supprimer ce formulaire ? Toute personne avec qui vous avez partagé le lien ne pourra plus passer de réservation en l'utilisant. De plus, toutes les réponses associées seraient supprimées.",
|
||||
"typeform_redirect_url_copied": "Lien de redirection Typeform copié ! Vous pouvez aller définir le lien dans le formulaire Typeform.",
|
||||
"modifications_in_fields_warning": "Les modifications dans les champs et les routes des formulaires suivants seront répercutées dans ce formulaire.",
|
||||
"connected_forms": "Formulaires connectés",
|
||||
"form_modifications_warning": "Les formulaires suivants seraient affectés lorsque vous modifieriez des champs ou des routes ici.",
|
||||
"responses_collection_waiting_description": "Attendez un certain temps que les réponses soient collectées. Vous pouvez également envoyer le formulaire vous-même.",
|
||||
"this_is_what_your_users_would_see": "Voici ce que vos utilisateurs verraient",
|
||||
"identifies_name_field": "Identifie le champ par ce nom.",
|
||||
"add_1_option_per_line": "Ajouter une option par ligne",
|
||||
"select_a_router": "Sélectionner un routeur",
|
||||
"add_a_new_route": "Ajouter une nouvelle route",
|
||||
"no_responses_yet": "Aucune réponse pour l'instant",
|
||||
"this_will_be_the_placeholder": "Ce sera le texte de substitution"
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
"upgrade_now": "지금 업그레이드",
|
||||
"accept_invitation": "초대 수락",
|
||||
"calcom_explained": "{{appName}}은(는) 모든 사람을 위한 일정 관리 인프라를 제공합니다.",
|
||||
"calcom_explained_new_user": "{{appName}} 계정 설정을 완료하세요! 몇 단계만 거치면 모든 일정 문제를 해결할 수 있습니다.",
|
||||
"have_any_questions": "질문이 있나요? 도와드릴게요.",
|
||||
"reset_password_subject": "{{appName}}: 비밀번호 재설정 방법",
|
||||
"event_declined_subject": "거절됨: {{date}} {{title}}",
|
||||
@@ -23,6 +24,8 @@
|
||||
"rejection_reason_description": "예약을 거부하시겠습니까? 예약하려고 시도하셨던 다른 분께 알려드릴 것입니다. 해당 사유는 아래에서 제공하실 수 있습니다.",
|
||||
"rejection_confirmation": "예약 취소",
|
||||
"manage_this_event": "이 이벤트 관리",
|
||||
"invite_team_member": "팀원 초대",
|
||||
"invite_team_notifcation_badge": "초대",
|
||||
"your_event_has_been_scheduled": "귀하의 이벤트가 예약되었습니다.",
|
||||
"your_event_has_been_scheduled_recurring": "되풀이 이벤트가 예약되었습니다",
|
||||
"accept_our_license": "<1>NEXT_PUBLIC_LICENSE_CONSENT</1> 환경 변수를 '{{agree}}'로 바꾸어 라이선스를 허용해주십시오.",
|
||||
@@ -410,6 +413,8 @@
|
||||
"password_updated_successfully": "비밀번호가 성공적으로 업데이트되었습니다.",
|
||||
"password_has_been_changed": "비밀번호가 성공적으로 변경되었습니다.",
|
||||
"error_changing_password": "비밀번호 변경 오류",
|
||||
"session_timeout_changed": "세션 구성이 성공적으로 업데이트되었습니다.",
|
||||
"session_timeout_change_error": "세션 구성 업데이트 중 오류 발생",
|
||||
"something_went_wrong": "문제가 발생했습니다.",
|
||||
"something_doesnt_look_right": "문제가 있습니다.",
|
||||
"please_try_again": "다시 시도하십시오.",
|
||||
@@ -428,6 +433,7 @@
|
||||
"password_hint_num": "1개 이상 숫자 포함",
|
||||
"invalid_password_hint": "비밀번호는 7자 이상이어야 하고 숫자가 하나 이상 포함되어야 하며 대문자와 소문자가 혼합되어야 합니다",
|
||||
"incorrect_password": "비밀번호가 잘못되었습니다",
|
||||
"incorrect_username_password": "사용자 이름 또는 비밀번호가 잘못되었습니다.",
|
||||
"24_h": "24시간",
|
||||
"use_setting": "사용 설정",
|
||||
"am_pm": "am/pm",
|
||||
@@ -455,6 +461,7 @@
|
||||
"slots_load_fail": "사용 가능한 시간 슬롯을 로드할 수 없습니다.",
|
||||
"additional_guests": "게스트 추가",
|
||||
"your_name": "당신의 이름",
|
||||
"your_full_name": "본인 성명",
|
||||
"email_address": "이메일 주소",
|
||||
"enter_valid_email": "유효한 이메일을 입력하세요",
|
||||
"location": "위치",
|
||||
@@ -508,6 +515,8 @@
|
||||
"admin": "관리",
|
||||
"administrator_user": "관리자 사용자",
|
||||
"lets_create_first_administrator_user": "첫 번째 관리자 사용자를 생성해 보겠습니다.",
|
||||
"admin_user_created": "관리자 사용자 설정",
|
||||
"admin_user_created_description": "이미 관리자 사용자를 생성하셨습니다. 이제 계정에 로그인할 수 있습니다.",
|
||||
"new_member": "새 회원",
|
||||
"invite": "초대",
|
||||
"add_team_members": "팀원 추가",
|
||||
@@ -658,6 +667,7 @@
|
||||
"edit_availability": "가용성 편집",
|
||||
"configure_availability": "예약 가능한 시간을 구성하십시오.",
|
||||
"copy_times_to": "횟수 복사:",
|
||||
"copy_times_to_tooltip": "복사 횟수...",
|
||||
"change_weekly_schedule": "주간 일정 변경",
|
||||
"logo": "로고",
|
||||
"error": "오류",
|
||||
@@ -669,6 +679,7 @@
|
||||
"add_attendees": "참석자 추가하기",
|
||||
"show_advanced_settings": "고급 설정 표시",
|
||||
"event_name": "이벤트 이름",
|
||||
"event_name_in_calendar": "캘린더의 이벤트 이름",
|
||||
"event_name_tooltip": "캘린더에 표시될 이름",
|
||||
"meeting_with_user": "{{attendeeName}} 님과의 회의",
|
||||
"additional_inputs": "추가 입력",
|
||||
@@ -787,6 +798,7 @@
|
||||
"number_apps_one": "{{count}}개 앱",
|
||||
"number_apps_other": "앱 {{count}}개",
|
||||
"trending_apps": "트랜드 앱",
|
||||
"most_popular": "인기 항목",
|
||||
"explore_apps": "{{category}} 앱",
|
||||
"installed_apps": "설치된 앱",
|
||||
"free_to_use_apps": "무료",
|
||||
@@ -797,12 +809,14 @@
|
||||
"no_category_apps_description_analytics": "예약 페이지에 대한 분석 앱 추가",
|
||||
"no_category_apps_description_automation": "사용할 자동화 앱 추가",
|
||||
"no_category_apps_description_other": "모든 종류의 작업을 수행하는 다른 유형의 앱을 추가합니다",
|
||||
"no_category_apps_description_web3": "예약 페이지에 web3 앱 추가",
|
||||
"installed_app_calendar_description": "중복 예약을 방지하기 위해 충돌을 확인하도록 캘린더를 설정합니다.",
|
||||
"installed_app_conferencing_description": "회의에 즐겨 사용하는 화상 회의 앱을 추가합니다",
|
||||
"installed_app_payment_description": "고객에게 요금 청구 시 사용할 결제 처리 서비스를 구성합니다.",
|
||||
"installed_app_analytics_description": "예약 페이지에 사용할 분석 앱 구성",
|
||||
"installed_app_other_description": "기타 카테고리에서 설치된 모든 앱.",
|
||||
"installed_app_automation_description": "사용할 자동화 앱 구성",
|
||||
"installed_app_web3_description": "예약 페이지에 사용할 web3 앱 구성",
|
||||
"analytics": "분석",
|
||||
"empty_installed_apps_headline": "설치된 앱 없음",
|
||||
"empty_installed_apps_description": "앱을 통해 워크플로를 강화하고 일정 관리 수명을 대폭 향상할 수 있습니다.",
|
||||
@@ -930,6 +944,11 @@
|
||||
"current_location": "현재 위치",
|
||||
"user_phone": "본인 전화 번호",
|
||||
"new_location": "새 위치",
|
||||
"session": "세션",
|
||||
"session_description": "계정 세션 제어",
|
||||
"session_timeout_after": "시간 초과 세션 시작",
|
||||
"session_timeout": "세션 시간 초과",
|
||||
"session_timeout_description": "일정 시간이 지나면 세션을 무효화합니다.",
|
||||
"no_location": "정의된 위치 없음",
|
||||
"set_location": "위치 설정",
|
||||
"update_location": "위치 업데이트",
|
||||
@@ -1073,6 +1092,7 @@
|
||||
"broken_video_action": "예약된 이벤트에 <1>{{location}}</1> 회의 링크를 추가할 수 없습니다. 초대받은 사람에게 연락하거나 캘린더 일정을 업데이트하여 세부 정보를 추가하세요. <3> 이벤트 유형에서 위치를 변경</3>하거나 <5>앱을 제거했다가 다시 추가</5>할 수 있습니다.",
|
||||
"broken_calendar_action": "<1>{{calendar}}</1>을(를) 업데이트를 할 수 없습니다. <2> 캘린더 설정을 확인하거나 캘린더를 제거했다가 다시 추가하세요.</2>",
|
||||
"attendee_name": "참석자 이름",
|
||||
"scheduler_full_name": "예약하는 당사자의 성명",
|
||||
"broken_integration": "단절된 통합",
|
||||
"problem_adding_video_link": "비디오 링크를 추가하는 중 문제가 발생했습니다",
|
||||
"problem_updating_calendar": "캘린더를 업데이트하는 중 문제가 발생했습니다",
|
||||
@@ -1215,6 +1235,7 @@
|
||||
"connect_automation_apps": "자동화 앱 연결",
|
||||
"connect_analytics_apps": "분석 앱 연결",
|
||||
"connect_other_apps": "기타 앱 연결",
|
||||
"connect_web3_apps": "web3 앱 연결",
|
||||
"current_step_of_total": "{{maxSteps}} 중 {{currentStep}} 단계",
|
||||
"add_variable": "변수 추가",
|
||||
"custom_phone_number": "사용자 정의 전화 번호",
|
||||
@@ -1231,6 +1252,7 @@
|
||||
"to": "대상",
|
||||
"workflow_turned_on_successfully": "{{workflowName}} 워크플로 {{offOn}} 설정 완료",
|
||||
"download_responses": "다운로드 응답",
|
||||
"download_responses_description": "양식에 대한 모든 응답을 CSV 형식으로 다운로드합니다.",
|
||||
"download": "다운로드",
|
||||
"create_your_first_form": "첫 양식 작성",
|
||||
"create_your_first_form_description": "라우팅 양식을 사용하면 적격성 질문을 올리고 올바른 사람 또는 이벤트 유형으로 라우팅할 수 있습니다.",
|
||||
@@ -1272,6 +1294,8 @@
|
||||
"routing_forms_send_email_owner": "소유자에게 이메일 보내기",
|
||||
"routing_forms_send_email_owner_description": "양식이 제출되면 소유자에게 이메일을 발송합니다",
|
||||
"add_new_form": "새 양식 추가",
|
||||
"create_your_first_route": "첫 번째 경로 작성",
|
||||
"route_to_the_right_person": "양식에 대한 답변을 토대로 올바른 당사자에게 전달",
|
||||
"form_description": "예약자를 라우팅할 양식 생성",
|
||||
"copy_link_to_form": "양식에 링크 복사",
|
||||
"theme": "테마",
|
||||
@@ -1302,6 +1326,7 @@
|
||||
"password_reset_leading": "이메일을 아직 받지 못한 경우 입력한 이메일 주소가 올바른지 확인하고 스팸 폴더를 확인하거나 문제가 지속되면 지원팀에 문의하세요.",
|
||||
"password_updated": "비밀번호가 업데이트되었습니다!",
|
||||
"pending_payment": "진행 중인 결제",
|
||||
"pending_invites": "진행 중 초대 건",
|
||||
"confirmation_page_rainbow": "이더리움, 폴리곤 등의 토큰 또는 NFT를 사용하여 이벤트를 토큰 게이트합니다.",
|
||||
"not_on_cal": "{{appName}}에 없음",
|
||||
"no_calendar_installed": "설치된 캘린더 없음",
|
||||
@@ -1428,6 +1453,9 @@
|
||||
"disabled_calendar": "다른 캘린더를 설치한 경우 새 예약이 여기에 추가됩니다. 그렇지 않은 경우 새로운 예약을 놓치지 않도록 새 캘린더를 연결하세요.",
|
||||
"enable_apps": "앱 활성화",
|
||||
"enable_apps_description": "사용자가 Cal.com과 통합할 수 있는 앱 활성화",
|
||||
"purchase_license": "라이선스 구매",
|
||||
"already_have_key": "이미 키가 있습니다:",
|
||||
"already_have_key_suggestion": "기존 CALCOM_LICENSE_KEY 환경 변수를 여기에 복사하십시오.",
|
||||
"app_is_enabled": "{{appName}} 앱이 활성화되었습니다",
|
||||
"app_is_disabled": "{{appName}} 앱이 비활성화되었습니다",
|
||||
"keys_have_been_saved": "키가 저장되었습니다",
|
||||
@@ -1448,6 +1476,7 @@
|
||||
"individual": "개인",
|
||||
"all_bookings_filter_label": "모든 예약",
|
||||
"all_users_filter_label": "모든 사용자",
|
||||
"your_bookings_filter_label": "내 예약",
|
||||
"meeting_url_variable": "회의 URL",
|
||||
"meeting_url_info": "이벤트 회의 컨퍼런스 URL",
|
||||
"date_overrides": "날짜 재정의",
|
||||
@@ -1486,6 +1515,7 @@
|
||||
"round_robin_hosts": "라운드 로빈 호스트",
|
||||
"minimum_round_robin_hosts_count": "참석에 필요한 호스트 수",
|
||||
"hosts": "호스트",
|
||||
"upgrade_to_enable_feature": "이 기능을 사용하려면 팀을 만들어야 합니다. 팀을 만들려면 클릭하세요.",
|
||||
"new_attendee": "새 참석자",
|
||||
"awaiting_approval": "승인 기다리는 중",
|
||||
"requires_google_calendar": "이 앱은 Google Calendar 연결이 필요합니다",
|
||||
@@ -1494,9 +1524,100 @@
|
||||
"continue_to_install_google_calendar": "Google Calendar 설치 계속하기",
|
||||
"install_google_meet": "Google Meet 설치",
|
||||
"install_google_calendar": "Google Calendar 설치",
|
||||
"sender_name": "발신자 이름",
|
||||
"already_invited": "이미 초대된 참석자입니다",
|
||||
"no_recordings_found": "기록 없음",
|
||||
"reporting": "보고",
|
||||
"reporting_feature": "데이터에서 들어오는 모든 것을 확인하고 CSV 파일로 다운로드",
|
||||
"teams_plan_required": "Teams 플랜 필수",
|
||||
"routing_forms_are_a_great_way": "라우팅 양식은 들어오는 리드를 올바른 당사자에게 전달하는 좋은 방법입니다. 이 기능에 액세스하려면 Teams 플랜으로 업그레이드하세요.",
|
||||
"choose_a_license": "라이선스 선택",
|
||||
"choose_license_description": "Cal.com은 액세스 가능한 무료 AGPLv3 라이선스와 함께 제공되며 일부 제한 사항은 언제든지 Enterprise 라이선스로 업그레이드할 수 있습니다. 나중에 언제든지 업그레이드할 수 있습니다.",
|
||||
"license": "라이선스",
|
||||
"agplv3_license": "AGPLv3 라이선스",
|
||||
"ee_enterprise_license": "“/ee” Enterprise 라이선스",
|
||||
"enterprise_booking_fee": "시작가 {{enterprise_booking_fee}}/월",
|
||||
"enterprise_license_includes": "상업용 사용 사례를 위한 것들이 다 있습니다",
|
||||
"no_need_to_keep_your_code_open_source": "코드를 오픈 소스로 유지할 필요가 없습니다",
|
||||
"repackage_rebrand_resell": "쉽게 재포장, 리브랜딩 및 재판매",
|
||||
"a_vast_suite_of_enterprise_features": "방대한 엔터프라이즈 기능 제품군",
|
||||
"free_license_fee": "$0.00/월",
|
||||
"forever_open_and_free": "무제한 사용 및 무료",
|
||||
"required_to_keep_your_code_open_source": "코드를 오픈 소스로 유지 필수",
|
||||
"cannot_repackage_and_resell": "쉽게 재포장, 리브랜딩 및 재판매 불가",
|
||||
"no_enterprise_features": "엔터프라이즈 기능 없음",
|
||||
"step_enterprise_license": "Enterprise 라이선스",
|
||||
"step_enterprise_license_description": "개인 호스팅, 리패키징, 리브랜딩, 재판매 및 독점 엔터프라이즈 구성 요소에 액세스하는 상업적 사용 사례를 위한 것들이 모두 다 있습니다.",
|
||||
"setup": "설정",
|
||||
"setup_description": "Cal.com 인스턴스 설정",
|
||||
"configure": "구성",
|
||||
"sso_configuration": "싱글 사인온",
|
||||
"sso_configuration_description": "SAML/OIDC SSO를 구성하고 팀원이 ID 공급자를 사용하여 로그인하도록 허용",
|
||||
"sso_oidc_heading": "SSO 및 OIDC",
|
||||
"sso_oidc_description": "선택한 ID 공급자로 OIDC SSO를 구성합니다.",
|
||||
"sso_oidc_configuration_title": "OIDC 구성",
|
||||
"sso_oidc_configuration_description": "ID 공급자에 대한 OIDC 연결을 구성합니다. 필수 정보는 ID 공급자에서 찾을 수 있습니다.",
|
||||
"sso_oidc_callback_copied": "콜백 URL이 복사되었습니다",
|
||||
"sso_saml_heading": "SSO 및 SAML",
|
||||
"sso_saml_description": "선택한 ID 공급자로 SAML SSO를 구성합니다.",
|
||||
"sso_saml_configuration_title": "SAML 구성",
|
||||
"sso_saml_configuration_description": "ID 공급자에 대한 SAML 연결을 구성합니다. 필수 정보는 ID 공급자에서 찾을 수 있습니다.",
|
||||
"sso_saml_acsurl_copied": "ACS URL이 복사되었습니다",
|
||||
"sso_saml_entityid_copied": "엔터티 ID가 복사되었습니다",
|
||||
"sso_connection_created_successfully": "{{connectionType}} 구성이 생성되었습니다",
|
||||
"sso_connection_deleted_successfully": "{{connectionType}} 구성이 삭제되었습니다",
|
||||
"delete_sso_configuration": "{{connectionType}} 구성 삭제",
|
||||
"delete_sso_configuration_confirmation": "예, {{connectionType}} 구성을 삭제합니다",
|
||||
"delete_sso_configuration_confirmation_description": "{{connectionType}} 구성을 삭제하시겠습니까? {{connectionType}} 로그인을 사용하는 팀원은 더 이상 Cal.com에 액세스할 수 없습니다.",
|
||||
"organizer_timezone": "주최자 시간대",
|
||||
"email_no_user_cta": "계정 만들기",
|
||||
"email_user_cta": "초대 보기",
|
||||
"email_no_user_invite_heading": "{{appName}} 팀에 초대되셨습니다",
|
||||
"email_no_user_invite_subheading": "{{invitedBy}} 님이 귀하를 {{appName}}에서 자신의 팀에 초대했습니다. {{appName}} 앱은 귀하와 귀하의 팀이 이메일을 주고 받지 않고 회의 일정을 잡을 수 있게 해주는 이벤트 정리 스케줄러입니다.",
|
||||
"email_no_user_invite_steps_intro": "몇 가지 간단한 단계를 안내해 드릴 것이며 곧 팀과 함께 스트레스 없는 일정 관리를 누리시게 될 것입니다.",
|
||||
"email_no_user_step_one": "사용자 이름 선택",
|
||||
"email_no_user_step_two": "캘린더 계정 연결하기",
|
||||
"email_no_user_step_three": "언제 여유가 있는지 설정하세요",
|
||||
"email_no_user_step_four": "{{teamName}} 가입",
|
||||
"email_no_user_signoff": "{{appName}} 팀의 행복한 일정",
|
||||
"impersonation_user_tip": "사용자를 가장하려고 합니다. 즉, 사용자를 대신하여 변경할 수 있는 것입니다. 조심하세요.",
|
||||
"scheduler": "{Scheduler}",
|
||||
"available_variables": "사용 가능 변수",
|
||||
"recommended_next_steps": "추천 다음 단계",
|
||||
"create_a_managed_event": "관리형 이벤트 유형 작성",
|
||||
"meetings_are_better_with_the_right": "회의는 그곳에서 올바른 팀원과 함께 하는 것이 더 낫습니다. 지금 초대하세요.",
|
||||
"create_a_one_one_template": "이벤트 유형에 대한 일대일 템플릿을 만들어 여러 일원에게 배포하십시오.",
|
||||
"collective_or_roundrobin": "집단 또는 라운드 로빈",
|
||||
"book_your_team_members": "집단 이벤트를 통해 팀원을 함께 예약하거나 라운드 로빈으로 적합한 일원을 찾기 위해 차례대로 둘러봅니다.",
|
||||
"default_app_link_title": "기본 앱 링크 설정",
|
||||
"default_app_link_description": "기본 앱 링크를 설정하면 새로 생성된 모든 이벤트 유형에서 설정한 앱 링크를 사용할 수 있습니다.",
|
||||
"change_default_conferencing_app": "기본값으로 설정",
|
||||
"booking_confirmation_failed": "예약 확인 실패"
|
||||
"under_maintenance": "아래로 밀어 유지관리",
|
||||
"under_maintenance_description": "{{appName}} 팀에서 예정된 유지관리를 수행하고 있습니다. 궁금한 점이 있으면 지원팀에 문의하세요.",
|
||||
"event_type_seats": "{{numberOfSeats}}석",
|
||||
"booking_with_payment_cancelled": "이 이벤트는 더 이상 결제할 수 없습니다",
|
||||
"booking_with_payment_cancelled_already_paid": "이 예약 결제에 대한 환불 처리가 진행 중입니다.",
|
||||
"booking_with_payment_cancelled_refunded": "이 예약 결제는 환불 처리되었습니다.",
|
||||
"booking_confirmation_failed": "예약 확인 실패",
|
||||
"get_started_zapier_templates": "Zapier 템플릿 시작하기",
|
||||
"a_routing_form": "라우팅 양식",
|
||||
"form_description_placeholder": "양식 설명",
|
||||
"keep_me_connected_with_form": "양식과 연결 유지",
|
||||
"fields_in_form_duplicated": "복제되는 양식의 라우터 및 필드의 변경 사항은 복제본에 반영됩니다.",
|
||||
"form_deleted": "양식 삭제됨",
|
||||
"delete_form": "양식 삭제",
|
||||
"delete_form_action": "예, 양식을 삭제하겠습니다",
|
||||
"delete_form_confirmation": "이 양식을 삭제하시겠습니까? 링크를 공유한 사용자는 더 이상 링크를 사용하여 예약할 수 없습니다. 또한 모든 관련 응답도 삭제됩니다.",
|
||||
"typeform_redirect_url_copied": "Typeform Redirect URL이 복사되었습니다! Typeform 형식으로 이동하여 URL을 설정할 수 있습니다.",
|
||||
"modifications_in_fields_warning": "다음 양식의 필드 및 경로 수정은 이 양식에 반영됩니다.",
|
||||
"connected_forms": "연결된 양식",
|
||||
"form_modifications_warning": "여기에서 필드 또는 경로를 수정하면 다음 양식이 영향을 받습니다.",
|
||||
"responses_collection_waiting_description": "응답이 수집될 때까지 잠시 기다리십시오. 직접 가서 양식을 제출할 수도 있습니다.",
|
||||
"this_is_what_your_users_would_see": "이것은 사용자에게 표시됩니다",
|
||||
"identifies_name_field": "이 이름으로 필드를 식별합니다.",
|
||||
"add_1_option_per_line": "한 줄에 옵션 1개 추가",
|
||||
"select_a_router": "라우터 선택",
|
||||
"add_a_new_route": "새 경로 추가",
|
||||
"no_responses_yet": "아직 응답 없음",
|
||||
"this_will_be_the_placeholder": "이것은 자리 표시자가 됩니다"
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
"upgrade_now": "Uppgradera nu",
|
||||
"accept_invitation": "Acceptera inbjudan",
|
||||
"calcom_explained": "{{appName}} erbjuder en infrastruktur för schemaläggning för alla.",
|
||||
"calcom_explained_new_user": "Slutför konfigureringen av ditt {{appName}}-konto! Du är bara några steg från att lösa alla dina schemaläggningsproblem.",
|
||||
"have_any_questions": "Har du frågor? Vi är här för att hjälpa till.",
|
||||
"reset_password_subject": "{{appName}}: Instruktioner för att återställa ditt lösenord",
|
||||
"event_declined_subject": "Avvisades: {{title}} kl. {{date}}",
|
||||
@@ -23,6 +24,8 @@
|
||||
"rejection_reason_description": "Är du säker på att du vill avböja bokningen? Vi kommer att meddela personen som försökte boka. Du kan ange en anledning nedan.",
|
||||
"rejection_confirmation": "Avböj bokningen",
|
||||
"manage_this_event": "Hantera denna bokning",
|
||||
"invite_team_member": "Bjud in teammedlem",
|
||||
"invite_team_notifcation_badge": "Inv.",
|
||||
"your_event_has_been_scheduled": "Din bokning har schemalagts",
|
||||
"your_event_has_been_scheduled_recurring": "Din återkommande händelseförfrågan har schemalagts",
|
||||
"accept_our_license": "Acceptera vår licens genom att ändra .env variabeln <1>NEXT_PUBLIC_LICENSE_CONSENT</1> till '{{agree}}'.",
|
||||
@@ -410,6 +413,8 @@
|
||||
"password_updated_successfully": "Lösenordet har uppdaterats",
|
||||
"password_has_been_changed": "Ditt lösenord har ändrats.",
|
||||
"error_changing_password": "Fel vid ändring av lösenord",
|
||||
"session_timeout_changed": "Din sessionskonfiguration har uppdaterats.",
|
||||
"session_timeout_change_error": "Fel vid uppdatering av sessionskonfiguration",
|
||||
"something_went_wrong": "Något gick snett.",
|
||||
"something_doesnt_look_right": "Något ser inte rätt ut?",
|
||||
"please_try_again": "Vänligen försök igen.",
|
||||
@@ -428,6 +433,7 @@
|
||||
"password_hint_num": "Innehåller minst 1 siffra",
|
||||
"invalid_password_hint": "Lösenordet måste innehålla minst {{passwordLength}} tecken och har minst en siffra samt en blandning av versaler och gemener",
|
||||
"incorrect_password": "Lösenordet är felaktigt.",
|
||||
"incorrect_username_password": "Felaktigt användarnamn eller lösenord.",
|
||||
"24_h": "24 timmar",
|
||||
"use_setting": "Använd inställning",
|
||||
"am_pm": "am/pm",
|
||||
@@ -455,6 +461,7 @@
|
||||
"slots_load_fail": "Det gick inte att ladda tillgängliga tidsluckor.",
|
||||
"additional_guests": "Lägg till gäster",
|
||||
"your_name": "Ditt namn",
|
||||
"your_full_name": "Ditt fullständiga namn",
|
||||
"email_address": "E-postadress",
|
||||
"enter_valid_email": "Ange en giltig e-postadress",
|
||||
"location": "Plats",
|
||||
@@ -508,6 +515,8 @@
|
||||
"admin": "Administratör",
|
||||
"administrator_user": "Administratörsanvändare",
|
||||
"lets_create_first_administrator_user": "Vi skapar den första administratörsanvändaren.",
|
||||
"admin_user_created": "Inställning av administratörsanvändare",
|
||||
"admin_user_created_description": "Du har redan skapat en administratörsanvändare. Du kan nu logga in på ditt konto.",
|
||||
"new_member": "Ny medlem",
|
||||
"invite": "Bjud in",
|
||||
"add_team_members": "Lägg till teammedlemmar",
|
||||
@@ -658,6 +667,7 @@
|
||||
"edit_availability": "Redigera tillgänglighet",
|
||||
"configure_availability": "Ställ in de tider du är tillgänglig för bokningar.",
|
||||
"copy_times_to": "Kopiera tider till",
|
||||
"copy_times_to_tooltip": "Kopiera tider till …",
|
||||
"change_weekly_schedule": "Ändra ditt veckoschema",
|
||||
"logo": "Logotyp",
|
||||
"error": "Fel",
|
||||
@@ -669,6 +679,7 @@
|
||||
"add_attendees": "Lägg till deltagare",
|
||||
"show_advanced_settings": "Visa avancerade inställningar",
|
||||
"event_name": "Händelsenamn",
|
||||
"event_name_in_calendar": "Händelsenamn i kalender",
|
||||
"event_name_tooltip": "Namnet som kommer visas i kalendrar",
|
||||
"meeting_with_user": "Möte med {{attendeeName}}",
|
||||
"additional_inputs": "Ytterligare inmatningar",
|
||||
@@ -787,6 +798,7 @@
|
||||
"number_apps_one": "{{count}} app",
|
||||
"number_apps_other": "{{count}} appar",
|
||||
"trending_apps": "Trendande appar",
|
||||
"most_popular": "Mest populärt",
|
||||
"explore_apps": "{{category}}-appar",
|
||||
"installed_apps": "Installerade appar",
|
||||
"free_to_use_apps": "Gratis",
|
||||
@@ -797,12 +809,14 @@
|
||||
"no_category_apps_description_analytics": "Lägg till en analysapp för dina bokningssidor",
|
||||
"no_category_apps_description_automation": "Lägg till en automationsapp att använda",
|
||||
"no_category_apps_description_other": "Lägg till en annan typ av app för att göra alla möjliga saker",
|
||||
"no_category_apps_description_web3": "Lägg itll web3-app för dina bokningssidor",
|
||||
"installed_app_calendar_description": "Ställ in kalendrar att söka efter konflikter för att undvika dubbelbokningar.",
|
||||
"installed_app_conferencing_description": "Lägg till dina favoritappar för videokonferenser för dina möten",
|
||||
"installed_app_payment_description": "Konfigurera vilka betalningstjänster som ska användas när du debiterar dina kunder.",
|
||||
"installed_app_analytics_description": "Konfigurera vilka analysappar som ska användas för dina bokningssidor",
|
||||
"installed_app_other_description": "Alla dina installerade appar från andra kategorier.",
|
||||
"installed_app_automation_description": "Konfigurera vilka automationsappar som ska användas",
|
||||
"installed_app_web3_description": "Konfigurera vilka web3-appar som ska användas för dina bokningssidor",
|
||||
"analytics": "Analys",
|
||||
"empty_installed_apps_headline": "Inga appar installerade",
|
||||
"empty_installed_apps_description": "Med appar kan du förbättra ditt arbetsflöde och din schemaläggning avsevärt.",
|
||||
@@ -930,6 +944,11 @@
|
||||
"current_location": "Nuvarande plats",
|
||||
"user_phone": "Ditt telefonnummer",
|
||||
"new_location": "Ny plats",
|
||||
"session": "Session",
|
||||
"session_description": "Kontrollera din kontosession",
|
||||
"session_timeout_after": "Timeout-session efter",
|
||||
"session_timeout": "Sessions-timeout",
|
||||
"session_timeout_description": "Ogiltigförklara din session efter en viss tid.",
|
||||
"no_location": "Ingen plats definierad",
|
||||
"set_location": "Ställ in plats",
|
||||
"update_location": "Uppdatera plats",
|
||||
@@ -1073,6 +1092,7 @@
|
||||
"broken_video_action": "Det gick inte att lägga till möteslänken <1>{{location}}</1> i din planerade händelse. Kontakta personerna du bjudit in eller uppdatera din kalenderhändelse för att lägga till informationen. Du kan antingen <3>ändra din plats i händelsetypen </3> eller prova <5>att ta bort och lägga till appen igen.</5>",
|
||||
"broken_calendar_action": "Det gick inte att uppdatera din <1>{{calendar}}</1>. <2> Kontrollera dina kalenderinställningar eller ta bort och lägg till din kalender igen </2>",
|
||||
"attendee_name": "Deltagarens namn",
|
||||
"scheduler_full_name": "Fullständigt namn på personen som bokar",
|
||||
"broken_integration": "Trasig integration",
|
||||
"problem_adding_video_link": "Det gick inte att lägga till en videolänk",
|
||||
"problem_updating_calendar": "Det gick inte att uppdatera din kalender",
|
||||
@@ -1215,6 +1235,7 @@
|
||||
"connect_automation_apps": "Anslut automationsappar",
|
||||
"connect_analytics_apps": "Anslut analysappar",
|
||||
"connect_other_apps": "Anslut andra appar",
|
||||
"connect_web3_apps": "Anslut web3-appar",
|
||||
"current_step_of_total": "Steg {{currentStep}} av {{maxSteps}}",
|
||||
"add_variable": "Lägg till variabel",
|
||||
"custom_phone_number": "Anpassa telefonnummer",
|
||||
@@ -1231,6 +1252,7 @@
|
||||
"to": "Till",
|
||||
"workflow_turned_on_successfully": "Arbetsflödet {{workflowName}} är {{offOn}}",
|
||||
"download_responses": "Ladda ned svar",
|
||||
"download_responses_description": "Ladda ner alla svar till ditt formulär i CSV-format.",
|
||||
"download": "Ladda ned",
|
||||
"create_your_first_form": "Skapa ditt första formulär",
|
||||
"create_your_first_form_description": "Med Dirigeringsformulär kan du ställa kvalificerade frågor och dirigera till rätt person eller händelsetyp.",
|
||||
@@ -1272,6 +1294,8 @@
|
||||
"routing_forms_send_email_owner": "Skicka e-post till ägare",
|
||||
"routing_forms_send_email_owner_description": "Skickar ett e-postmeddelande till ägaren när formuläret skickas",
|
||||
"add_new_form": "Lägg till nytt formulär",
|
||||
"create_your_first_route": "Skapa din första rutt",
|
||||
"route_to_the_right_person": "Skicka vidare till rätt person baserat på svaren i formuläret",
|
||||
"form_description": "Skapa ditt formulär för att dirigera en bokare",
|
||||
"copy_link_to_form": "Kopiera länk till formulär",
|
||||
"theme": "Tema",
|
||||
@@ -1302,6 +1326,7 @@
|
||||
"password_reset_leading": "Om du inte fick e-postmeddelandet snart, kontrollera att e-postadressen du angav är korrekt, kontrollera din skräppostmapp eller kontakta kundsupport om problemet kvarstår.",
|
||||
"password_updated": "Lösenord uppdaterat!",
|
||||
"pending_payment": "Väntande betalning",
|
||||
"pending_invites": "Väntande inbjudningar",
|
||||
"confirmation_page_rainbow": "Tokenskydda din händelse med tokens eller NFT:er på Ethereum, Polygon med mera.",
|
||||
"not_on_cal": "Inte på {{appName}}",
|
||||
"no_calendar_installed": "Ingen kalender installerad",
|
||||
@@ -1428,6 +1453,9 @@
|
||||
"disabled_calendar": "Om du har en annan kalender installerad läggs nya bokningar till i den. Anslut annars en ny kalender så att du inte missar nya bokningar.",
|
||||
"enable_apps": "Aktivera appar",
|
||||
"enable_apps_description": "Aktivera appar som användare kan integrera med Cal.com",
|
||||
"purchase_license": "Köp en licens",
|
||||
"already_have_key": "Jag har redan en nyckel:",
|
||||
"already_have_key_suggestion": "Kopiera din befintliga CALCOM_LICENSE_KEY-miljövariabel här.",
|
||||
"app_is_enabled": "{{appName}} har aktiverats",
|
||||
"app_is_disabled": "{{appName}} har inaktiverats",
|
||||
"keys_have_been_saved": "Nycklar har sparats",
|
||||
@@ -1448,6 +1476,7 @@
|
||||
"individual": "Individ",
|
||||
"all_bookings_filter_label": "Alla bokningar",
|
||||
"all_users_filter_label": "Alla användare",
|
||||
"your_bookings_filter_label": "Dina bokningar",
|
||||
"meeting_url_variable": "Mötes-URL",
|
||||
"meeting_url_info": "URL till evenemangets möteskonferens",
|
||||
"date_overrides": "Åsidosättningar av datum",
|
||||
@@ -1486,6 +1515,7 @@
|
||||
"round_robin_hosts": "Round Robin-värdar",
|
||||
"minimum_round_robin_hosts_count": "Antal värdar som krävs för att delta",
|
||||
"hosts": "Värdar",
|
||||
"upgrade_to_enable_feature": "Du måste skapa ett team för att aktivera den här funktionen. Klicka för att skapa ett team.",
|
||||
"new_attendee": "Ny deltagare",
|
||||
"awaiting_approval": "Väntar på godkännande",
|
||||
"requires_google_calendar": "Den här appen kräver en Google Kalender-anslutning",
|
||||
@@ -1494,9 +1524,100 @@
|
||||
"continue_to_install_google_calendar": "Fortsätt att installera Google Kalender",
|
||||
"install_google_meet": "Installera Google Meet",
|
||||
"install_google_calendar": "Installera Google Kalender",
|
||||
"sender_name": "Avsändarens namn",
|
||||
"already_invited": "Deltagare redan inbjuden",
|
||||
"no_recordings_found": "Inga poster hittades",
|
||||
"reporting": "Rapportering",
|
||||
"reporting_feature": "Se alla inkommande från data och ladda ner som CSV",
|
||||
"teams_plan_required": "Teams-abonnemang krävs",
|
||||
"routing_forms_are_a_great_way": "Omdirigeringsformulär är ett bra sätt att dirigera inkommande leads till rätt person. Uppgradera till ett Teams-abonnemang för att få tillgång till den här funktionen.",
|
||||
"choose_a_license": "Välj en licens",
|
||||
"choose_license_description": "Cal.com har en tillgänglig och gratis AGPLv3-licens med vissa begränsningar som när som helst kan uppgraderas till en företagslicens. Du kan uppgradera när som helst senare.",
|
||||
"license": "Licens",
|
||||
"agplv3_license": "AGPLv3-licens",
|
||||
"ee_enterprise_license": "“/ee” företagslicens",
|
||||
"enterprise_booking_fee": "Från {{enterprise_booking_fee}}/månad",
|
||||
"enterprise_license_includes": "Allt för ett kommersiellt användarfall",
|
||||
"no_need_to_keep_your_code_open_source": "Inget behov av att behålla din kod som öppen källkod",
|
||||
"repackage_rebrand_resell": "Lätt att ompaketera, omprofilera och återsälja",
|
||||
"a_vast_suite_of_enterprise_features": "En omfattande uppsättning företagsfunktioner",
|
||||
"free_license_fee": "$0.00/månad",
|
||||
"forever_open_and_free": "Öppen och gratis för alltid",
|
||||
"required_to_keep_your_code_open_source": "Behövs för att hålla din kod som öppen källkod",
|
||||
"cannot_repackage_and_resell": "Det går inte att omförpacka, pmprofilera och återsälja",
|
||||
"no_enterprise_features": "Inga företagsfunktioner",
|
||||
"step_enterprise_license": "Företagslicens",
|
||||
"step_enterprise_license_description": "Allt för kommersiellt bruk med privat hosting, ompaketering, omprofilering och återförsäljning samt tillgång till exklusiva företagskomponenter.",
|
||||
"setup": "Konfiguration",
|
||||
"setup_description": "Installera Cal.com-instans",
|
||||
"configure": "Konfigurera",
|
||||
"sso_configuration": "Enkel inloggning",
|
||||
"sso_configuration_description": "Konfigurera SAML/OIDC SSO och låt teammedlemmar logga in med hjälp av en identitetsleverantör",
|
||||
"sso_oidc_heading": "SSO med OIDC",
|
||||
"sso_oidc_description": "Konfigurera OIDC SSO med identitetsleverantör som du väljer.",
|
||||
"sso_oidc_configuration_title": "OIDC-konfiguration",
|
||||
"sso_oidc_configuration_description": "Konfigurera OIDC-anslutningen till din identitetsleverantör. Du hittar den nödvändiga informationen i din identitetsleverantör.",
|
||||
"sso_oidc_callback_copied": "URL för återkallelse kopierad",
|
||||
"sso_saml_heading": "SSO med SAML",
|
||||
"sso_saml_description": "Konfigurera SAML SSO med identitetsleverantör som du väljer.",
|
||||
"sso_saml_configuration_title": "SAML-konfiguration",
|
||||
"sso_saml_configuration_description": "Konfigurera SAML-anslutningen till din identitetsleverantör. Du hittar den nödvändiga informationen i din identitetsleverantör.",
|
||||
"sso_saml_acsurl_copied": "ACS-URL",
|
||||
"sso_saml_entityid_copied": "Enhets-ID kopierat",
|
||||
"sso_connection_created_successfully": "{{connectionType}}-konfiguration har skapats",
|
||||
"sso_connection_deleted_successfully": "{{connectionType}}-konfiguration togs bort",
|
||||
"delete_sso_configuration": "Ta bort {{connectionType}}-konfiguration",
|
||||
"delete_sso_configuration_confirmation": "Ja, ta bort {{connectionType}}-konfiguration",
|
||||
"delete_sso_configuration_confirmation_description": "Är du säker på att du vill ta bort konfigurationen {{connectionType}}? Dina teammedlemmar som använder {{connectionType}}-inloggning kommer inte längre att kunna komma åt Cal.com.",
|
||||
"organizer_timezone": "Arrangörens tidszon",
|
||||
"email_no_user_cta": "Skapa ditt konto",
|
||||
"email_user_cta": "Visa inbjudan",
|
||||
"email_no_user_invite_heading": "Du har blivit inbjuden att gå med i ett team på {{appName}}",
|
||||
"email_no_user_invite_subheading": "{{invitedBy}} har bjudit in dig att gå med i sitt team på {{appName}}. {{appName}} är den jonglerande schemaläggaren som gör det möjligt för dig och ditt team att planera möten utan e-posttennis.",
|
||||
"email_no_user_invite_steps_intro": "Vi går igenom några korta steg så att du kan njuta av stressfri schemaläggning med ditt team på nolltid.",
|
||||
"email_no_user_step_one": "Välj ditt användarnamn",
|
||||
"email_no_user_step_two": "Anslut ditt kalenderkonto",
|
||||
"email_no_user_step_three": "Ställ in din tillgänglighet",
|
||||
"email_no_user_step_four": "Gå med i {{teamName}}",
|
||||
"email_no_user_signoff": "Glad schemaläggning från {{appName}}-teamet",
|
||||
"impersonation_user_tip": "Du är på väg att uppträda som en användare, vilket innebär att du kan göra ändringar för dennes räkning. Var försiktig.",
|
||||
"scheduler": "{Scheduler}",
|
||||
"available_variables": "Tillgängliga variabler",
|
||||
"recommended_next_steps": "Rekommenderade nästa steg",
|
||||
"create_a_managed_event": "Skapa en hanterad händelsetyp",
|
||||
"meetings_are_better_with_the_right": "Mötena blir bättre när rätt gruppmedlemmar är närvarande. Bjud in dem nu.",
|
||||
"create_a_one_one_template": "Skapa en en-en-mall för en evenemangstyp och distribuera den till flera medlemmar.",
|
||||
"collective_or_roundrobin": "Kollektiv eller round-robin",
|
||||
"book_your_team_members": "Boka dina teammedlemmar tillsammans med kollektiva evenemang eller gå igenom för att få rätt person med round-robin.",
|
||||
"default_app_link_title": "Skapa en standardlänk för appen",
|
||||
"default_app_link_description": "Om du skapar en standardapplänk kan alla nyss skapade händelsetyper använda den applänk som du har angett.",
|
||||
"change_default_conferencing_app": "Ange som standard",
|
||||
"booking_confirmation_failed": "Bokningsbekräftelsen misslyckades"
|
||||
"under_maintenance": "Nere för underhåll",
|
||||
"under_maintenance_description": "{{appName}}-teamet utför planerat underhåll. Om du har några frågor kan du kontakta supporten.",
|
||||
"event_type_seats": "{{numberOfSeats}} platser",
|
||||
"booking_with_payment_cancelled": "Det går inte längre att betala för det här evenemanget",
|
||||
"booking_with_payment_cancelled_already_paid": "En återbetalning för den här bokningsbetalningen är på väg.",
|
||||
"booking_with_payment_cancelled_refunded": "Den här bokningsbetalningen har återbetalats.",
|
||||
"booking_confirmation_failed": "Bokningsbekräftelsen misslyckades",
|
||||
"get_started_zapier_templates": "Kom igång med Zapier-mallar",
|
||||
"a_routing_form": "Ett omdirigeringsformulär",
|
||||
"form_description_placeholder": "Formulärbeskrivning",
|
||||
"keep_me_connected_with_form": "Håll mig ansluten med formuläret",
|
||||
"fields_in_form_duplicated": "Alla ändringar i omdirigering och fält i formuläret som dupliceras återspeglas i duplikatet.",
|
||||
"form_deleted": "Formulär borttaget",
|
||||
"delete_form": "Ta bort formulär",
|
||||
"delete_form_action": "Ja, ta bort formulär",
|
||||
"delete_form_confirmation": "Är du säker på att du vill ta bort det här formuläret? Alla som du har delat länken med kommer inte längre att kunna boka med hjälp av den. Dessutom raderas alla tillhörande svar.",
|
||||
"typeform_redirect_url_copied": "Typeform Redirect URL kopierad! Du kan ange URL:n i Typeform-formuläret.",
|
||||
"modifications_in_fields_warning": "Ändringar i fält och omdirigeringar av följande formulär kommer att återspeglas i detta formulär.",
|
||||
"connected_forms": "Anslutna formulär",
|
||||
"form_modifications_warning": "Följande formulär skulle påverkas när du ändrar fält eller omdirigeringar här.",
|
||||
"responses_collection_waiting_description": "Vänta en stund tills svaren samlas in. Du kan också skicka in formuläret själv.",
|
||||
"this_is_what_your_users_would_see": "Detta är vad dina användare skulle se",
|
||||
"identifies_name_field": "Identifierar fält med detta namn.",
|
||||
"add_1_option_per_line": "Lägg till 1 alternativ per rad",
|
||||
"select_a_router": "Välj en router",
|
||||
"add_a_new_route": "Lägg till ny omdirigering",
|
||||
"no_responses_yet": "Inga svar ännu",
|
||||
"this_will_be_the_placeholder": "Det här blir platshållaren"
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
"upgrade_now": "Nâng cấp ngay",
|
||||
"accept_invitation": "Chấp Nhận Lời Mời",
|
||||
"calcom_explained": "{{appName}} là Calendly mã nguồn mở, giúp bạn quản lý dữ liệu, ngoại hình và cách làm việc của mình.",
|
||||
"calcom_explained_new_user": "Hoàn tất thiết lập tài khoản của bạn trong {{appName}}! Bạn chỉ còn vài bước nữa là giải quyết được mọi vấn đề về việc lên lịch kế hoạch.",
|
||||
"have_any_questions": "Có câu hỏi? Chúng tôi luôn ở đây để giúp bạn.",
|
||||
"reset_password_subject": "{{appName}}: Hướng dẫn thay đổi mật khẩu",
|
||||
"event_declined_subject": "Đã từ chối: {{title}} tại {{date}}",
|
||||
@@ -23,6 +24,8 @@
|
||||
"rejection_reason_description": "Bạn có chắc bạn muốn từ chối đặt lịch hẹn? Chúng tôi sẽ cho người đặt biết. Bạn có thể cho người dùng biết lý do từ chối dưới đây.",
|
||||
"rejection_confirmation": "Từ chối lịch hẹn",
|
||||
"manage_this_event": "Quản lý sự kiện này",
|
||||
"invite_team_member": "Mời thành viên nhóm",
|
||||
"invite_team_notifcation_badge": "Mời",
|
||||
"your_event_has_been_scheduled": "Sự kiện của bạn đã được lên lịch",
|
||||
"your_event_has_been_scheduled_recurring": "Sự kiện định kỳ của bạn đã được lên lịch",
|
||||
"accept_our_license": "Chấp nhận giấy phép của chúng tôi bằng cách thay đổi biến .env <1>NEXT_PUBLIC_LICENSE_CONSENT</1> thành '{{agree}}'.",
|
||||
@@ -410,6 +413,8 @@
|
||||
"password_updated_successfully": "Đã cập nhật mật khẩu thành công",
|
||||
"password_has_been_changed": "Mật khẩu của bạn đã được thay đổi thành công.",
|
||||
"error_changing_password": "Lỗi khi thay đổi mật khẩu",
|
||||
"session_timeout_changed": "Đã cập nhật thành công cấu hình phiên của bạn.",
|
||||
"session_timeout_change_error": "Lỗi khi cập nhật cấu hình phiên",
|
||||
"something_went_wrong": "Đã xảy ra lỗi.",
|
||||
"something_doesnt_look_right": "Có gì đó không ổn?",
|
||||
"please_try_again": "Vui lòng thử lại.",
|
||||
@@ -428,6 +433,7 @@
|
||||
"password_hint_num": "Chứa ít nhất 1 con số",
|
||||
"invalid_password_hint": "Mật khẩu phải có tối thiểu {{passwordLength}} ký tự chứa ít nhất một con số và phải kết hợp chữ cái in hoa lẫn in thường",
|
||||
"incorrect_password": "Mật khẩu không đúng.",
|
||||
"incorrect_username_password": "Sai tên người dùng hoặc sai mật khẩu.",
|
||||
"24_h": "24h",
|
||||
"use_setting": "Sử dụng cài đặt",
|
||||
"am_pm": "\u001dam/pm",
|
||||
@@ -455,6 +461,7 @@
|
||||
"slots_load_fail": "Không thể tải thời gian có thể đặt lịch.",
|
||||
"additional_guests": "Thêm khách",
|
||||
"your_name": "Tên của bạn",
|
||||
"your_full_name": "Tên đầy đủ của bạn",
|
||||
"email_address": "Địa chỉ email",
|
||||
"enter_valid_email": "Vui lòng điền vào email hợp lệ",
|
||||
"location": "Vị trí",
|
||||
@@ -508,6 +515,8 @@
|
||||
"admin": "Quản trị viên",
|
||||
"administrator_user": "Người dùng quản trị viên",
|
||||
"lets_create_first_administrator_user": "Hãy tạo người dùng đầu tiên ở vai trò quản trị viên.",
|
||||
"admin_user_created": "Thiết lập người dùng quản trị",
|
||||
"admin_user_created_description": "Bạn đã tạo một người dùng quản trị. Giờ bạn có thể đăng nhập tài khoản của mình.",
|
||||
"new_member": "Thành viên mới",
|
||||
"invite": "Mời",
|
||||
"add_team_members": "Thêm thành viên nhóm",
|
||||
@@ -658,6 +667,7 @@
|
||||
"edit_availability": "Sửa tình trạng trống lịch",
|
||||
"configure_availability": "Định cấu hình thời gian mà mọi người có thể đặt lịch hẹn.",
|
||||
"copy_times_to": "Sao chép thời gian đến",
|
||||
"copy_times_to_tooltip": "Sao chép thời gian đến …",
|
||||
"change_weekly_schedule": "Thay đổi lịch hàng tuần của bạn",
|
||||
"logo": "Logo",
|
||||
"error": "Lỗi",
|
||||
@@ -669,6 +679,7 @@
|
||||
"add_attendees": "Thêm người tham dự",
|
||||
"show_advanced_settings": "Hiển thị cài đặt nâng cao",
|
||||
"event_name": "Tên sự kiện",
|
||||
"event_name_in_calendar": "Tên sự kiện trong lịch",
|
||||
"event_name_tooltip": "Tên sẽ xuất hiện trong lịch",
|
||||
"meeting_with_user": "Gặp gỡ với {{attendeeName}}",
|
||||
"additional_inputs": "Trường bổ sung",
|
||||
@@ -787,6 +798,7 @@
|
||||
"number_apps_one": "{{count}} ứng dụng",
|
||||
"number_apps_other": "{{count}} ứng dụng",
|
||||
"trending_apps": "Ứng dụng thịnh hành",
|
||||
"most_popular": "Phổ biến nhất",
|
||||
"explore_apps": "{{category}} ứng dụng",
|
||||
"installed_apps": "Ứng dụng đã cài đặt",
|
||||
"free_to_use_apps": "Miễn phí",
|
||||
@@ -797,12 +809,14 @@
|
||||
"no_category_apps_description_analytics": "Thêm một ứng dụng phân tích cho những trang lịch hẹn của bạn",
|
||||
"no_category_apps_description_automation": "Thêm một ứng dụng tự động hoá để sử dụng",
|
||||
"no_category_apps_description_other": "Thêm loại ứng dụng khác để làm mọi loại công việc",
|
||||
"no_category_apps_description_web3": "Thêm một ứng dụng web3 cho những trang lịch hẹn của bạn",
|
||||
"installed_app_calendar_description": "Đặt (các) lịch làm nhiệm vụ kiểm tra xung đột nhằm ngăn tình trạng đặt lịch trùng.",
|
||||
"installed_app_conferencing_description": "Thêm ứng dụng hội nghị video mà bạn yêu thích để phục vụ cho các cuộc họp",
|
||||
"installed_app_payment_description": "Cấu hình loại dịch vụ xử lí thanh toán nào sẽ được dùng đến khi thu phí khách hàng.",
|
||||
"installed_app_analytics_description": "Cấu hình ứng dụng phân tích nào để sử dụng cho những trang lịch hẹn của bạn",
|
||||
"installed_app_other_description": "Tất cả những ứng dụng bạn đã cài từ những danh mục khác.",
|
||||
"installed_app_automation_description": "Cấu hình ứng dụng tự động hoá nên dùng",
|
||||
"installed_app_web3_description": "Cấu hình ứng dụng web3 nào cần để sử dụng cho những trang lịch hẹn của bạn",
|
||||
"analytics": "Phân tích",
|
||||
"empty_installed_apps_headline": "Chưa cài ứng dụng nào",
|
||||
"empty_installed_apps_description": "Ứng dụng cho phép bạn cải thiện tiến độ công việc và cải thiện đáng kể việc sắp xếp tổ chức.",
|
||||
@@ -930,6 +944,11 @@
|
||||
"current_location": "Địa điểm hiện tại",
|
||||
"user_phone": "Số điện thoại của bạn",
|
||||
"new_location": "Địa điểm mới",
|
||||
"session": "Phiên",
|
||||
"session_description": "Kiểm soát phiên tài khoản của bạn",
|
||||
"session_timeout_after": "Phiên hết hạn sau",
|
||||
"session_timeout": "Hết hạn phiên",
|
||||
"session_timeout_description": "Vô hiệu hoá phiên của bạn sau một khoảng thời gian nhất định.",
|
||||
"no_location": "Chưa xác định địa điểm",
|
||||
"set_location": "Đặt địa điểm",
|
||||
"update_location": "Cập nhật địa điểm",
|
||||
@@ -1073,6 +1092,7 @@
|
||||
"broken_video_action": "Chúng tôi không thể thêm liên kết cuộc họp ở <1>{{location}}</1> vào sự kiện đã lên lịch của bạn. Hãy liên hệ người được mời hoặc cập nhật sự kiện lịch để thêm chi tiết. Bạn có thể <3>thay đổi vị trí của bạn trên loại sự kiện</3> hoặc thử <5>gỡ và cài lại ứng dụng.</5>",
|
||||
"broken_calendar_action": "Chúng tôi không thể cập nhật <1>{{calendar}}</1>. <2>Vui lòng kiểm tra thiết lập lịch hoặc gỡ và cài lại lịch </2>",
|
||||
"attendee_name": "Tên người tham dự",
|
||||
"scheduler_full_name": "Tên đầy đủ của người đặt hẹn",
|
||||
"broken_integration": "Tích hợp bị hỏng",
|
||||
"problem_adding_video_link": "Có vấn đề khi thêm vào một liên kết video",
|
||||
"problem_updating_calendar": "Có một vấn đề khi cập nhật lịch của bạn",
|
||||
@@ -1215,6 +1235,7 @@
|
||||
"connect_automation_apps": "Kết nối các ứng dụng tự động hoá",
|
||||
"connect_analytics_apps": "Kết nối các ứng dụng phân tích",
|
||||
"connect_other_apps": "Kết nối các ứng dụng khác",
|
||||
"connect_web3_apps": "Kết nối các ứng dụng web3",
|
||||
"current_step_of_total": "Bước {{currentStep}}/{{maxSteps}}",
|
||||
"add_variable": "Thêm biến số",
|
||||
"custom_phone_number": "Số điện thoại tùy chỉnh",
|
||||
@@ -1231,6 +1252,7 @@
|
||||
"to": "Đến",
|
||||
"workflow_turned_on_successfully": "Đã {{offOn}} thành công dòng công việc {{workflowName}}",
|
||||
"download_responses": "Tải xuống Phản hồi",
|
||||
"download_responses_description": "Tải xuống tất cả phản hồi vào biểu mẫu của bạn ở định dạng CSV.",
|
||||
"download": "Tải về",
|
||||
"create_your_first_form": "Tạo biểu mẫu đầu tiên",
|
||||
"create_your_first_form_description": "Với Biểu mẫu định hướng, bạn có thể hỏi một số câu sơ tuyển và định hướng đến đúng người hay đúng loại sự kiện.",
|
||||
@@ -1272,6 +1294,8 @@
|
||||
"routing_forms_send_email_owner": "Gửi email đến chủ sở hữu",
|
||||
"routing_forms_send_email_owner_description": "Gửi một email đến chủ sở hữu khi biểu mẫu được gửi đi",
|
||||
"add_new_form": "Thêm biểu mẫu mới",
|
||||
"create_your_first_route": "Tạo định hướng đầu tiên của bạn",
|
||||
"route_to_the_right_person": "Định hướng đến người phù hợp dựa trên những câu trả lời cho biểu mẫu của bạn",
|
||||
"form_description": "Tạo biểu mẫu của bạn để định hướng người đặt lịch hẹn",
|
||||
"copy_link_to_form": "Sao chép liên kết vào biểu mẫu",
|
||||
"theme": "Chủ đề",
|
||||
@@ -1302,6 +1326,7 @@
|
||||
"password_reset_leading": "Nếu sau một lúc mà bạn không nhận được email, hãy kiểm tra liệu bạn có nhập địa chỉ email chính xác không, kiểm tra thư mục spam hoặc liên hệ nhờ hỗ trợ nếu vẫn còn gặp sự cố.",
|
||||
"password_updated": "Mật khẩu đã được cập nhật!",
|
||||
"pending_payment": "Thanh toán đang chờ xử lí",
|
||||
"pending_invites": "Lời mời đang chờ xử lý",
|
||||
"confirmation_page_rainbow": "Yêu cầu token để truy cập sự kiện của bạn, với các token hoặc NFT trên Ethereum, Polygon, v.v.",
|
||||
"not_on_cal": "Không phải trên {{appName}}",
|
||||
"no_calendar_installed": "Chưa cài đặt lịch nào",
|
||||
@@ -1428,6 +1453,9 @@
|
||||
"disabled_calendar": "Nếu bạn có lịch khác được cài đặt, những mục đặt hẹn mới sẽ được thêm vào đó. Nếu không thì hãy kết nối với lịch mới để bạn không bỏ lỡ bất cứ mục đặt hẹn mới nào.",
|
||||
"enable_apps": "Kích hoạt ứng dụng",
|
||||
"enable_apps_description": "Kích hoạt những ứng dụng mà người dùng có thể tích hợp với Cal.com",
|
||||
"purchase_license": "Mua một giấy phép",
|
||||
"already_have_key": "Tôi đã có một khoá:",
|
||||
"already_have_key_suggestion": "Vui lòng sao chép biến số môi trường CALCOM_LICENSE_KEY hiện có của bạn tại đây.",
|
||||
"app_is_enabled": "{{appName}} đã được kích hoạt",
|
||||
"app_is_disabled": "{{appName}} đã được vô hiệu hoá",
|
||||
"keys_have_been_saved": "Các khoá đã được lưu lại",
|
||||
@@ -1448,6 +1476,7 @@
|
||||
"individual": "Cá nhân",
|
||||
"all_bookings_filter_label": "Tất cả lịch hẹn",
|
||||
"all_users_filter_label": "Tất cả người dùng",
|
||||
"your_bookings_filter_label": "Lịch hẹn của bạn",
|
||||
"meeting_url_variable": "Url cuộc họp",
|
||||
"meeting_url_info": "URL hội nghị cuộc họp sự kiện",
|
||||
"date_overrides": "Ngày ghi đè",
|
||||
@@ -1486,6 +1515,7 @@
|
||||
"round_robin_hosts": "Chủ tọa xoay vòng",
|
||||
"minimum_round_robin_hosts_count": "Số chủ tọa cần thiết để tham dự",
|
||||
"hosts": "Chủ tọa",
|
||||
"upgrade_to_enable_feature": "Bạn cần tạo một nhóm để bật tính năng này. Nhấp để tạo một nhóm.",
|
||||
"new_attendee": "Người tham dự mới",
|
||||
"awaiting_approval": "Đang chờ duyệt",
|
||||
"requires_google_calendar": "Ứng dụng này yêu cầu bạn liên kết với Google Calendar",
|
||||
@@ -1494,6 +1524,16 @@
|
||||
"continue_to_install_google_calendar": "Tiếp tục kết nối với Google Calendar",
|
||||
"install_google_meet": "Cài Google Meet",
|
||||
"install_google_calendar": "Cài Google Calendar",
|
||||
"sender_name": "Tên người gửi",
|
||||
"already_invited": "Người tham dự đã được mời",
|
||||
"no_recordings_found": "Không tìm thấy bản ghi âm nào",
|
||||
"reporting": "Báo cáo",
|
||||
"reporting_feature": "Xem tất cả những sự kiện sắp tới từ dữ liệu và tải nó xuống ở dạng CSV",
|
||||
"teams_plan_required": "Cần có gói Teams",
|
||||
"routing_forms_are_a_great_way": "Biểu mẫu định hướng là một cách tuyệt hảo để định hướng những người dẫn đầu sắp tới vào đúng người phù hợp. Nâng cấp lên gói Teams để truy cập tính năng này.",
|
||||
"choose_a_license": "Chọn một giấy phép",
|
||||
"choose_license_description": "Cal.com đi kèm một giấy phép dễ tiếp cận và miễn phí là AGPLv3 có một số hạn chế mà có thể nâng cấp lên giấy phép Doanh nghiệp vào bất cứ lúc nào. Bạn có thể nâng cấp sau bất cứ lúc nào.",
|
||||
"license": "Giấy phép",
|
||||
"configure": "Cấu hình",
|
||||
"sso_configuration": "Cấu hình Đăng nhập một lần",
|
||||
"email_no_user_cta": "Tạo tài khoản của bạn",
|
||||
|
||||
@@ -3,5 +3,5 @@ import React from "react";
|
||||
import { AppForm } from "../components/AppCreateUpdateForm";
|
||||
|
||||
export default function Create(props: Omit<React.ComponentProps<typeof AppForm>, "action">) {
|
||||
return <AppForm action="create-template" {...props} />;
|
||||
return <AppForm action="create" {...props} />;
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ export default function AppCard({
|
||||
|
||||
return (
|
||||
<div className={`mb-4 mt-2 rounded-md border border-gray-200 ${!app.enabled && "grayscale"}`}>
|
||||
<div className="p-4 text-sm sm:p-8">
|
||||
<div className="p-4 text-sm sm:p-6">
|
||||
<div className="flex w-full flex-col gap-2 sm:flex-row sm:gap-0">
|
||||
{/* Don't know why but w-[42px] isn't working, started happening when I started using next/dynamic */}
|
||||
<Link href={"/apps/" + app.slug} className="mr-3 h-auto w-10 rounded-sm">
|
||||
@@ -37,7 +37,7 @@ export default function AppCard({
|
||||
</Link>
|
||||
<div className="flex flex-col">
|
||||
<span className="text-base font-semibold leading-4 text-black">{app?.name}</span>
|
||||
<p className="pt-2 text-sm font-normal leading-4 text-gray-600">
|
||||
<p className="mb-2 pt-2 text-sm font-normal text-gray-600 ltr:pr-2 rtl:pl-2">
|
||||
{description || app?.description}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
import type { AppMeta } from "@calcom/types/App";
|
||||
|
||||
import config from "./config.json";
|
||||
|
||||
export const metadata = {
|
||||
category: "other",
|
||||
...config,
|
||||
} as AppMeta;
|
||||
|
||||
export default metadata;
|
||||
@@ -1,2 +1 @@
|
||||
export * as api from "./api";
|
||||
export { metadata } from "./_metadata";
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
import type { AppMeta } from "@calcom/types/App";
|
||||
|
||||
import config from "./config.json";
|
||||
|
||||
export const metadata = {
|
||||
dirName: "around",
|
||||
appData: {
|
||||
location: {
|
||||
linkType: "static",
|
||||
type: "integrations:around_video",
|
||||
label: "Around Video",
|
||||
urlRegExp: "^http(s)?:\\/\\/(www\\.)?around.co\\/[a-zA-Z0-9]*",
|
||||
organizerInputPlaceholder: "https://www.around.co/rick",
|
||||
},
|
||||
},
|
||||
...config,
|
||||
} as AppMeta;
|
||||
|
||||
export default metadata;
|
||||
@@ -1,2 +1 @@
|
||||
export * as api from "./api";
|
||||
export { metadata } from "./_metadata";
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
import type { AppMeta } from "@calcom/types/App";
|
||||
|
||||
import config from "./config.json";
|
||||
|
||||
export const metadata = {
|
||||
dirName: "caldavcalendar",
|
||||
...config,
|
||||
} as AppMeta;
|
||||
|
||||
export default metadata;
|
||||
@@ -1,2 +1 @@
|
||||
export * as api from "./api";
|
||||
export { metadata } from "./_metadata";
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
import type { App } from "@calcom/types/App";
|
||||
|
||||
import config from "./config.json";
|
||||
|
||||
export const metadata = {
|
||||
category: "other",
|
||||
// FIXME: Currently for an app to be shown as installed, it must have this variable set. Either hardcoded or if it depends on some env variable, that should be checked here
|
||||
installed: true,
|
||||
rating: 0,
|
||||
reviews: 0,
|
||||
trending: true,
|
||||
verified: true,
|
||||
licenseRequired: true,
|
||||
isProOnly: true,
|
||||
dirName: "closecom",
|
||||
...config,
|
||||
} as App;
|
||||
|
||||
export default metadata;
|
||||
@@ -1,3 +1,2 @@
|
||||
export * as api from "./api";
|
||||
export * as lib from "./lib";
|
||||
export { metadata } from "./_metadata";
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
items:
|
||||
- /api/app-store/ee/routing-forms/1.jpg
|
||||
- /api/app-store/ee/routing-forms/2.jpg
|
||||
- /api/app-store/ee/routing-forms/3.jpg
|
||||
---
|
||||
|
||||
It would allow a booker to connect with the right person or choose the right event, faster. It would work by taking inputs from the booker and using that data to route to the correct booker/event as configured by Cal user
|
||||
@@ -1,19 +0,0 @@
|
||||
import type { AppMeta } from "@calcom/types/App";
|
||||
|
||||
import config from "./config.json";
|
||||
|
||||
export const metadata = {
|
||||
category: "other",
|
||||
// FIXME: Currently for an app to be shown as installed, it must have this variable set. Either hardcoded or if it depends on some env variable, that should be checked here
|
||||
installed: true,
|
||||
rating: 0,
|
||||
reviews: 0,
|
||||
trending: true,
|
||||
verified: true,
|
||||
licenseRequired: true,
|
||||
isProOnly: true,
|
||||
dirName: "routing-forms",
|
||||
...config,
|
||||
} as AppMeta;
|
||||
|
||||
export default metadata;
|
||||
@@ -1,2 +1 @@
|
||||
export * as api from "./api";
|
||||
export { metadata } from "./_metadata";
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 132 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 285 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 154 KiB |
@@ -1,16 +0,0 @@
|
||||
import type { App } from "@calcom/types/App";
|
||||
|
||||
import config from "./config.json";
|
||||
|
||||
export const metadata = {
|
||||
category: "calendar",
|
||||
installed: true,
|
||||
rating: 0,
|
||||
reviews: 0,
|
||||
trending: true,
|
||||
verified: true,
|
||||
dirName: "exchangecalendar",
|
||||
...config,
|
||||
} as App;
|
||||
|
||||
export default metadata;
|
||||
@@ -1,3 +1,2 @@
|
||||
export * as api from "./api";
|
||||
export * as lib from "./lib";
|
||||
export { metadata } from "./_metadata";
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
import type { AppMeta } from "@calcom/types/App";
|
||||
|
||||
import config from "./config.json";
|
||||
|
||||
export const metadata = {
|
||||
category: "analytics",
|
||||
dirName: "fathom",
|
||||
...config,
|
||||
} as AppMeta;
|
||||
|
||||
export default metadata;
|
||||
@@ -1,2 +1 @@
|
||||
export * as api from "./api";
|
||||
export { metadata } from "./_metadata";
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
import type { AppMeta } from "@calcom/types/App";
|
||||
|
||||
import config from "./config.json";
|
||||
|
||||
export const metadata = {
|
||||
dirName: "ga4",
|
||||
...config,
|
||||
} as AppMeta;
|
||||
|
||||
export default metadata;
|
||||
@@ -1,2 +1 @@
|
||||
export * as api from "./api";
|
||||
export { metadata } from "./_metadata";
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
import type { AppMeta } from "@calcom/types/App";
|
||||
|
||||
import config from "./config.json";
|
||||
|
||||
export const metadata = {
|
||||
category: "automation",
|
||||
dirName: "n8n",
|
||||
...config,
|
||||
} as AppMeta;
|
||||
|
||||
export default metadata;
|
||||
@@ -1,2 +1 @@
|
||||
export * as api from "./api";
|
||||
export { metadata } from "./_metadata";
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import type { Calendar as OfficeCalendar, User } from "@microsoft/microsoft-graph-types-beta";
|
||||
|
||||
import dayjs from "@calcom/dayjs";
|
||||
import { getLocation, getRichDescription } from "@calcom/lib/CalEventParser";
|
||||
import { handleErrorsJson, handleErrorsRaw } from "@calcom/lib/errors";
|
||||
import logger from "@calcom/lib/logger";
|
||||
@@ -239,6 +240,7 @@ export default class Office365CalendarService implements Calendar {
|
||||
};
|
||||
|
||||
private translateEvent = (event: CalendarEvent) => {
|
||||
const utcOffset = dayjs(event.startTime, event.organizer.timeZone).utcOffset() / 60;
|
||||
return {
|
||||
subject: event.title,
|
||||
body: {
|
||||
@@ -246,11 +248,11 @@ export default class Office365CalendarService implements Calendar {
|
||||
content: getRichDescription(event),
|
||||
},
|
||||
start: {
|
||||
dateTime: event.startTime,
|
||||
dateTime: dayjs(event.startTime).utcOffset(utcOffset).format(),
|
||||
timeZone: event.organizer.timeZone,
|
||||
},
|
||||
end: {
|
||||
dateTime: event.endTime,
|
||||
dateTime: dayjs(event.endTime).utcOffset(utcOffset).format(),
|
||||
timeZone: event.organizer.timeZone,
|
||||
},
|
||||
attendees: event.attendees.map((attendee) => ({
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
import type { AppMeta } from "@calcom/types/App";
|
||||
|
||||
import config from "./config.json";
|
||||
|
||||
export const metadata = {
|
||||
dirName: "office365video",
|
||||
...config,
|
||||
} as AppMeta;
|
||||
|
||||
export default metadata;
|
||||
@@ -1,3 +1,2 @@
|
||||
export * as api from "./api";
|
||||
export * as lib from "./lib";
|
||||
export { metadata } from "./_metadata";
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
import type { AppMeta } from "@calcom/types/App";
|
||||
|
||||
import config from "./config.json";
|
||||
|
||||
export const metadata = {
|
||||
// FIXME: Currently for an app to be shown as installed, it must have this variable set. Either hardcoded or if it depends on some env variable, that should be checked here
|
||||
installed: true,
|
||||
rating: 0,
|
||||
reviews: 0,
|
||||
trending: true,
|
||||
verified: true,
|
||||
appData: {
|
||||
location: {
|
||||
linkType: "static",
|
||||
type: "integrations:ping_video",
|
||||
label: "Ping.gg",
|
||||
organizerInputPlaceholder: "https://www.ping.gg/call/theo",
|
||||
urlRegExp: "^http(s)?:\\/\\/(www\\.)?ping.gg\\/call\\/[a-zA-Z0-9]*",
|
||||
},
|
||||
},
|
||||
dirName: "ping",
|
||||
...config,
|
||||
} as AppMeta;
|
||||
|
||||
export default metadata;
|
||||
@@ -1,2 +1 @@
|
||||
export * as api from "./api";
|
||||
export { metadata } from "./_metadata";
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
import type { AppMeta } from "@calcom/types/App";
|
||||
|
||||
import config from "./config.json";
|
||||
|
||||
export const metadata = {
|
||||
dirName: "pipedream",
|
||||
...config,
|
||||
} as AppMeta;
|
||||
|
||||
export default metadata;
|
||||
@@ -1,2 +1 @@
|
||||
export * as api from "./api";
|
||||
export { metadata } from "./_metadata";
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
import type { AppMeta } from "@calcom/types/App";
|
||||
|
||||
import config from "./config.json";
|
||||
|
||||
export const metadata = {
|
||||
category: "analytics",
|
||||
...config,
|
||||
} as AppMeta;
|
||||
|
||||
export default metadata;
|
||||
@@ -1,2 +1 @@
|
||||
export * as api from "./api";
|
||||
export { metadata } from "./_metadata";
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
import type { AppMeta } from "@calcom/types/App";
|
||||
|
||||
import config from "./config.json";
|
||||
|
||||
export const metadata = {
|
||||
category: "other",
|
||||
dirName: "qr_code",
|
||||
...config,
|
||||
} as AppMeta;
|
||||
|
||||
export default metadata;
|
||||
@@ -1,2 +1 @@
|
||||
export * as api from "./api";
|
||||
export { metadata } from "./_metadata";
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
import type { AppMeta } from "@calcom/types/App";
|
||||
|
||||
import config from "./config.json";
|
||||
|
||||
export const metadata = {
|
||||
dirName: "rainbow",
|
||||
...config,
|
||||
} as AppMeta;
|
||||
|
||||
export default metadata;
|
||||
@@ -1,2 +1 @@
|
||||
export * as api from "./api";
|
||||
export { metadata } from "./_metadata";
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
import type { AppMeta } from "@calcom/types/App";
|
||||
|
||||
import config from "./config.json";
|
||||
|
||||
export const metadata = {
|
||||
category: "other",
|
||||
dirName: "raycast",
|
||||
...config,
|
||||
} as AppMeta;
|
||||
|
||||
export default metadata;
|
||||
@@ -1,2 +1 @@
|
||||
export * as api from "./api";
|
||||
export { metadata } from "./_metadata";
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
import type { AppMeta } from "@calcom/types/App";
|
||||
|
||||
import config from "./config.json";
|
||||
|
||||
export const metadata = {
|
||||
// FIXME: Currently for an app to be shown as installed, it must have this variable set. Either hardcoded or if it depends on some env variable, that should be checked here
|
||||
installed: true,
|
||||
rating: 0,
|
||||
reviews: 0,
|
||||
trending: true,
|
||||
verified: true,
|
||||
locationPlaceholder: "https://www.riverside.fm/studio/rick",
|
||||
appData: {
|
||||
location: {
|
||||
label: "Riverside Video",
|
||||
urlRegExp: "^http(s)?:\\/\\/(www\\.)?riverside.fm\\/studio\\/[a-zA-Z0-9]*",
|
||||
type: "integrations:riverside_video",
|
||||
linkType: "static",
|
||||
},
|
||||
},
|
||||
dirName: "riverside",
|
||||
...config,
|
||||
} as AppMeta;
|
||||
|
||||
export default metadata;
|
||||
@@ -1,2 +1 @@
|
||||
export * as api from "./api";
|
||||
export { metadata } from "./_metadata";
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
import type { AppMeta } from "@calcom/types/App";
|
||||
|
||||
import config from "./config.json";
|
||||
|
||||
export const metadata = {
|
||||
dirName: "salesforce",
|
||||
...config,
|
||||
} as AppMeta;
|
||||
|
||||
export default metadata;
|
||||
@@ -1,3 +1,2 @@
|
||||
export * as api from "./api";
|
||||
export * as lib from "./lib";
|
||||
export { metadata } from "./_metadata";
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
import type { AppMeta } from "@calcom/types/App";
|
||||
|
||||
import config from "./config.json";
|
||||
|
||||
export const metadata = {
|
||||
dirName: "sendgrid",
|
||||
...config,
|
||||
} as AppMeta;
|
||||
|
||||
export default metadata;
|
||||
@@ -1,3 +1,2 @@
|
||||
export * as api from "./api";
|
||||
export * as lib from "./lib";
|
||||
export { metadata } from "./_metadata";
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
import type { AppMeta } from "@calcom/types/App";
|
||||
|
||||
import config from "./config.json";
|
||||
|
||||
export const metadata = {
|
||||
dirName: "signal",
|
||||
...config,
|
||||
} as AppMeta;
|
||||
|
||||
export default metadata;
|
||||
@@ -1,2 +1 @@
|
||||
export * as api from "./api";
|
||||
export { metadata } from "./_metadata";
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
import type { AppMeta } from "@calcom/types/App";
|
||||
|
||||
import config from "./config.json";
|
||||
|
||||
export const metadata = {
|
||||
dirName: "sirius_video",
|
||||
...config,
|
||||
} as AppMeta;
|
||||
|
||||
export default metadata;
|
||||
@@ -1,2 +1 @@
|
||||
export * as api from "./api";
|
||||
export { metadata } from "./_metadata";
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
export { default as InstallAppButton } from "./InstallAppButton";
|
||||
@@ -1,10 +0,0 @@
|
||||
import type { AppMeta } from "@calcom/types/App";
|
||||
|
||||
import config from "./config.json";
|
||||
|
||||
export const metadata = {
|
||||
dirName: "telegram",
|
||||
...config,
|
||||
} as AppMeta;
|
||||
|
||||
export default metadata;
|
||||
@@ -1,2 +1 @@
|
||||
export * as api from "./api";
|
||||
export { metadata } from "./_metadata";
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
import type { AppMeta } from "@calcom/types/App";
|
||||
|
||||
import config from "./config.json";
|
||||
|
||||
export const metadata = {
|
||||
category: "other",
|
||||
dirName: "typeform",
|
||||
...config,
|
||||
} as AppMeta;
|
||||
|
||||
export default metadata;
|
||||
@@ -1,2 +1 @@
|
||||
export * as api from "./api";
|
||||
export { metadata } from "./_metadata";
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
import type { AppMeta } from "@calcom/types/App";
|
||||
|
||||
import config from "./config.json";
|
||||
|
||||
export const metadata = {
|
||||
category: "other",
|
||||
...config,
|
||||
} as AppMeta;
|
||||
|
||||
export default metadata;
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user