Translations (#900)
* Translations * Variables to Translated Words * Fix Translations * Fix Title to Create Events Types Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
This commit is contained in:
		
							parent
							
								
									8cbf880af6
								
							
						
					
					
						commit
						82f11b5121
					
				
					 4 changed files with 370 additions and 201 deletions
				
			
		| 
						 | 
				
			
			@ -85,7 +85,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
  const { eventType, locationOptions, availability, team, teamMembers, hasPaymentIntegration, currency } =
 | 
			
		||||
    props;
 | 
			
		||||
 | 
			
		||||
  const { locale } = useLocale({ localeProp: props.localeProp });
 | 
			
		||||
  const { t, locale } = useLocale({ localeProp: props.localeProp });
 | 
			
		||||
  const router = useRouter();
 | 
			
		||||
  const [successModalOpen, setSuccessModalOpen] = useState(false);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -112,9 +112,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
  });
 | 
			
		||||
 | 
			
		||||
  const [users, setUsers] = useState<AdvancedOptions["users"]>([]);
 | 
			
		||||
 | 
			
		||||
  const [editIcon, setEditIcon] = useState(true);
 | 
			
		||||
 | 
			
		||||
  const [enteredAvailability, setEnteredAvailability] = useState();
 | 
			
		||||
  const [showLocationModal, setShowLocationModal] = useState(false);
 | 
			
		||||
  const [selectedTimeZone, setSelectedTimeZone] = useState("");
 | 
			
		||||
| 
						 | 
				
			
			@ -250,7 +248,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
        return (
 | 
			
		||||
          <div>
 | 
			
		||||
            <label htmlFor="address" className="block text-sm font-medium text-gray-700">
 | 
			
		||||
              Set an address or place
 | 
			
		||||
              {t("set_address_place")}
 | 
			
		||||
            </label>
 | 
			
		||||
            <div className="mt-1">
 | 
			
		||||
              <input
 | 
			
		||||
| 
						 | 
				
			
			@ -265,15 +263,13 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
          </div>
 | 
			
		||||
        );
 | 
			
		||||
      case LocationType.Phone:
 | 
			
		||||
        return (
 | 
			
		||||
          <p className="text-sm">Cal will ask your invitee to enter a phone number before scheduling.</p>
 | 
			
		||||
        );
 | 
			
		||||
        return <p className="text-sm">{t("cal_invitee_phone_number_scheduling")}</p>;
 | 
			
		||||
      case LocationType.GoogleMeet:
 | 
			
		||||
        return <p className="text-sm">Cal will provide a Google Meet location.</p>;
 | 
			
		||||
        return <p className="text-sm">{t("cal_provide_google_meet_location")}</p>;
 | 
			
		||||
      case LocationType.Zoom:
 | 
			
		||||
        return <p className="text-sm">Cal will provide a Zoom meeting URL.</p>;
 | 
			
		||||
        return <p className="text-sm">{t("cal_provide_zoom_meeting_url")}</p>;
 | 
			
		||||
      case LocationType.Daily:
 | 
			
		||||
        return <p className="text-sm">Cal will provide a video meeting URL.</p>;
 | 
			
		||||
        return <p className="text-sm">{t("cal_provide_video_meeting_url")}</p>;
 | 
			
		||||
    }
 | 
			
		||||
    return null;
 | 
			
		||||
  };
 | 
			
		||||
| 
						 | 
				
			
			@ -325,7 +321,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
        centered
 | 
			
		||||
        title={`${eventType.title} | Event Type`}
 | 
			
		||||
        heading={
 | 
			
		||||
          <div className="relative group -mb-2" onClick={() => setEditIcon(false)}>
 | 
			
		||||
          <div className="relative -mb-2 group" onClick={() => setEditIcon(false)}>
 | 
			
		||||
            <input
 | 
			
		||||
              ref={titleRef}
 | 
			
		||||
              type="text"
 | 
			
		||||
| 
						 | 
				
			
			@ -345,16 +341,16 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
          </div>
 | 
			
		||||
        }
 | 
			
		||||
        subtitle={eventType.description || ""}>
 | 
			
		||||
        <div className="block sm:flex md:max-w-5xl mx-auto">
 | 
			
		||||
        <div className="block mx-auto sm:flex md:max-w-5xl">
 | 
			
		||||
          <div className="w-full mr-2 sm:w-9/12">
 | 
			
		||||
            <div className="p-4 py-6 -mx-4 bg-white border rounded-sm border-neutral-200 sm:mx-0 sm:px-8">
 | 
			
		||||
              <form onSubmit={updateEventTypeHandler} className="space-y-6">
 | 
			
		||||
                <div className="space-y-3">
 | 
			
		||||
                  <div className="items-center block sm:flex">
 | 
			
		||||
                    <div className="mb-4 min-w-48 sm:mb-0">
 | 
			
		||||
                      <label htmlFor="slug" className="flex mt-0 text-sm font-medium text-neutral-700">
 | 
			
		||||
                      <label htmlFor="slug" className="mt-0 label-form-icon">
 | 
			
		||||
                        <LinkIcon className="w-4 h-4 mr-2 text-neutral-500" />
 | 
			
		||||
                        URL
 | 
			
		||||
                        {t("url")}
 | 
			
		||||
                      </label>
 | 
			
		||||
                    </div>
 | 
			
		||||
                    <div className="w-full">
 | 
			
		||||
| 
						 | 
				
			
			@ -378,7 +374,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                  <MinutesField
 | 
			
		||||
                    label={
 | 
			
		||||
                      <>
 | 
			
		||||
                        <ClockIcon className="w-4 h-4 mr-2 mt-0.5 text-neutral-500" /> Duration
 | 
			
		||||
                        <ClockIcon className="w-4 h-4 mr-2 mt-0.5 text-neutral-500" /> {t("duration")}
 | 
			
		||||
                      </>
 | 
			
		||||
                    }
 | 
			
		||||
                    name="length"
 | 
			
		||||
| 
						 | 
				
			
			@ -394,7 +390,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                    <div className="min-w-48 sm:mb-0">
 | 
			
		||||
                      <label htmlFor="location" className="flex mt-2.5 text-sm font-medium text-neutral-700">
 | 
			
		||||
                        <LocationMarkerIcon className="w-4 h-4 mr-2 mt-0.5 text-neutral-500" />
 | 
			
		||||
                        Location
 | 
			
		||||
                        {t("location")}
 | 
			
		||||
                      </label>
 | 
			
		||||
                    </div>
 | 
			
		||||
                    <div className="w-full">
 | 
			
		||||
| 
						 | 
				
			
			@ -427,7 +423,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                                {location.type === LocationType.Phone && (
 | 
			
		||||
                                  <div className="flex items-center flex-grow">
 | 
			
		||||
                                    <PhoneIcon className="w-6 h-6" />
 | 
			
		||||
                                    <span className="ml-2 text-sm">Phone call</span>
 | 
			
		||||
                                    <span className="ml-2 text-sm">{t("phone_call")}</span>
 | 
			
		||||
                                  </div>
 | 
			
		||||
                                )}
 | 
			
		||||
                                {location.type === LocationType.GoogleMeet && (
 | 
			
		||||
| 
						 | 
				
			
			@ -537,11 +533,11 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                                  <button
 | 
			
		||||
                                    type="button"
 | 
			
		||||
                                    onClick={() => openLocationModal(location.type)}
 | 
			
		||||
                                    className="mr-1 text-gray-500 hover:text-gray-900 p-1">
 | 
			
		||||
                                    className="p-1 mr-1 text-gray-500 hover:text-gray-900">
 | 
			
		||||
                                    <PencilIcon className="w-4 h-4" />
 | 
			
		||||
                                  </button>
 | 
			
		||||
                                  <button onClick={() => removeLocation(location)}>
 | 
			
		||||
                                    <XIcon className="w-6 h-6 pl-1 border-l-1 text-gray-500 hover:text-gray-900 " />
 | 
			
		||||
                                    <XIcon className="w-6 h-6 pl-1 text-gray-500 border-l-1 hover:text-gray-900 " />
 | 
			
		||||
                                  </button>
 | 
			
		||||
                                </div>
 | 
			
		||||
                              </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -555,7 +551,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                                onClick={() => setShowLocationModal(true)}>
 | 
			
		||||
                                <PlusIcon className="h-4 w-4 mt-0.5 text-neutral-900" />
 | 
			
		||||
                                <span className="ml-1 text-sm font-medium text-neutral-700">
 | 
			
		||||
                                  Add a location
 | 
			
		||||
                                  {t("add_location")}
 | 
			
		||||
                                </span>
 | 
			
		||||
                              </button>
 | 
			
		||||
                            </li>
 | 
			
		||||
| 
						 | 
				
			
			@ -571,7 +567,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                    <div className="mb-4 min-w-48 sm:mb-0 mt-2.5">
 | 
			
		||||
                      <label htmlFor="description" className="flex mt-0 text-sm font-medium text-neutral-700">
 | 
			
		||||
                        <DocumentIcon className="w-4 h-4 mr-2 mt-0.5 text-neutral-500" />
 | 
			
		||||
                        Description
 | 
			
		||||
                        {t("description")}
 | 
			
		||||
                      </label>
 | 
			
		||||
                    </div>
 | 
			
		||||
                    <div className="w-full">
 | 
			
		||||
| 
						 | 
				
			
			@ -579,7 +575,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                        name="description"
 | 
			
		||||
                        id="description"
 | 
			
		||||
                        className="block w-full border-gray-300 rounded-sm shadow-sm focus:ring-primary-500 focus:border-primary-500 sm:text-sm"
 | 
			
		||||
                        placeholder="A quick video meeting."
 | 
			
		||||
                        placeholder={t("quick_video_meeting")}
 | 
			
		||||
                        defaultValue={asStringOrUndefined(eventType.description)}></textarea>
 | 
			
		||||
                    </div>
 | 
			
		||||
                  </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -592,7 +588,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                        <label
 | 
			
		||||
                          htmlFor="schedulingType"
 | 
			
		||||
                          className="flex mt-2 text-sm font-medium text-neutral-700">
 | 
			
		||||
                          <UsersIcon className="w-5 h-5 mr-2 text-neutral-500" /> Scheduling Type
 | 
			
		||||
                          <UsersIcon className="w-5 h-5 mr-2 text-neutral-500" /> {t("scheduling_type")}
 | 
			
		||||
                        </label>
 | 
			
		||||
                      </div>
 | 
			
		||||
                      <RadioArea.Select
 | 
			
		||||
| 
						 | 
				
			
			@ -605,7 +601,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                    <div className="block sm:flex">
 | 
			
		||||
                      <div className="mb-4 min-w-48 sm:mb-0">
 | 
			
		||||
                        <label htmlFor="users" className="flex text-sm font-medium text-neutral-700">
 | 
			
		||||
                          <UserAddIcon className="w-5 h-5 mr-2 text-neutral-500" /> Attendees
 | 
			
		||||
                          <UserAddIcon className="w-5 h-5 mr-2 text-neutral-500" /> {t("attendees")}
 | 
			
		||||
                        </label>
 | 
			
		||||
                      </div>
 | 
			
		||||
                      <div className="w-full space-y-2">
 | 
			
		||||
| 
						 | 
				
			
			@ -614,7 +610,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                          defaultValue={eventType.users.map(mapUserToValue)}
 | 
			
		||||
                          options={teamMembers.map(mapUserToValue)}
 | 
			
		||||
                          id="users"
 | 
			
		||||
                          placeholder="Add attendees"
 | 
			
		||||
                          placeholder={t("add_attendees")}
 | 
			
		||||
                        />
 | 
			
		||||
                      </div>
 | 
			
		||||
                    </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -628,13 +624,15 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                        <ChevronRightIcon
 | 
			
		||||
                          className={`${open ? "transform rotate-90" : ""} w-5 h-5 text-neutral-500 ml-auto`}
 | 
			
		||||
                        />
 | 
			
		||||
                        <span className="text-sm font-medium text-neutral-700">Show advanced settings</span>
 | 
			
		||||
                        <span className="text-sm font-medium text-neutral-700">
 | 
			
		||||
                          {t("show_advanced_settings")}
 | 
			
		||||
                        </span>
 | 
			
		||||
                      </Disclosure.Button>
 | 
			
		||||
                      <Disclosure.Panel className="space-y-6">
 | 
			
		||||
                        <div className="items-center block sm:flex">
 | 
			
		||||
                          <div className="mb-4 min-w-48 sm:mb-0">
 | 
			
		||||
                            <label htmlFor="eventName" className="flex text-sm font-medium text-neutral-700">
 | 
			
		||||
                              Event name
 | 
			
		||||
                              {t("event_name")}
 | 
			
		||||
                            </label>
 | 
			
		||||
                          </div>
 | 
			
		||||
                          <div className="w-full">
 | 
			
		||||
| 
						 | 
				
			
			@ -645,7 +643,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                                name="title"
 | 
			
		||||
                                id="title"
 | 
			
		||||
                                className="block w-full border-gray-300 rounded-sm shadow-sm focus:ring-primary-500 focus:border-primary-500 sm:text-sm"
 | 
			
		||||
                                placeholder="Meeting with {USER}"
 | 
			
		||||
                                placeholder={t("meeting_with_user")}
 | 
			
		||||
                                defaultValue={eventType.eventName}
 | 
			
		||||
                              />
 | 
			
		||||
                            </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -655,8 +653,8 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                          <div className="mb-4 min-w-48 sm:mb-0">
 | 
			
		||||
                            <label
 | 
			
		||||
                              htmlFor="additionalFields"
 | 
			
		||||
                              className="flexflex mt-2 text-sm font-medium text-neutral-700 text-sm font-medium text-neutral-700">
 | 
			
		||||
                              Additional inputs
 | 
			
		||||
                              className="mt-2 text-sm font-medium flexflex text-neutral-700">
 | 
			
		||||
                              {t("additional_inputs")}
 | 
			
		||||
                            </label>
 | 
			
		||||
                          </div>
 | 
			
		||||
                          <div className="w-full">
 | 
			
		||||
| 
						 | 
				
			
			@ -666,7 +664,9 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                                  <div className="flex justify-between">
 | 
			
		||||
                                    <div>
 | 
			
		||||
                                      <div>
 | 
			
		||||
                                        <span className="ml-2 text-sm">Label: {customInput.label}</span>
 | 
			
		||||
                                        <span className="ml-2 text-sm">
 | 
			
		||||
                                          {t("label")}: {customInput.label}
 | 
			
		||||
                                        </span>
 | 
			
		||||
                                      </div>
 | 
			
		||||
                                      {customInput.placeholder && (
 | 
			
		||||
                                        <div>
 | 
			
		||||
| 
						 | 
				
			
			@ -676,7 +676,9 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                                        </div>
 | 
			
		||||
                                      )}
 | 
			
		||||
                                      <div>
 | 
			
		||||
                                        <span className="ml-2 text-sm">Type: {customInput.type}</span>
 | 
			
		||||
                                        <span className="ml-2 text-sm">
 | 
			
		||||
                                          {t("type")}: {customInput.type}
 | 
			
		||||
                                        </span>
 | 
			
		||||
                                      </div>
 | 
			
		||||
                                      <div>
 | 
			
		||||
                                        <span className="ml-2 text-sm">
 | 
			
		||||
| 
						 | 
				
			
			@ -692,7 +694,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                                        }}
 | 
			
		||||
                                        color="minimal"
 | 
			
		||||
                                        type="button">
 | 
			
		||||
                                        Edit
 | 
			
		||||
                                        {t("edit")}
 | 
			
		||||
                                      </Button>
 | 
			
		||||
                                      <button type="button" onClick={() => removeCustom(idx)}>
 | 
			
		||||
                                        <XIcon className="w-6 h-6 pl-1 border-l-2 hover:text-red-500 " />
 | 
			
		||||
| 
						 | 
				
			
			@ -710,7 +712,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                                  color="secondary"
 | 
			
		||||
                                  type="button"
 | 
			
		||||
                                  StartIcon={PlusIcon}>
 | 
			
		||||
                                  Add an input
 | 
			
		||||
                                  {t("add_input")}
 | 
			
		||||
                                </Button>
 | 
			
		||||
                              </li>
 | 
			
		||||
                            </ul>
 | 
			
		||||
| 
						 | 
				
			
			@ -720,23 +722,23 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                        <CheckboxField
 | 
			
		||||
                          id="requiresConfirmation"
 | 
			
		||||
                          name="requiresConfirmation"
 | 
			
		||||
                          label="Opt-in booking"
 | 
			
		||||
                          description="The booking needs to be manually confirmed before it is pushed to the integrations and a confirmation mail is sent."
 | 
			
		||||
                          label={t("opt_in_booking")}
 | 
			
		||||
                          description={t("opt_in_booking_description")}
 | 
			
		||||
                          defaultChecked={eventType.requiresConfirmation}
 | 
			
		||||
                        />
 | 
			
		||||
 | 
			
		||||
                        <CheckboxField
 | 
			
		||||
                          id="disableGuests"
 | 
			
		||||
                          name="disableGuests"
 | 
			
		||||
                          label="Disable guests"
 | 
			
		||||
                          description="Disable adding aditional guests while booking."
 | 
			
		||||
                          label={t("disable_guests")}
 | 
			
		||||
                          description={t("disable_guests_description")}
 | 
			
		||||
                          defaultChecked={eventType.disableGuests}
 | 
			
		||||
                        />
 | 
			
		||||
 | 
			
		||||
                        <hr className="my-2 border-neutral-200" />
 | 
			
		||||
 | 
			
		||||
                        <MinutesField
 | 
			
		||||
                          label="Minimum booking notice"
 | 
			
		||||
                          label={t("minimum_booking_notice")}
 | 
			
		||||
                          name="minimumBookingNotice"
 | 
			
		||||
                          id="minimumBookingNotice"
 | 
			
		||||
                          required
 | 
			
		||||
| 
						 | 
				
			
			@ -749,12 +751,12 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                            <label
 | 
			
		||||
                              htmlFor="inviteesCanSchedule"
 | 
			
		||||
                              className="flex text-sm font-medium text-neutral-700 mt-2.5">
 | 
			
		||||
                              Invitees can schedule
 | 
			
		||||
                              {t("invitees_can_schedule")}
 | 
			
		||||
                            </label>
 | 
			
		||||
                          </div>
 | 
			
		||||
                          <div className="w-full">
 | 
			
		||||
                            <RadioGroup value={periodType} onChange={setPeriodType}>
 | 
			
		||||
                              <RadioGroup.Label className="sr-only">Date Range</RadioGroup.Label>
 | 
			
		||||
                              <RadioGroup.Label className="sr-only">{t("date_range")}</RadioGroup.Label>
 | 
			
		||||
                              <div>
 | 
			
		||||
                                {PERIOD_TYPES.map((period) => (
 | 
			
		||||
                                  <RadioGroup.Option
 | 
			
		||||
| 
						 | 
				
			
			@ -804,8 +806,8 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                                                  defaultValue={
 | 
			
		||||
                                                    eventType.periodCountCalendarDays ? "1" : "0"
 | 
			
		||||
                                                  }>
 | 
			
		||||
                                                  <option value="1">calendar days</option>
 | 
			
		||||
                                                  <option value="0">business days</option>
 | 
			
		||||
                                                  <option value="1">{t("calendar_days")}</option>
 | 
			
		||||
                                                  <option value="0">{t("business_days")}</option>
 | 
			
		||||
                                                </select>
 | 
			
		||||
                                              </div>
 | 
			
		||||
                                            )}
 | 
			
		||||
| 
						 | 
				
			
			@ -838,7 +840,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                            <label
 | 
			
		||||
                              htmlFor="availability"
 | 
			
		||||
                              className="flex text-sm font-medium text-neutral-700">
 | 
			
		||||
                              Availability
 | 
			
		||||
                              {t("availability")}
 | 
			
		||||
                            </label>
 | 
			
		||||
                          </div>
 | 
			
		||||
                          <div className="w-full">
 | 
			
		||||
| 
						 | 
				
			
			@ -859,7 +861,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                                <label
 | 
			
		||||
                                  htmlFor="payment"
 | 
			
		||||
                                  className="flex mt-2 text-sm font-medium text-neutral-700">
 | 
			
		||||
                                  Payment
 | 
			
		||||
                                  {t("payment")}
 | 
			
		||||
                                </label>
 | 
			
		||||
                              </div>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -880,7 +882,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                                        </div>
 | 
			
		||||
                                        <div className="ml-3 text-sm">
 | 
			
		||||
                                          <p className="text-neutral-900">
 | 
			
		||||
                                            Require Payment (0.5% +{" "}
 | 
			
		||||
                                            {t("require_payment")} (0.5% +{" "}
 | 
			
		||||
                                            <IntlProvider locale="en">
 | 
			
		||||
                                              <FormattedNumber
 | 
			
		||||
                                                value={0.1}
 | 
			
		||||
| 
						 | 
				
			
			@ -888,7 +890,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                                                currency={currency}
 | 
			
		||||
                                              />
 | 
			
		||||
                                            </IntlProvider>{" "}
 | 
			
		||||
                                            commission per transaction)
 | 
			
		||||
                                            {t("commission_per_transaction")})
 | 
			
		||||
                                          </p>
 | 
			
		||||
                                        </div>
 | 
			
		||||
                                      </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -939,14 +941,15 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                </Disclosure>
 | 
			
		||||
                <div className="flex justify-end mt-4 space-x-2">
 | 
			
		||||
                  <Button href="/event-types" color="secondary" tabIndex={-1}>
 | 
			
		||||
                    Cancel
 | 
			
		||||
                    {t("cancel")}
 | 
			
		||||
                  </Button>
 | 
			
		||||
                    {t("update")}
 | 
			
		||||
                  </Button>
 | 
			
		||||
                  <Button type="submit">Update</Button>
 | 
			
		||||
                </div>
 | 
			
		||||
              </form>
 | 
			
		||||
              <Modal
 | 
			
		||||
                heading="Event Type updated successfully"
 | 
			
		||||
                description="Your event type has been updated successfully."
 | 
			
		||||
                heading={t("event_type_updated_successfully")}
 | 
			
		||||
                description={t("event_type_updated_successfully_description")}
 | 
			
		||||
                open={successModalOpen}
 | 
			
		||||
                handleClose={closeSuccessModal}
 | 
			
		||||
              />
 | 
			
		||||
| 
						 | 
				
			
			@ -958,7 +961,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                name="isHidden"
 | 
			
		||||
                defaultChecked={hidden}
 | 
			
		||||
                onCheckedChange={setHidden}
 | 
			
		||||
                label="Hide event type"
 | 
			
		||||
                label={t("hide_event_type")}
 | 
			
		||||
              />
 | 
			
		||||
            </div>
 | 
			
		||||
            <div className="mt-4 space-y-1.5">
 | 
			
		||||
| 
						 | 
				
			
			@ -966,9 +969,9 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                href={permalink}
 | 
			
		||||
                target="_blank"
 | 
			
		||||
                rel="noreferrer"
 | 
			
		||||
                className="flex font-medium text-md text-neutral-700 text-sm items-center hover:text-gray-900 hover:bg-gray-200 px-2 py-1 rounded-sm inline-flex">
 | 
			
		||||
                className="flex inline-flex items-center px-2 py-1 text-sm font-medium rounded-sm text-md text-neutral-700 hover:text-gray-900 hover:bg-gray-200">
 | 
			
		||||
                <ExternalLinkIcon className="w-4 h-4 mr-2 text-neutral-500" aria-hidden="true" />
 | 
			
		||||
                Preview
 | 
			
		||||
                {t("preview")}
 | 
			
		||||
              </a>
 | 
			
		||||
              <button
 | 
			
		||||
                onClick={() => {
 | 
			
		||||
| 
						 | 
				
			
			@ -976,23 +979,22 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                  showToast("Link copied!", "success");
 | 
			
		||||
                }}
 | 
			
		||||
                type="button"
 | 
			
		||||
                className="flex font-medium text-md text-sm text-gray-700 items-center hover:text-gray-900 hover:bg-gray-200 px-2 py-1 rounded-sm">
 | 
			
		||||
                className="flex items-center px-2 py-1 text-sm font-medium text-gray-700 rounded-sm text-md hover:text-gray-900 hover:bg-gray-200">
 | 
			
		||||
                <LinkIcon className="w-4 h-4 mr-2 text-neutral-500" />
 | 
			
		||||
                Copy link
 | 
			
		||||
                {t("copy_link")}
 | 
			
		||||
              </button>
 | 
			
		||||
              <Dialog>
 | 
			
		||||
                <DialogTrigger className="flex font-medium text-md text-sm text-neutral-700 items-center hover:text-gray-900 hover:bg-gray-200 px-2 py-1 rounded-sm">
 | 
			
		||||
                <DialogTrigger className="flex items-center px-2 py-1 text-sm font-medium rounded-sm text-md text-neutral-700 hover:text-gray-900 hover:bg-gray-200">
 | 
			
		||||
                  <TrashIcon className="w-4 h-4 mr-2 text-neutral-500" />
 | 
			
		||||
                  Delete
 | 
			
		||||
                  {t("delete")}
 | 
			
		||||
                </DialogTrigger>
 | 
			
		||||
                <ConfirmationDialogContent
 | 
			
		||||
                  localeProp={locale}
 | 
			
		||||
                  variety="danger"
 | 
			
		||||
                  title="Delete Event Type"
 | 
			
		||||
                  confirmBtnText="Yes, delete event type"
 | 
			
		||||
                  title={t("delete_event_type")}
 | 
			
		||||
                  confirmBtnText={t("confirm_delete_event_type")}
 | 
			
		||||
                  onConfirm={deleteEventTypeHandler}>
 | 
			
		||||
                  Are you sure you want to delete this event type? Anyone who you've shared this link
 | 
			
		||||
                  with will no longer be able to book using it.
 | 
			
		||||
                  {t("delete_event_type_description")}
 | 
			
		||||
                </ConfirmationDialogContent>
 | 
			
		||||
              </Dialog>
 | 
			
		||||
            </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -1020,7 +1022,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                  </div>
 | 
			
		||||
                  <div className="mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left">
 | 
			
		||||
                    <h3 className="text-lg font-medium leading-6 text-gray-900" id="modal-title">
 | 
			
		||||
                      Edit location
 | 
			
		||||
                      {t("edit_location")}
 | 
			
		||||
                    </h3>
 | 
			
		||||
                  </div>
 | 
			
		||||
                </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -1037,10 +1039,10 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                  <LocationOptions />
 | 
			
		||||
                  <div className="mt-5 sm:mt-4 sm:flex sm:flex-row-reverse">
 | 
			
		||||
                    <button type="submit" className="btn btn-primary">
 | 
			
		||||
                      Update
 | 
			
		||||
                      {t("update")}
 | 
			
		||||
                    </button>
 | 
			
		||||
                    <button onClick={closeLocationModal} type="button" className="mr-2 btn btn-white">
 | 
			
		||||
                      Cancel
 | 
			
		||||
                      {t("cancel")}
 | 
			
		||||
                    </button>
 | 
			
		||||
                  </div>
 | 
			
		||||
                </form>
 | 
			
		||||
| 
						 | 
				
			
			@ -1057,11 +1059,10 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                </div>
 | 
			
		||||
                <div className="mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left">
 | 
			
		||||
                  <h3 className="text-lg font-medium leading-6 text-gray-900" id="modal-title">
 | 
			
		||||
                    Add new custom input field
 | 
			
		||||
                    {t("add_new_custom_input_field")}
 | 
			
		||||
                  </h3>
 | 
			
		||||
                  <div>
 | 
			
		||||
                    <p className="text-sm text-gray-400">This input will be shown when booking this event</p>
 | 
			
		||||
                  </div>
 | 
			
		||||
                    <p className="text-sm text-gray-400">{t("this_input_will_shown_booking_this_event")}</p>
 | 
			
		||||
                  </div>
 | 
			
		||||
                </div>
 | 
			
		||||
                <CustomInputTypeForm
 | 
			
		||||
| 
						 | 
				
			
			@ -1091,6 +1092,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
 | 
			
		|||
                  }}
 | 
			
		||||
                />
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
          </DialogContent>
 | 
			
		||||
        </Dialog>
 | 
			
		||||
      </Shell>
 | 
			
		||||
| 
						 | 
				
			
			@ -1244,7 +1246,6 @@ export const getServerSideProps = async (context: GetServerSidePropsContext) =>
 | 
			
		|||
  if (hasDailyIntegration) {
 | 
			
		||||
    locationOptions.push({ value: LocationType.Daily, label: "Daily.co Video" });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  const currency =
 | 
			
		||||
    (credentials.find((integration) => integration.type === "stripe_payment")?.key as unknown as StripeData)
 | 
			
		||||
      ?.default_currency || "usd";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -55,17 +55,14 @@ type Profile = PageProps["profiles"][number];
 | 
			
		|||
type MembershipCount = EventType["metadata"]["membershipCount"];
 | 
			
		||||
 | 
			
		||||
const EventTypesPage = (props: PageProps) => {
 | 
			
		||||
  const { locale } = useLocale({ localeProp: props.localeProp });
 | 
			
		||||
  const { t, locale } = useLocale({ localeProp: props.localeProp });
 | 
			
		||||
 | 
			
		||||
  const CreateFirstEventTypeView = () => (
 | 
			
		||||
    <div className="md:py-20">
 | 
			
		||||
      <UserCalendarIllustration />
 | 
			
		||||
      <div className="block mx-auto text-center md:max-w-screen-sm">
 | 
			
		||||
        <h3 className="mt-2 text-xl font-bold text-neutral-900">Create your first event type</h3>
 | 
			
		||||
        <p className="mt-1 mb-2 text-md text-neutral-600">
 | 
			
		||||
          Event types enable you to share links that show available times on your calendar and allow people to
 | 
			
		||||
          make bookings with you.
 | 
			
		||||
        </p>
 | 
			
		||||
        <h3 className="mt-2 text-xl font-bold text-neutral-900">{t("new_event_type_heading")}</h3>
 | 
			
		||||
        <p className="mt-1 mb-2 text-md text-neutral-600">{t("new_event_type_description")}</p>
 | 
			
		||||
        <CreateNewEventDialog
 | 
			
		||||
          localeProp={locale}
 | 
			
		||||
          canAddEvents={props.canAddEvents}
 | 
			
		||||
| 
						 | 
				
			
			@ -151,12 +148,12 @@ const EventTypesPage = (props: PageProps) => {
 | 
			
		|||
                      <span className="font-medium truncate text-neutral-900">{type.title}</span>
 | 
			
		||||
                      {type.hidden && (
 | 
			
		||||
                        <span className="ml-2 inline items-center px-1.5 py-0.5 rounded-sm text-xs font-medium bg-yellow-100 text-yellow-800">
 | 
			
		||||
                          Hidden
 | 
			
		||||
                          {t("hidden")}
 | 
			
		||||
                        </span>
 | 
			
		||||
                      )}
 | 
			
		||||
                      {readOnly && (
 | 
			
		||||
                        <span className="ml-2 inline items-center px-1.5 py-0.5 rounded-sm text-xs font-medium bg-gray-100 text-gray-800">
 | 
			
		||||
                          Readonly
 | 
			
		||||
                          {t("readonly")}
 | 
			
		||||
                        </span>
 | 
			
		||||
                      )}
 | 
			
		||||
                    </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -207,7 +204,7 @@ const EventTypesPage = (props: PageProps) => {
 | 
			
		|||
                    <>
 | 
			
		||||
                      <div>
 | 
			
		||||
                        <Menu.Button className="p-2 mt-1 border border-transparent text-neutral-400 hover:border-gray-200">
 | 
			
		||||
                          <span className="sr-only">Open options</span>
 | 
			
		||||
                          <span className="sr-only">{t("open_options")}</span>
 | 
			
		||||
                          <DotsHorizontalIcon className="w-5 h-5" aria-hidden="true" />
 | 
			
		||||
                        </Menu.Button>
 | 
			
		||||
                      </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -239,7 +236,7 @@ const EventTypesPage = (props: PageProps) => {
 | 
			
		|||
                                    className="w-4 h-4 mr-3 text-neutral-400 group-hover:text-neutral-500"
 | 
			
		||||
                                    aria-hidden="true"
 | 
			
		||||
                                  />
 | 
			
		||||
                                  Preview
 | 
			
		||||
                                  {t("preview")}
 | 
			
		||||
                                </a>
 | 
			
		||||
                              )}
 | 
			
		||||
                            </Menu.Item>
 | 
			
		||||
| 
						 | 
				
			
			@ -260,7 +257,7 @@ const EventTypesPage = (props: PageProps) => {
 | 
			
		|||
                                    className="w-4 h-4 mr-3 text-neutral-400 group-hover:text-neutral-500"
 | 
			
		||||
                                    aria-hidden="true"
 | 
			
		||||
                                  />
 | 
			
		||||
                                  Copy link to event
 | 
			
		||||
                                  {t("copy_link")}
 | 
			
		||||
                                </button>
 | 
			
		||||
                              )}
 | 
			
		||||
                            </Menu.Item>
 | 
			
		||||
| 
						 | 
				
			
			@ -281,12 +278,12 @@ const EventTypesPage = (props: PageProps) => {
 | 
			
		|||
  return (
 | 
			
		||||
    <div>
 | 
			
		||||
      <Head>
 | 
			
		||||
        <title>Event Types | Cal.com</title>
 | 
			
		||||
        <title>{t("event_types_page_title")}| Cal.com</title>
 | 
			
		||||
        <link rel="icon" href="/favicon.ico" />
 | 
			
		||||
      </Head>
 | 
			
		||||
      <Shell
 | 
			
		||||
        heading="Event Types"
 | 
			
		||||
        subtitle="Create events to share for people to book on your calendar."
 | 
			
		||||
        heading={t("event_types_page_title")}
 | 
			
		||||
        subtitle={t("event_types_page_subtitle")}
 | 
			
		||||
        CTA={
 | 
			
		||||
          props.eventTypes.length !== 0 && (
 | 
			
		||||
            <CreateNewEventDialog canAddEvents={props.canAddEvents} profiles={props.profiles} />
 | 
			
		||||
| 
						 | 
				
			
			@ -295,10 +292,10 @@ const EventTypesPage = (props: PageProps) => {
 | 
			
		|||
        {props.user.plan === "FREE" && !props.canAddEvents && (
 | 
			
		||||
          <Alert
 | 
			
		||||
            severity="warning"
 | 
			
		||||
            title={<>You need to upgrade your plan to have more than one active event type.</>}
 | 
			
		||||
            title={<>{t("plan_upgrade")}</>}
 | 
			
		||||
            message={
 | 
			
		||||
              <>
 | 
			
		||||
                To upgrade go to{" "}
 | 
			
		||||
                {t("to_upgrade_go_to")}{" "}
 | 
			
		||||
                <a href={"https://cal.com/upgrade"} className="underline">
 | 
			
		||||
                  {"https://cal.com/upgrade"}
 | 
			
		||||
                </a>
 | 
			
		||||
| 
						 | 
				
			
			@ -384,7 +381,7 @@ const CreateNewEventDialog = ({
 | 
			
		|||
            <Button EndIcon={ChevronDownIcon}>{t("new_event_type_btn")}</Button>
 | 
			
		||||
          </DropdownMenuTrigger>
 | 
			
		||||
          <DropdownMenuContent align="end">
 | 
			
		||||
            <DropdownMenuLabel>Create an event type under your name or a team.</DropdownMenuLabel>
 | 
			
		||||
            <DropdownMenuLabel>{t("new_event_subtitle")}</DropdownMenuLabel>
 | 
			
		||||
            <DropdownMenuSeparator className="h-px bg-gray-200" />
 | 
			
		||||
            {profiles.map((profile) => (
 | 
			
		||||
              <DropdownMenuItem
 | 
			
		||||
| 
						 | 
				
			
			@ -420,10 +417,10 @@ const CreateNewEventDialog = ({
 | 
			
		|||
      <DialogContent>
 | 
			
		||||
        <div className="mb-8">
 | 
			
		||||
          <h3 className="text-lg font-bold leading-6 text-gray-900" id="modal-title">
 | 
			
		||||
            Add a new {teamId ? "team " : ""}event type
 | 
			
		||||
            {teamId ? t("add_new_team_event_type") : t("add_new_event_type")}
 | 
			
		||||
          </h3>
 | 
			
		||||
          <div>
 | 
			
		||||
            <p className="text-sm text-gray-500">Create a new event type for people to book times with.</p>
 | 
			
		||||
            <p className="text-sm text-gray-500">{t("new_event_type_to_book_description")}</p>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <form
 | 
			
		||||
| 
						 | 
				
			
			@ -452,7 +449,7 @@ const CreateNewEventDialog = ({
 | 
			
		|||
          <div>
 | 
			
		||||
            <div className="mb-4">
 | 
			
		||||
              <label htmlFor="title" className="block text-sm font-medium text-gray-700">
 | 
			
		||||
                Title
 | 
			
		||||
                {t("title")}
 | 
			
		||||
              </label>
 | 
			
		||||
              <div className="mt-1">
 | 
			
		||||
                <input
 | 
			
		||||
| 
						 | 
				
			
			@ -467,17 +464,18 @@ const CreateNewEventDialog = ({
 | 
			
		|||
                  id="title"
 | 
			
		||||
                  required
 | 
			
		||||
                  className="block w-full border-gray-300 rounded-sm shadow-sm focus:ring-neutral-900 focus:border-neutral-900 sm:text-sm"
 | 
			
		||||
                  placeholder="Quick Chat"
 | 
			
		||||
                  placeholder={t("quick_chat")}
 | 
			
		||||
                />
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div className="mb-4">
 | 
			
		||||
              <label htmlFor="slug" className="block text-sm font-medium text-gray-700">
 | 
			
		||||
                URL
 | 
			
		||||
                {t("url")}
 | 
			
		||||
              </label>
 | 
			
		||||
              <div className="mt-1">
 | 
			
		||||
                <div className="flex rounded-sm shadow-sm">
 | 
			
		||||
                  <span className="inline-flex items-center px-3 text-gray-500 border border-r-0 border-gray-300 rounded-l-md bg-gray-50 sm:text-sm">
 | 
			
		||||
                  <span className="input-left">
 | 
			
		||||
                    {process.env.NEXT_PUBLIC_APP_URL}/{router.query.eventPage || profiles[0].slug}/
 | 
			
		||||
                  </span>
 | 
			
		||||
                  <input
 | 
			
		||||
| 
						 | 
				
			
			@ -493,20 +491,20 @@ const CreateNewEventDialog = ({
 | 
			
		|||
            </div>
 | 
			
		||||
            <div className="mb-4">
 | 
			
		||||
              <label htmlFor="description" className="block text-sm font-medium text-gray-700">
 | 
			
		||||
                Description
 | 
			
		||||
                {t("description")}
 | 
			
		||||
              </label>
 | 
			
		||||
              <div className="mt-1">
 | 
			
		||||
                <textarea
 | 
			
		||||
                  name="description"
 | 
			
		||||
                  id="description"
 | 
			
		||||
                  className="block w-full border-gray-300 rounded-sm shadow-sm focus:ring-neutral-900 focus:border-neutral-900 sm:text-sm"
 | 
			
		||||
                  placeholder="A quick video meeting."
 | 
			
		||||
                  placeholder={t("quick_video_meeting")}
 | 
			
		||||
                />
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div className="mb-4">
 | 
			
		||||
              <label htmlFor="length" className="block text-sm font-medium text-gray-700">
 | 
			
		||||
                Length
 | 
			
		||||
                {t("length")}
 | 
			
		||||
              </label>
 | 
			
		||||
              <div className="relative mt-1 rounded-sm shadow-sm">
 | 
			
		||||
                <input
 | 
			
		||||
| 
						 | 
				
			
			@ -519,7 +517,7 @@ const CreateNewEventDialog = ({
 | 
			
		|||
                  defaultValue={15}
 | 
			
		||||
                />
 | 
			
		||||
                <div className="absolute inset-y-0 right-0 flex items-center pr-3 text-sm text-gray-400">
 | 
			
		||||
                  minutes
 | 
			
		||||
                  {t("minutes")}
 | 
			
		||||
                </div>
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -527,28 +525,28 @@ const CreateNewEventDialog = ({
 | 
			
		|||
          {teamId && (
 | 
			
		||||
            <div className="mb-4">
 | 
			
		||||
              <label htmlFor="schedulingType" className="block text-sm font-medium text-gray-700">
 | 
			
		||||
                Scheduling Type
 | 
			
		||||
                {t("scheduling_type")}
 | 
			
		||||
              </label>
 | 
			
		||||
              <RadioArea.Group
 | 
			
		||||
                name="schedulingType"
 | 
			
		||||
                className="relative flex mt-1 space-x-6 rounded-sm shadow-sm">
 | 
			
		||||
                <RadioArea.Item value={SchedulingType.COLLECTIVE} className="w-1/2 text-sm">
 | 
			
		||||
                  <strong className="block mb-1">Collective</strong>
 | 
			
		||||
                  <p>Schedule meetings when all selected team members are available.</p>
 | 
			
		||||
                  <strong className="block mb-1">{t("collective")}</strong>
 | 
			
		||||
                  <p>{t("collective_description")}</p>
 | 
			
		||||
                </RadioArea.Item>
 | 
			
		||||
                <RadioArea.Item value={SchedulingType.ROUND_ROBIN} className="w-1/2 text-sm">
 | 
			
		||||
                  <strong className="block mb-1">Round Robin</strong>
 | 
			
		||||
                  <p>Cycle meetings between multiple team members.</p>
 | 
			
		||||
                  <strong className="block mb-1">{t("round_robin")}</strong>
 | 
			
		||||
                  <p>{t("round_robin_description")}</p>
 | 
			
		||||
                </RadioArea.Item>
 | 
			
		||||
              </RadioArea.Group>
 | 
			
		||||
            </div>
 | 
			
		||||
          )}
 | 
			
		||||
          <div className="mt-8 sm:flex sm:flex-row-reverse gap-x-2">
 | 
			
		||||
            <Button type="submit" loading={createMutation.isLoading}>
 | 
			
		||||
              Continue
 | 
			
		||||
              {t("continue")}
 | 
			
		||||
            </Button>
 | 
			
		||||
            <DialogClose asChild>
 | 
			
		||||
              <Button color="secondary">Cancel</Button>
 | 
			
		||||
              <Button color="secondary">{t("cancel")}</Button>
 | 
			
		||||
            </DialogClose>
 | 
			
		||||
          </div>
 | 
			
		||||
        </form>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -145,5 +145,89 @@
 | 
			
		|||
  "new_event_subtitle": "Create an event type under your name or a team.",
 | 
			
		||||
  "new_team_event": "Add a new team event type",
 | 
			
		||||
  "new_event_description": "Create a new event type for people to book times with.",
 | 
			
		||||
  "event_type_created_successfully": "{{eventTypeTitle}} event type created successfully"
 | 
			
		||||
  "event_type_created_successfully": "{{eventTypeTitle}} event type created successfully",
 | 
			
		||||
  "hours": "Hours",
 | 
			
		||||
  "full_name": "Full Name",
 | 
			
		||||
  "your_email": "Your Email",
 | 
			
		||||
  "change_avatar": "Change Avatar",
 | 
			
		||||
  "language": "Language",
 | 
			
		||||
  "timezone": "Timezone",
 | 
			
		||||
  "first_day_week": "First day week",
 | 
			
		||||
  "single_theme": "Single Theme",
 | 
			
		||||
  "file_not_named": "File is not named [idOrSlug]/[user]",
 | 
			
		||||
  "create_team": "Create Team",
 | 
			
		||||
  "name_team": "Name",
 | 
			
		||||
  "create_new_team_description": "Create a new team to collaborate with users.",
 | 
			
		||||
  "create_new_team": "Create a new team",
 | 
			
		||||
  "open_invitations": "Open Invitations",
 | 
			
		||||
  "new_team": "New Team",
 | 
			
		||||
  "create_first_invite_other_users": "Create your first team and invite other users to work together with you.",
 | 
			
		||||
  "create_team_get_started": "Create a team to get started",
 | 
			
		||||
  "teams": "Teams",
 | 
			
		||||
  "create_manage_teams_collaborative": "Create and manage teams to use collaborative features.",
 | 
			
		||||
  "this_feature_only_available_paid_plan": "This feature is only available in paid plan",
 | 
			
		||||
  "order_remove_cal_branding_description": "In order to remove the Cal branding from your booking pages, you need to upgrade to a paid account.",
 | 
			
		||||
  "to_upgrade_go_to": "To upgrade go to",
 | 
			
		||||
  "edit_profile_info_description": "Edit your profile information, which shows on your scheduling link.",
 | 
			
		||||
  "change_email_contact": "To change your email, please contact",
 | 
			
		||||
  "little_something_about": "A little something about yourself.",
 | 
			
		||||
  "profile_updated_successfully": "Profile updated successfully",
 | 
			
		||||
  "your_user_profile_updated_successfully": "Your user profile has been updated successfully.",
 | 
			
		||||
  "user_cannot_found_db": "User seems logged in but cannot be found in the db",
 | 
			
		||||
  "embed_and_webhooks": "Embed & Webhooks",
 | 
			
		||||
  "enabled": "Enabled",
 | 
			
		||||
  "disabled": "Disabled",
 | 
			
		||||
  "billing": "Billing",
 | 
			
		||||
  "manage_your_billing_info": "Manage your billing information and cancel your subscription.",
 | 
			
		||||
  "availability": "Availability",
 | 
			
		||||
  "configure_times_available_bookings": "Configure times when you are available for bookings.",
 | 
			
		||||
  "change_weekly_schedule": "Change your weekly schedule",
 | 
			
		||||
  "logo": "Logo",
 | 
			
		||||
  "error": "Error",
 | 
			
		||||
  "team_logo": "Team Logo",
 | 
			
		||||
  "add_location": "Add a location",
 | 
			
		||||
  "attendees": "Attendees",
 | 
			
		||||
  "add_attendees": "Add attendees",
 | 
			
		||||
  "show_advanced_settings": "Show advanced settings",
 | 
			
		||||
  "event_name": "Event Name",
 | 
			
		||||
  "meeting_with_user": "Meeting with {USER}",
 | 
			
		||||
  "additional_inputs": "Additional Inputs",
 | 
			
		||||
  "label": "Label",
 | 
			
		||||
  "type": "Type",
 | 
			
		||||
  "edit": "Edit",
 | 
			
		||||
  "add_input": "Add an Input",
 | 
			
		||||
  "opt_in_booking": "Opt-in Booking",
 | 
			
		||||
  "opt_in_booking_description": "The booking needs to be manually confirmed before it is pushed to the integrations and a confirmation mail is sent.",
 | 
			
		||||
  "disable_guests": "Disable Guests",
 | 
			
		||||
  "disable_guests_description": "Disable adding additional guests while booking.",
 | 
			
		||||
  "invitees_can_schedule": "Invitees can schedule",
 | 
			
		||||
  "date_range": "Date Range",
 | 
			
		||||
  "calendar_days": "calendar days",
 | 
			
		||||
  "business_days": "business days",
 | 
			
		||||
  "payment": "Payment",
 | 
			
		||||
  "set_address_place": "Set an address or place",
 | 
			
		||||
  "cal_invitee_phone_number_scheduling": "Cal will ask your invitee to enter a phone number before scheduling.",
 | 
			
		||||
  "cal_provide_google_meet_location": "Cal will provide a Google Meet location.",
 | 
			
		||||
  "cal_provide_zoom_meeting_url": "Cal will provide a Zoom meeting URL.",
 | 
			
		||||
  "cal_provide_video_meeting_url": "Cal will provide a Daily video meeting URL.",
 | 
			
		||||
  "require_payment": "Require Payment",
 | 
			
		||||
  "commission_per_transaction": "commission per transaction",
 | 
			
		||||
  "event_type_updated_successfully": "Event Type updated successfully",
 | 
			
		||||
  "event_type_updated_successfully_description": "Your event type has been updated successfully.",
 | 
			
		||||
  "hide_event_type": "Hide event type",
 | 
			
		||||
  "edit_location": "Edit location",
 | 
			
		||||
  "into_the_future": "into the future",
 | 
			
		||||
  "within_date_range": "Within a date range",
 | 
			
		||||
  "indefinitely_into_future": "Indefinitely into the future",
 | 
			
		||||
  "this_input_will_shown_booking_this_event": "This input will be shown when booking this event",
 | 
			
		||||
  "add_new_custom_input_field": "Add new custom input field",
 | 
			
		||||
  "quick_chat": "Quick Chat",
 | 
			
		||||
  "add_new_team_event_type": "Add a new team event type",
 | 
			
		||||
  "add_new_event_type": "Add a new event type",
 | 
			
		||||
  "new_event_type_to_book_description": "Create a new event type for people to book times with.",
 | 
			
		||||
  "length": "Length",
 | 
			
		||||
  "minimum_booking_notice": "Minimum booking notice",
 | 
			
		||||
  "delete_event_type_description": "Are you sure you want to delete this event type? Anyone who you've shared this link with will no longer be able to book using it.",
 | 
			
		||||
  "delete_event_type": "Delete Event Type",
 | 
			
		||||
  "confirm_delete_event_type": "Yes, delete event type"
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,37 +1,39 @@
 | 
			
		|||
{
 | 
			
		||||
  "edit_logo": "Cambiar la marca",
 | 
			
		||||
  "upload_a_logo": "Subir una marca",
 | 
			
		||||
  "enable": "Habilitar",
 | 
			
		||||
  "uh_oh": "Uh oh!",
 | 
			
		||||
  "no_event_types_have_been_setup": "Este usuario aún no ha configurado ningún tipo de evento.",
 | 
			
		||||
  "edit_logo": "Cambiar Logo",
 | 
			
		||||
  "upload_a_logo": "Subir Logo",
 | 
			
		||||
  "enable": "Activar",
 | 
			
		||||
  "code": "Código",
 | 
			
		||||
  "code_is_incorrect": "El código es incorrecto.",
 | 
			
		||||
  "code_is_incorrect": "Código Incorrecto.",
 | 
			
		||||
  "add_an_extra_layer_of_security": "Agregue una capa adicional de seguridad a su cuenta en caso de que le roben su contraseña.",
 | 
			
		||||
  "2fa": "Autorización de dos factores",
 | 
			
		||||
  "enable_2fa": "Habilitar la autenticación de dos factores",
 | 
			
		||||
  "disable_2fa": "Deshabilitar la autenticación de dos factores",
 | 
			
		||||
  "disable_2fa_recommendation": "Si necesita deshabilitar 2FA, le recomendamos que lo vuelva a habilitar lo antes posible.",
 | 
			
		||||
  "error_disabling_2fa": "Error al deshabilitar la autenticación de dos factores",
 | 
			
		||||
  "2fa": "Autorización de Dos Factores",
 | 
			
		||||
  "enable_2fa": "Activar la Autenticación de Dos Factores",
 | 
			
		||||
  "disable_2fa": "Desactivar la Autenticación de Dos Factores",
 | 
			
		||||
  "disable_2fa_recommendation": "Si necesita desactivar 2FA, le recomendamos que lo vuelva a activar lo antes posible.",
 | 
			
		||||
  "error_disabling_2fa": "Error al desactivar la autenticación de dos factores",
 | 
			
		||||
  "error_enabling_2fa": "Error al configurar la autenticación de dos factores",
 | 
			
		||||
  "security": "Seguridad",
 | 
			
		||||
  "manage_account_security": "Administra la seguridad de tu cuenta.",
 | 
			
		||||
  "manage_account_security": "Administra la Seguridad de tu Cuenta.",
 | 
			
		||||
  "password": "Contraseña",
 | 
			
		||||
  "password_updated_successfully": "Contraseña actualizada con éxito",
 | 
			
		||||
  "password_has_been_changed": "Su contraseña se ha cambiado correctamente.",
 | 
			
		||||
  "error_changing_password": "Error al cambiar la contraseña",
 | 
			
		||||
  "something_went_wrong": "Algo ha fallado",
 | 
			
		||||
  "please_try_again": "Por favor, inténtalo de nuevo",
 | 
			
		||||
  "super_secure_new_password": "Su nueva contraseña super segura",
 | 
			
		||||
  "new_password": "Nueva contraseña",
 | 
			
		||||
  "your_old_password": "Su contraseña antigua",
 | 
			
		||||
  "current_password": "Contraseña actual",
 | 
			
		||||
  "password_updated_successfully": "Contraseña Actualizada con Éxito",
 | 
			
		||||
  "password_has_been_changed": "Su Contraseña se ha Cambiado Correctamente.",
 | 
			
		||||
  "error_changing_password": "Error al Cambiar la Contraseña",
 | 
			
		||||
  "something_went_wrong": "Algo ha Fallado",
 | 
			
		||||
  "please_try_again": "Por Favor, Inténtalo de Nuevo",
 | 
			
		||||
  "super_secure_new_password": "Tu Nueva Contraseña Super Segura",
 | 
			
		||||
  "new_password": "Nueva Contraseña",
 | 
			
		||||
  "your_old_password": "Contraseña Antigua",
 | 
			
		||||
  "current_password": "Contraseña Actual",
 | 
			
		||||
  "change_password": "Cambiar Contraseña",
 | 
			
		||||
  "new_password_matches_old_password": "La nueva contraseña coincide con su contraseña antigua. Por favor, elija una contraseña diferente.",
 | 
			
		||||
  "current_incorrect_password": "La contraseña actual es incorrecta",
 | 
			
		||||
  "incorrect_password": "La contraseña es incorrecta",
 | 
			
		||||
  "current_incorrect_password": "La Contraseña Actual es Incorrecta",
 | 
			
		||||
  "incorrect_password": "La Contraseña es Incorrecta",
 | 
			
		||||
  "1_on_1": "1 a 1",
 | 
			
		||||
  "24_h": "24hs",
 | 
			
		||||
  "use_setting": "Usar configuración",
 | 
			
		||||
  "use_setting": "Usar Ajuste",
 | 
			
		||||
  "am_pm": "am/pm",
 | 
			
		||||
  "time_options": "Opciones de tiempo",
 | 
			
		||||
  "time_options": "Opciones Horas",
 | 
			
		||||
  "january": "Enero",
 | 
			
		||||
  "february": "Febrero",
 | 
			
		||||
  "march": "Marzo",
 | 
			
		||||
| 
						 | 
				
			
			@ -51,53 +53,53 @@
 | 
			
		|||
  "friday": "Viernes",
 | 
			
		||||
  "saturday": "Sábado",
 | 
			
		||||
  "sunday": "Domingo",
 | 
			
		||||
  "all_booked_today": "Todo reservado hoy.",
 | 
			
		||||
  "all_booked_today": "Todo Reservado Hoy.",
 | 
			
		||||
  "slots_load_fail": "No se pudo cargar el intervalo de tiempo disponible.",
 | 
			
		||||
  "additional_guests": "+ Invitados adicionales",
 | 
			
		||||
  "your_name": "Tu nombre",
 | 
			
		||||
  "email_address": "Correo electrónico",
 | 
			
		||||
  "additional_guests": "+ Invitados Adicionales",
 | 
			
		||||
  "your_name": "Tu Nombre",
 | 
			
		||||
  "email_address": "Email",
 | 
			
		||||
  "location": "Ubicación",
 | 
			
		||||
  "yes": "sí",
 | 
			
		||||
  "no": "no",
 | 
			
		||||
  "additional_notes": "Notas adicionales",
 | 
			
		||||
  "booking_fail": "No se pudo reservar la reunión.",
 | 
			
		||||
  "reschedule_fail": "No se pudo cambiar la reunión.",
 | 
			
		||||
  "share_additional_notes": "Por favor comparta cualquier cosa que nos ayude preparar para esta reunión.",
 | 
			
		||||
  "yes": "Sí",
 | 
			
		||||
  "no": "No",
 | 
			
		||||
  "additional_notes": "Notas Adicionales",
 | 
			
		||||
  "booking_fail": "No se ha podido reservar la reunión.",
 | 
			
		||||
  "reschedule_fail": "No se ha podido reprogramar la reunión.",
 | 
			
		||||
  "share_additional_notes": "Por favor, comparta cualquier cosa que ayude a preparar nuestra reunión.",
 | 
			
		||||
  "booking_confirmation": "Confirma tu {{eventTypeTitle}} con {{profileName}}",
 | 
			
		||||
  "booking_reschedule_confirmation": "Cambia tu {{eventTypeTitle}} con {{profileName}}",
 | 
			
		||||
  "in_person_meeting": "Reunión en línea o en persona",
 | 
			
		||||
  "phone_call": "Llamada telefónica",
 | 
			
		||||
  "phone_number": "Número telefónico",
 | 
			
		||||
  "enter_phone_number": "Entra un número de teléfono",
 | 
			
		||||
  "reschedule": "Cambiar",
 | 
			
		||||
  "booking_reschedule_confirmation": "Reprogramar tu {{eventTypeTitle}} con {{profileName}}",
 | 
			
		||||
  "in_person_meeting": "Reunión en Línea o en Persona",
 | 
			
		||||
  "phone_call": "Llamada Telefónica",
 | 
			
		||||
  "phone_number": "Nª de Telefono",
 | 
			
		||||
  "enter_phone_number": "Introducir Nº de Telefono",
 | 
			
		||||
  "reschedule": "Reprogramar",
 | 
			
		||||
  "book_a_team_member": "Reservar un miembro del equipo en su lugar",
 | 
			
		||||
  "or": "O",
 | 
			
		||||
  "go_back": "Volver",
 | 
			
		||||
  "email_or_username": "Correo electrónico o nombre de usuario",
 | 
			
		||||
  "send_invite_email": "Enviar una invitación electrónica",
 | 
			
		||||
  "role": "Título",
 | 
			
		||||
  "edit_team": "Editar equipo",
 | 
			
		||||
  "email_or_username": "Email o Nombre de Usuario",
 | 
			
		||||
  "send_invite_email": "Enviar Invitación por Email",
 | 
			
		||||
  "role": "Rol",
 | 
			
		||||
  "edit_team": "Editar Equipo",
 | 
			
		||||
  "reject": "Rechazar",
 | 
			
		||||
  "accept": "Aceptar",
 | 
			
		||||
  "leave": "Salir",
 | 
			
		||||
  "leave": "Abandonar",
 | 
			
		||||
  "profile": "Perfil",
 | 
			
		||||
  "my_team_url": "URL de mi equipo",
 | 
			
		||||
  "team_name": "Nombre del equipo",
 | 
			
		||||
  "your_team_name": "Nombre de tu equipo",
 | 
			
		||||
  "team_updated_successfully": "Equipo actualizado correctamente",
 | 
			
		||||
  "your_team_updated_successfully": "Tu equipo se ha actualizado correctamente.",
 | 
			
		||||
  "my_team_url": "URL de Mi Equipo",
 | 
			
		||||
  "team_name": "Nombre del Equipo",
 | 
			
		||||
  "your_team_name": "Nombre de tu Equipo",
 | 
			
		||||
  "team_updated_successfully": "Equipo Actualizado Correctamente",
 | 
			
		||||
  "your_team_updated_successfully": "Tu equipo ha sido actualizado con éxito.",
 | 
			
		||||
  "about": "Acerca de",
 | 
			
		||||
  "team_description": "Algunas frases sobre tu equipo. Esto aparecerá en la página de tu equipo.",
 | 
			
		||||
  "team_description": "Descripción del Equipo. Esto aparecerá en la página de tu equipo.",
 | 
			
		||||
  "members": "Miembros",
 | 
			
		||||
  "member": "Miembro",
 | 
			
		||||
  "owner": "Propietario",
 | 
			
		||||
  "new_member": "Nuevo miembro",
 | 
			
		||||
  "new_member": "Nuevo Miembro",
 | 
			
		||||
  "invite": "Invitar",
 | 
			
		||||
  "invite_new_member": "Invita a un nuevo miembro",
 | 
			
		||||
  "invite_new_member": "Invita a un Nuevo Miembro",
 | 
			
		||||
  "invite_new_team_member": "Invita a alguien a tu equipo.",
 | 
			
		||||
  "disable_cal_branding": "Desactivar marca de Cal.com",
 | 
			
		||||
  "disable_cal_branding_description": "Ocultar todas las marcas de Cal.com de sus páginas públicas.",
 | 
			
		||||
  "danger_zone": "Zona peligrosa",
 | 
			
		||||
  "danger_zone": "Zona Peligrosa",
 | 
			
		||||
  "back": "Atrás",
 | 
			
		||||
  "cancel": "Cancelar",
 | 
			
		||||
  "continue": "Continuar",
 | 
			
		||||
| 
						 | 
				
			
			@ -105,43 +107,127 @@
 | 
			
		|||
  "disband_team": "Disolver Equipo",
 | 
			
		||||
  "disband_team_confirmation_message": "¿Estás seguro de que quieres disolver este equipo? Cualquiera con quien has compartido este enlace de equipo ya no podrá reservar usando el mismo.",
 | 
			
		||||
  "remove_member_confirmation_message": "¿Estás seguro de que quieres eliminar este miembro del equipo?",
 | 
			
		||||
  "confirm_disband_team": "Sí, disolver equipo",
 | 
			
		||||
  "confirm_remove_member": "Sí, eliminar miembro",
 | 
			
		||||
  "remove_member": "Eliminar miembro",
 | 
			
		||||
  "manage_your_team": "Administra tu equipo",
 | 
			
		||||
  "confirm_disband_team": "Sí, Disolver Equipo",
 | 
			
		||||
  "confirm_remove_member": "Sí, Eliminar Miembro",
 | 
			
		||||
  "remove_member": "Eliminar Miembro",
 | 
			
		||||
  "manage_your_team": "Administra tu Equipo",
 | 
			
		||||
  "submit": "Enviar",
 | 
			
		||||
  "delete": "Eliminar",
 | 
			
		||||
  "update": "Actualizar",
 | 
			
		||||
  "save": "Guardar",
 | 
			
		||||
  "pending": "Pendiente",
 | 
			
		||||
  "open_options": "Abrir opciones",
 | 
			
		||||
  "copy_link": "Copiar enlace al evento",
 | 
			
		||||
  "preview": "Vista previa",
 | 
			
		||||
  "link_copied": "¡Enlace copiado!",
 | 
			
		||||
  "open_options": "Abrir Opciones",
 | 
			
		||||
  "copy_link": "Copiar Enlace",
 | 
			
		||||
  "preview": "Vista Previa",
 | 
			
		||||
  "link_copied": "¡Enlace Copiado!",
 | 
			
		||||
  "title": "Título",
 | 
			
		||||
  "description": "Descripción",
 | 
			
		||||
  "quick_video_meeting": "Una reunión de vídeo rápida.",
 | 
			
		||||
  "scheduling_type": "Tipo de programación",
 | 
			
		||||
  "preview_team": "Vista previa del equipo",
 | 
			
		||||
  "quick_video_meeting": "Reunión de Vídeo Rápida.",
 | 
			
		||||
  "scheduling_type": "Tipo de Programación",
 | 
			
		||||
  "preview_team": "Ver Equipo",
 | 
			
		||||
  "collective": "Colectivo",
 | 
			
		||||
  "collective_description": "Programe reuniones cuando todos los miembros del equipo seleccionados estén disponibles.",
 | 
			
		||||
  "duration": "Duración",
 | 
			
		||||
  "minutes": "minutos",
 | 
			
		||||
  "round_robin": "Petición firmada por turnos",
 | 
			
		||||
  "minutes": "Minutos",
 | 
			
		||||
  "round_robin": "Petición Firmada por Turnos",
 | 
			
		||||
  "round_robin_description": "Ciclo de reuniones entre varios miembros del equipo.",
 | 
			
		||||
  "url": "URL",
 | 
			
		||||
  "hidden": "Oculto",
 | 
			
		||||
  "readonly": "Sólo lectura",
 | 
			
		||||
  "readonly": "Sólo Lectura",
 | 
			
		||||
  "plan_upgrade": "Necesitas actualizar tu plan para tener más de un tipo de evento activo.",
 | 
			
		||||
  "plan_upgrade_instructions": "Para actualizar, dirígete a <a href=\"https://cal.com/upgrade\" className=\"underline\">https://cal.com/upgrade</a>",
 | 
			
		||||
  "event_types_page_title": "Tipos de Evento",
 | 
			
		||||
  "event_types_page_subtitle": "Crea eventos para que la gente que invites reserve en tu calendario.",
 | 
			
		||||
  "new_event_type_btn": "Nuevo tipo de evento",
 | 
			
		||||
  "new_event_type_btn": "Nuevo Tipo de Evento",
 | 
			
		||||
  "new_event_type_heading": "Crea tu primer tipo de evento",
 | 
			
		||||
  "new_event_type_description": "Los tipos de eventos te permiten compartir enlaces que muestran las horas disponibles en tu calendario y permitir que la gente haga reservas contigo.",
 | 
			
		||||
  "new_event_title": "Agregar un nuevo tipo de evento",
 | 
			
		||||
  "new_event_title": "Crear Nuevo Tipo de Evento",
 | 
			
		||||
  "new_event_subtitle": "Crea un tipo de evento bajo tu nombre o equipo.",
 | 
			
		||||
  "new_team_event": "Agregar un nuevo tipo de evento de equipo",
 | 
			
		||||
  "new_event_description": "Crea un nuevo tipo de evento con el que la gente pueda hacer reservaciónes.",
 | 
			
		||||
  "event_type_created_successfully": "{{eventTypeTitle}} tipo de evento creado con éxito"
 | 
			
		||||
  "new_team_event": "Crear Nuevo Tipo de Evento de Equipo",
 | 
			
		||||
  "new_event_description": "Crea un nuevo tipo de evento con el que la gente pueda hacer reservas.",
 | 
			
		||||
  "event_type_created_successfully": "{{eventTypeTitle}} tipo de evento creado con éxito",
 | 
			
		||||
  "hours": "Horas",
 | 
			
		||||
  "full_name": "Nombre Completo",
 | 
			
		||||
  "your_email": "Tu Email",
 | 
			
		||||
  "change_avatar": "Cambiar Avatar",
 | 
			
		||||
  "language": "Lenguaje",
 | 
			
		||||
  "timezone": "Zona Horaria",
 | 
			
		||||
  "first_day_week": "Primer Día de la Semana",
 | 
			
		||||
  "single_theme": "Tema",
 | 
			
		||||
  "automatically_theme_invitee": "Ajusta automáticamente el tema según las preferencias de los invitados",
 | 
			
		||||
  "create_team": "Crear Equipo",
 | 
			
		||||
  "name_team": "Nombre",
 | 
			
		||||
  "create_new_team_description": "Crea un nuevo equipo para colaborar con los usuarios.",
 | 
			
		||||
  "create_new_team": "Crear Nuevo Equipo",
 | 
			
		||||
  "open_invitations": "Invitaciones Abiertas",
 | 
			
		||||
  "new_team": "Nuevo Equipo",
 | 
			
		||||
  "create_first_invite_other_users": "Crea tu primer equipo e invita a otros usuarios a trabajar contigo.",
 | 
			
		||||
  "create_team_get_started": "Crea un equipo para empezar",
 | 
			
		||||
  "teams": "Equipos",
 | 
			
		||||
  "create_manage_teams_collaborative": "Cree y gestiona equipos para utilizar las funciones colaborativas.",
 | 
			
		||||
  "this_feature_only_available_paid_plan": "Esta función solo está disponible en el plan pago",
 | 
			
		||||
  "order_remove_cal_branding_description": "Para eliminar la marca Cal de sus páginas de reserva, debe actualizar a una cuenta de pago.",
 | 
			
		||||
  "to_upgrade_go_to": "Para actualizar vaya a",
 | 
			
		||||
  "edit_profile_info_description": "Edite la información de su perfil, que se muestra en su enlace de programación.",
 | 
			
		||||
  "change_email_contact": "Para cambiar su email, pongase en contacto con",
 | 
			
		||||
  "little_something_about": "Algo sobre ti.",
 | 
			
		||||
  "profile_updated_successfully": "Perfil Actualizado con Éxito",
 | 
			
		||||
  "your_user_profile_updated_successfully": "Su perfil de usuario se ha actualizado correctamente.",
 | 
			
		||||
  "user_cannot_found_db": "El usuario parece haber iniciado sesión pero no se puede encontrar en la base de datos",
 | 
			
		||||
  "embed_and_webhooks": "Insertar & Webhooks",
 | 
			
		||||
  "enabled": "Activado",
 | 
			
		||||
  "disabled": "Desactivado",
 | 
			
		||||
  "billing": "Facturación",
 | 
			
		||||
  "manage_your_billing_info": "Gestione su información de facturación y cancele su suscripción.",
 | 
			
		||||
  "availability": "Disponibilidad",
 | 
			
		||||
  "configure_times_available_bookings": "Configure los horarios en los que está disponible para realizar reservas.",
 | 
			
		||||
  "change_weekly_schedule": "Cambia tu Horario Semanal",
 | 
			
		||||
  "logo": "Logo",
 | 
			
		||||
  "error": "Error",
 | 
			
		||||
  "team_logo": "Logo del Equipo",
 | 
			
		||||
  "add_location": "Añadir Localización",
 | 
			
		||||
  "attendees": "Asistentes",
 | 
			
		||||
  "add_attendees": "Añadir Asistentes",
 | 
			
		||||
  "show_advanced_settings": "Mostrar Opciones Avanzadas",
 | 
			
		||||
  "event_name": "Nombre del Evento",
 | 
			
		||||
  "meeting_with_user": "Reunión con {USER}",
 | 
			
		||||
  "additional_inputs": "Campos Adicionales",
 | 
			
		||||
  "label": "Etiqueta",
 | 
			
		||||
  "type": "Tipo",
 | 
			
		||||
  "edit": "Editar",
 | 
			
		||||
  "add_input": "Agregar un Campo",
 | 
			
		||||
  "opt_in_booking": "Pedido de Reserva",
 | 
			
		||||
  "opt_in_booking_description": "La reserva debe confirmarse manualmente antes de que se envíe a las integraciones y se envíe un correo de confirmación.",
 | 
			
		||||
  "disable_guests": "Desactivar Invitados",
 | 
			
		||||
  "disable_guests_description": "Desactiva agregar invitados adicionales al hacer la reserva.",
 | 
			
		||||
  "invitees_can_schedule": "Los invitados pueden programar",
 | 
			
		||||
  "date_range": "Rango de Fechas",
 | 
			
		||||
  "calendar_days": "Días del Calendário",
 | 
			
		||||
  "business_days": "Días Laborales",
 | 
			
		||||
  "payment": "Pago",
 | 
			
		||||
  "set_address_place": "Establecer una dirección o un lugar",
 | 
			
		||||
  "cal_invitee_phone_number_scheduling": "Cal le pedirá a su invitado que introduzca un número de teléfono antes de programar.",
 | 
			
		||||
  "cal_provide_google_meet_location": "Cal proporcionará una URL de reunión de Google Meet.",
 | 
			
		||||
  "cal_provide_zoom_meeting_url": "Cal proporcionará una URL de reunión de Zoom.",
 | 
			
		||||
  "cal_provide_video_meeting_url": "Cal proporcionará una URL de reunión de Daily Video.",
 | 
			
		||||
  "require_payment": "Requiere Pago",
 | 
			
		||||
  "commission_per_transaction": "Comisión por Transacción",
 | 
			
		||||
  "event_type_updated_successfully": "Tipo de Evento Actualizado con Éxito",
 | 
			
		||||
  "event_type_updated_successfully_description": "Tu Evento fue Actualizado con Éxito",
 | 
			
		||||
  "hide_event_type": "Ocultar Tipo de Evento",
 | 
			
		||||
  "edit_location": "Editar Localización",
 | 
			
		||||
  "into_the_future": "En el Futuro",
 | 
			
		||||
  "within_date_range": "Dentro de un Rango de Fechas",
 | 
			
		||||
  "indefinitely_into_future": "Indefinidamente en el futuro",
 | 
			
		||||
  "this_input_will_shown_booking_this_event": "Esta entrada se mostrará al reservar este evento.",
 | 
			
		||||
  "add_new_custom_input_field": "Agregar nuevo campo de entrada personalizado",
 | 
			
		||||
  "quick_chat": "Chat Rápido",
 | 
			
		||||
  "add_new_event_type": "Crear Nuevo Tipo de Evento",
 | 
			
		||||
  "add_new_team_event_type": "Crear Nuevo Tipo de Evento para Equipo",
 | 
			
		||||
  "new_event_type_to_book_description": "Crea un nuevo tipo de evento para que las personas reserven horarios.",
 | 
			
		||||
  "length": "Tamaño",
 | 
			
		||||
  "minimum_booking_notice": "Aviso de Reserva",
 | 
			
		||||
  "delete_event_type_description": "¿Está seguro de que desea eliminar este tipo de evento? Cualquiera con quien hayas compartido este enlace ya no podrá reservar con él.",
 | 
			
		||||
  "delete_event_type": "Eliminar Tipo de Evento",
 | 
			
		||||
  "confirm_delete_event_type": "Sí, Eliminar Tipo de Evento"
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue