From 6c046f6507e63375492467cbfebf0ec02e680428 Mon Sep 17 00:00:00 2001 From: Peer Richelsen Date: Wed, 28 Sep 2022 18:46:14 +0100 Subject: [PATCH 01/22] fixed back button, fixed app store detail on mobile (#4737) --- apps/web/components/v2/apps/App.tsx | 2 +- packages/ui/v2/core/Shell.tsx | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/apps/web/components/v2/apps/App.tsx b/apps/web/components/v2/apps/App.tsx index 9d1f894c93..d86a47d05b 100644 --- a/apps/web/components/v2/apps/App.tsx +++ b/apps/web/components/v2/apps/App.tsx @@ -66,7 +66,7 @@ const Component = ({ return (
{hasImages && ( -
+
{images ? ( images.map((img) => (
{!!props.backPath && ( - router.push(props.backPath as string)} + StartIcon={Icon.FiArrowLeft} + aria-label="Go Back" + className="ltr:mr-2 rtl:ml-2" /> )} {props.heading && ( From d4dd451c26457fdbcce1ed4af3311b71bce85a0b Mon Sep 17 00:00:00 2001 From: Peer Richelsen Date: Wed, 28 Sep 2022 18:49:23 +0100 Subject: [PATCH 02/22] Update packages/ui/v2/core/Shell.tsx --- packages/ui/v2/core/Shell.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/ui/v2/core/Shell.tsx b/packages/ui/v2/core/Shell.tsx index ede20fe787..1dbc38bda2 100644 --- a/packages/ui/v2/core/Shell.tsx +++ b/packages/ui/v2/core/Shell.tsx @@ -4,7 +4,6 @@ import { signOut, useSession } from "next-auth/react"; import Link from "next/link"; import { NextRouter, useRouter } from "next/router"; import React, { Dispatch, Fragment, ReactNode, SetStateAction, useEffect, useState } from "react"; -import { Trash2 } from "react-feather"; import { Toaster } from "react-hot-toast"; import dayjs from "@calcom/dayjs"; From 19b3157c947c2a00339534bcc120269f3be0c4e1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 28 Sep 2022 18:51:19 +0100 Subject: [PATCH 03/22] New Crowdin translations by Github Action (#4729) Co-authored-by: Crowdin Bot Co-authored-by: Peer Richelsen --- apps/web/public/static/locales/es/common.json | 50 ++++++++++++++ apps/web/public/static/locales/fr/common.json | 69 +++++++++++++++++++ apps/web/public/static/locales/tr/common.json | 26 +++---- apps/web/public/static/locales/uk/common.json | 13 ++++ 4 files changed, 145 insertions(+), 13 deletions(-) diff --git a/apps/web/public/static/locales/es/common.json b/apps/web/public/static/locales/es/common.json index 7c969c2d27..45017053fd 100644 --- a/apps/web/public/static/locales/es/common.json +++ b/apps/web/public/static/locales/es/common.json @@ -1184,8 +1184,58 @@ "organizer_name_info": "Tu Nombre", "additional_notes_info": "Las notas adicionales de la reserva", "attendee_name_info": "El nombre de la persona que reserva", + "to": "Para", + "attendee_required_enter_number": "Será necesario que el asistente introduzca un número de teléfono al reservar", + "workflow_turned_on_successfully": "El flujo de trabajo {{workflowName}} se ajustó como {{offOn}} correctamente", + "download_responses": "Descargar respuestas", + "create_your_first_form": "Cree su primer formulario", + "create_your_first_form_description": "Con los formularios de orientación puede hacer preguntas de cualificación y llegar a la persona o tipo de evento correctos.", + "create_your_first_webhook": "Cree su primer Webhook", + "create_your_first_webhook_description": "Con Webhooks puede recibir datos de reuniones en tiempo real cuando suceda algo en Cal.com.", + "for_a_maximum_of": "Para un máximo de", + "event_one": "evento", + "event_other": "eventos", + "profile_team_description": "Administre ajustes para el perfil de su equipo", + "members_team_description": "Usuarios que están en el grupo", + "team_url": "URL del equipo", + "delete_team": "Eliminar equipo", + "team_members": "Miembros del equipo", + "more": "Más", + "more_page_footer": "Vemos la aplicación móvil como una extensión de la aplicación web. Si está realizando acciones complicadas, consulte la aplicación web.", + "workflow_example_1": "Enviar recordatorio por SMS al asistente 24 horas antes de que el evento comience", + "workflow_example_2": "Enviar SMS personalizado al asistente cuando se cambie la planificación del evento", + "workflow_example_3": "Enviar correo electrónico personalizado al anfitrión cuando se reserve un evento nuevo", + "workflow_example_4": "Enviar recordatorio por correo electrónico al asistente 1 hora antes de que el evento comience", + "workflow_example_5": "Enviar correo electrónico personalizado al anfitrión cuando se cambie la planificación del evento", + "workflow_example_6": "Enviar SMS personalizado al anfitrión cuando se reserve un evento nuevo", + "welcome_to_cal_header": "¡Bienvenido a Cal.com!", + "edit_form_later_subtitle": "Podrá editarlo más tarde.", + "connect_calendar_later": "Conectaré mi calendario más tarde", + "set_my_availability_later": "Indicaré mi disponibilidad más tarde", + "problem_saving_user_profile": "Se produjo un problema al guardar sus datos. Inténtelo de nuevo o póngase en contacto con el servicio de atención al cliente.", + "purchase_missing_seats": "Comprar licencias que faltan", + "slot_length": "Duración de franja", + "booking_appearance": "Aspecto de la reserva", + "appearance_team_description": "Administre los ajustes para el aspecto de la reserva de su equipo", + "only_owner_change": "Solo el propietario de este equipo puede hacer cambios en la reserva del equipo ", + "team_disable_cal_branding_description": "Elimina cualquier marca relacionada con Cal, p. ej., \"Powered by Cal\"", + "invited_by_team": "{{teamName}} le invitó a unirse a su equipo como {{role}}", + "token_invalid_expired": "El token no es válido o ha caducado.", + "exchange_add": "Conectar a Microsoft Exchange", + "exchange_authentication": "Método de autenticación", + "exchange_authentication_standard": "Autenticación básica", + "exchange_authentication_ntlm": "Autenticación NTLM", + "exchange_compression": "Compresión GZip", + "routing_forms_description": "Puede ver todos los formularios y rutas que ha creado aquí.", + "add_new_form": "Añadir formulario nuevo", + "form_description": "Cree su formulario para dirigirlo a un agente de reservas", + "copy_link_to_form": "Copiar enlace al formulario", + "theme": "Tema", + "theme_applies_note": "Solo se aplica a sus páginas de reservas públicas", "theme_light": "Claro", "theme_dark": "Oscuro", + "theme_system": "Predeterminado del sistema", + "add_a_team": "Añadir un equipo", "saml_config": "Configuración de SAML", "add_webhook_description": "Reciba datos de reuniones en tiempo real cuando suceda algo en Cal.com", "triggers_when": "Se activa cuando", diff --git a/apps/web/public/static/locales/fr/common.json b/apps/web/public/static/locales/fr/common.json index df6f54fee2..5ffb18f8ce 100644 --- a/apps/web/public/static/locales/fr/common.json +++ b/apps/web/public/static/locales/fr/common.json @@ -633,7 +633,10 @@ "billing": "Facturation", "manage_your_billing_info": "Gérez vos informations de facturation et annulez votre abonnement.", "availability": "Disponibilité", + "availability_title": "{{availabilityTitle}} | Disponibilité", + "edit_availability": "Modifier la disponibilité", "configure_availability": "Déclarez les moments où vous êtes disponible pour un rendez-vous.", + "copy_times_to": "Copier les heures vers", "change_weekly_schedule": "Modifier votre planning hebdomadaire", "logo": "Logo", "error": "Erreur", @@ -648,6 +651,7 @@ "event_name_tooltip": "Le nom qui apparaîtra dans les calendriers", "meeting_with_user": "Rendez-vous avec {ATTENDEE}", "additional_inputs": "Entrées additionnelles", + "additional_input_description": "Exiger que le planificateur saisisse des entrées supplémentaires avant que la réservation soit confirmée", "label": "Libellé", "placeholder": "Placeholder", "type": "Type", @@ -662,6 +666,8 @@ "disable_guests": "Désactiver les invité. es", "disable_guests_description": "Désactiver l'ajout d'invité·es supplémentaires lors de la réservation.", "private_link": "Générer une URL privée", + "private_link_label": "Lien privé", + "private_link_hint": "Votre lien privé sera régénéré après chaque utilisation", "copy_private_link": "Copier le lien privé", "private_link_description": "Générer une URL privée à partager sans exposer votre nom d'utilisateur Cal", "invitees_can_schedule": "Les invité·es peuvent réserver", @@ -703,16 +709,21 @@ "delete_account_confirmation_message": "Êtes-vous sûr de vouloir supprimer votre compte Cal.com ? Toute personne avec qui vous avez partagé le lien de votre compte ne pourra plus réserver en utilisant ce lien et toutes les préférences que vous avez enregistrées seront perdues.", "integrations": "Intégrations", "apps": "Applications", + "category_apps": "{{category}} applications", "app_store": "App Store", "app_store_description": "Connecter les personnes, la technologie et l'espace de travail.", "settings": "Paramètres", "event_type_moved_successfully": "Le type d'évènement a bien été déplacé", + "next_step_text": "Prochaine étape", "next_step": "Passer l'étape", "prev_step": "Étape précédente", + "install": "Installer", "installed": "Installé", "active_install_one": "{{count}} installation active", "active_install_other": "{{count}} installations actives", "globally_install": "Installation globale", + "app_successfully_installed": "Application installée avec succès", + "app_could_not_be_installed": "Impossible d'installer l'application", "disconnect": "Déconnecter", "embed_your_calendar": "Intégrez votre calendrier dans votre page web", "connect_your_favourite_apps": "Connectez vos applications favorites.", @@ -723,6 +734,7 @@ "connect_additional_calendar": "Connecter un calendrier supplémentaire", "conferencing": "Conférence", "calendar": "Calendrier", + "payments": "Paiements", "not_installed": "Non installé", "error_password_mismatch": "Les mots de passe ne correspondent pas.", "error_required_field": "Ce champ est requis.", @@ -756,9 +768,22 @@ "import_from": "Importer depuis", "access_token": "Jeton d'accès", "visit_roadmap": "Feuille de route", + "featured_categories": "Catégories en vedette", "popular_categories": "Catégories populaires", + "number_apps_one": "{{count}} Application", + "number_apps_other": "{{count}} Applications", "trending_apps": "Applications populaires", + "explore_apps": "{{category}} applications", "installed_apps": "Applications installées", + "no_category_apps": "Aucune application {{category}}", + "no_category_apps_description_calendar": "Ajouter une application de calendrier pour vérifier les conflits et éviter les doubles réservations", + "no_category_apps_description_conferencing": "Essayez d'ajouter une application de conférence pour interconnecter les appels vidéo avec vos clients", + "no_category_apps_description_payment": "Ajouter une application de paiement pour faciliter les transactions entre vous et vos clients", + "no_category_apps_description_other": "Ajouter n'importe quel autre type d'application pour faire toutes sortes de choses", + "installed_app_calendar_description": "Définir le(s) calendrier(s) pour vérifier les conflits pour éviter les doubles réservations.", + "installed_app_conferencing_description": "Ajoutez vos applications de vidéoconférence préférées pour vos réunions", + "installed_app_payment_description": "Configurez les services de traitement de paiement à utiliser lors de la facturation de vos clients.", + "installed_app_other_description": "Toutes vos applications installées à partir d'autres catégories.", "empty_installed_apps_headline": "Aucune application installée", "empty_installed_apps_description": "Les applications vous permettent d'améliorer votre flux de travail et votre processus de planification de façon significative.", "empty_installed_apps_button": "Explorer l'App Store", @@ -779,6 +804,7 @@ "remove": "Supprimer", "add": "Ajouter", "installed_one": "Installé", + "installed_other": "{{count}} installé(e)(s)", "verify_wallet": "Vérifier le portefeuille", "connect_metamask": "Connecter Metamask", "create_events_on": "Créer des événements le :", @@ -796,6 +822,8 @@ "set_to_default": "Définir par défaut", "new_schedule_btn": "Nouveau programme", "add_new_schedule": "Ajouter un nouveau programme", + "add_new_calendar": "Ajouter un nouveau calendrier", + "set_calendar": "Définir où ajouter de nouveaux événements lors de la réservation.", "delete_schedule": "Supprimer le programme", "schedule_created_successfully": "{{scheduleName}} programme créé", "availability_updated_successfully": "{{scheduleName}} programme mis à jour", @@ -949,6 +977,7 @@ "workflows": "Workflows", "new_workflow_btn": "Nouveau workflow", "add_new_workflow": "Ajouter un nouveau workflow", + "reschedule_event_trigger": "lorsque l'événement est reprogrammé", "trigger": "Déclencheur", "triggers": "Déclencheurs", "action": "Action", @@ -976,10 +1005,13 @@ "change_username_standard_to_premium": "Puisque vous passez d'un nom d'utilisateur standard à un premium, vous allez être envoyé au paiement pour valider le changement.", "change_username_premium_to_standard": "Puisque vous passez d'un nom d'utilisateur premium à un standard, vous allez être envoyé au paiement pour valider la rétrogradation.", "go_to_stripe_billing": "Accéder à la facturation", + "stripe_description": "Nécessite un paiement pour les réservations (0,5% + 0,10 € de commission par transaction)", "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": "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": "Conférence en ligne", "number_for_sms_reminders": "Numéro de téléphone (pour les rappels par SMS)", "requires_confirmation": "Nécessite une confirmation", @@ -1035,17 +1067,54 @@ "navigate": "Naviguer", "open": "Ouvrir", "close": "Fermer", + "team_feature_teams": "Ceci est une fonctionnalité d'équipe. Mettez à niveau vers l'équipe pour voir la disponibilité de votre équipe.", + "team_feature_workflows": "Ceci est une fonctionnalité d'équipe. Mettez à niveau vers l'équipe pour automatiser vos notifications et rappels d'événements avec les flux de travail.", + "show_eventtype_on_profile": "Afficher sur le profil", "embed": "Intégré", "new_username": "Nouveau nom d'utilisateur", "current_username": "Nom d'utilisateur actuel", "example_1": "Exemple 1", "example_2": "Exemple 2", + "additional_input_label": "Libellé de saisie supplémentaire", "company_size": "Taille de l'entreprise", "what_help_needed": "Pour quoi avez-vous besoin d'aide ?", "variable_format": "Format des variables", + "webhook_subscriber_url_reserved": "L'url d'abonné au Webhook est déjà définie", + "custom_input_as_variable_info": "Ignorer tous les caractères spéciaux du libellé de saisie supplémentaire (utiliser uniquement des lettres et des chiffres), utiliser des majuscules pour toutes les lettres et remplacer les espaces par des tirets bas.", "using_additional_inputs_as_variables": "Comment utiliser des entrées supplémentaires en tant que variables ?", "download_desktop_app": "Télécharger l'application de bureau", "set_ping_link": "Définir le lien Ping", + "rate_limit_exceeded": "Limite dépassée", + "when_something_happens": "Quand quelque chose se passe", + "action_is_performed": "Une action est effectuée", + "test_action": "Tester l'action", + "notification_sent": "Notification envoyée", + "no_input": "Aucune entrée", + "test_workflow_action": "Tester l'effet du workflow", + "send_sms": "Envoyer un SMS", + "send_sms_to_number": "Êtes-vous sûr de vouloir 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.", + "default_calendar_selected": "Calendrier par défaut", + "hide_from_profile": "Masquer du profil", + "event_setup_tab_title": "Configuration de l'événement", + "event_limit_tab_title": "Limites", + "event_limit_tab_description": "Fréquence de réservation", + "event_advanced_tab_description": "Paramètres du calendrier & plus...", + "event_advanced_tab_title": "Avancé", + "select_which_cal": "Sélectionnez le calendrier auquel ajouter des réservations", + "custom_event_name": "Nom de l'événement personnalisé", + "custom_event_name_description": "Créer des noms d'événements personnalisés à afficher sur l'événement du calendrier", + "2fa_required": "Authentification en deux étapes requise", + "incorrect_2fa": "Code d'authentification à deux facteurs incorrect", + "which_event_type_apply": "À quel type d'événement s'appliquera-t-il ?", + "no_workflows_description": "Les workflows permettent une automatisation simple pour envoyer des notifications et des rappels vous permettant de construire des processus autour de vos événements.", + "create_workflow": "Créer un workflow", + "do_this": "Effectuer ceci", + "turn_off": "Désactiver", + "settings_updated_successfully": "Paramètres mis à jour avec succès", + "error_updating_settings": "Erreur lors de la mise à jour des paramètres", + "personal_cal_url": "Mon URL Cal personnelle", "organizer_name_info": "Votre nom", "theme_light": "Clair", "theme_dark": "Sombre" diff --git a/apps/web/public/static/locales/tr/common.json b/apps/web/public/static/locales/tr/common.json index c7727e45c6..089aafb9b5 100644 --- a/apps/web/public/static/locales/tr/common.json +++ b/apps/web/public/static/locales/tr/common.json @@ -1185,13 +1185,13 @@ "additional_notes_info": "Ek rezervasyon notları", "attendee_name_info": "Rezervasyon yaptıran kişinin adı", "to": "Kime", - "attendee_required_enter_number": "Bu, katılımcının rezervasyon yapmak için bir telefon numarası girmesini gerektirecektir", + "attendee_required_enter_number": "Bu, katılımcının rezervasyon yapmak için bir telefon numarası girmesini gerektirir", "workflow_turned_on_successfully": "{{workflowName}} iş akışı başarıyla {{offOn}}", "download_responses": "Yanıtları İndir", "create_your_first_form": "İlk formunuzu oluşturun", "create_your_first_form_description": "Yönlendirme Formları ile niteliksel sorular sorabilir ve bunları doğru kişiye veya etkinlik türüne yönlendirebilirsiniz.", - "create_your_first_webhook": "İlk Web kancanızı oluşturun", - "create_your_first_webhook_description": "Web kancaları ile Cal.com'da bir etkinlik gerçekleştiğinde toplantı verilerini gerçek zamanlı olarak alabilirsiniz.", + "create_your_first_webhook": "İlk Web Kancanızı oluşturun", + "create_your_first_webhook_description": "Web Kancaları ile Cal.com'da bir etkinlik gerçekleştiğinde toplantı verilerini gerçek zamanlı olarak alabilirsiniz.", "for_a_maximum_of": "Maksimum", "event_one": "etkinlik", "event_other": "etkinlik", @@ -1201,12 +1201,12 @@ "delete_team": "Ekibi Sil", "team_members": "Ekip üyeleri", "more": "Daha fazla", - "more_page_footer": "Mobil uygulamayı web uygulamasının bir uzantısı olarak görüyoruz. Karmaşık bir işlem yapıyorsanız, lütfen web uygulamasına geri dönün.", + "more_page_footer": "Mobil uygulamayı web uygulamasının bir uzantısı olarak görüyoruz. Karmaşık bir işlem yapıyorsanız lütfen web uygulamasına geri dönün.", "workflow_example_1": "Etkinlik başlamadan 24 saat önce katılımcıya SMS hatırlatıcısı gönder", "workflow_example_2": "Etkinlik yeniden planlandığında katılımcıya özel SMS gönder", "workflow_example_3": "Yeni bir etkinlik rezervasyonu yapıldığında organizatöre özel bir e-posta gönderin", "workflow_example_4": "Etkinlikler başlamadan 1 saat önce katılımcıya e-posta hatırlatıcısı gönderin", - "workflow_example_5": "Etkinlik yeniden planlandığında ana bilgisayara özel e-posta gönder", + "workflow_example_5": "Etkinlik yeniden planlandığında organizatöre özel e-posta gönderin", "workflow_example_6": "Yeni bir etkinlik rezervasyonu yapıldığında organizatöre özel SMS gönderin", "welcome_to_cal_header": "Cal.com'a hoş geldiniz!", "edit_form_later_subtitle": "Bunu daha sonra düzenleyebilirsiniz.", @@ -1226,24 +1226,24 @@ "exchange_authentication_standard": "Temel kimlik doğrulaması", "exchange_authentication_ntlm": "NTLM kimlik doğrulaması", "exchange_compression": "GZip sıkıştırma", - "routing_forms_description": "Oluşturduğunuz tüm formları ve rotaları burada görebilirsiniz.", + "routing_forms_description": "Oluşturduğunuz tüm formları ve yönlendirmeleri burada görebilirsiniz.", "add_new_form": "Yeni form ekle", "form_description": "Rezervasyon yapan kişiyi yönlendirmek için formunuzu oluşturun", "copy_link_to_form": "Bağlantıyı forma kopyala", "theme": "Tema", - "theme_applies_note": "Bu, sadecev genel rezervasyon sayfalarınız için geçerlidir", + "theme_applies_note": "Bu, sadece genel rezervasyon sayfalarınız için geçerlidir", "theme_light": "Açık", "theme_dark": "Koyu", "theme_system": "Sistem varsayılanı", "add_a_team": "Ekip ekle", "saml_config": "SAML Yapılandırması", - "add_webhook_description": "Cal.com'da bir etkinlik gerçekleştiğinde gerçek zamanlı olarak toplantı bilgilerini alın", + "add_webhook_description": "Cal.com'da bir etkinlik gerçekleştiğinde toplantı bilgilerini gerçek zamanlı olarak alın", "triggers_when": "Tetiklenme zamanı", "test_webhook": "Lütfen oluşturmadan önce ping testi yapın.", "enable_webhook": "Web kancasını etkinleştir", - "add_webhook": "Web kancası ekle", + "add_webhook": "Web Kancası ekle", "webhook_edited_successfully": "Web Kancası kaydedildi", - "webhooks_description": "Cal.com'da bir etkinlik gerçekleştiğinde gerçek zamanlı olarak toplantı bilgilerini alın", + "webhooks_description": "Cal.com'da bir etkinlik gerçekleştiğinde toplantı bilgilerini gerçek zamanlı olarak alın", "api_keys_description": "Kendi hesabınıza erişmek için API anahtarları oluşturun", "new_api_key": "Yeni API anahtarı", "active": "Etkin", @@ -1258,14 +1258,14 @@ "password_reset_email": "{{email}} adresine şifrenizi sıfırlama talimatlarını içeren bir e-posta gönderildi.", "password_updated": "Şifre güncellendi!", "pending_payment": "Bekleyen ödeme", - "confirmation_page_rainbow": "Ethereum, Polygon ve diğer token'lar veya NFT ile etkinliğinizi kontrol edin.", - "not_on_cal": "Cal.com'da değil", + "confirmation_page_rainbow": "Ethereum, Polygon ve diğer token'lar veya NFT ile etkinliğinizi kontrol altında tutun.", + "not_on_cal": "Cal.com'da yok", "no_calendar_installed": "Yüklü takvim yok", "no_calendar_installed_description": "Henüz hiçbir takviminizi bağlamadınız", "add_a_calendar": "Takvim ekle", "change_email_hint": "Değişikliklerin geçerli olduğunu görmek için oturumu kapatıp tekrar açmanız gerekebilir", "confirm_password_change_email": "Lütfen e-posta adresinizi değiştirmeden önce şifrenizi onaylayın", "seats": "yer", - "every_app_published": "Cal.com Uygulama Mağazası'nda yayınlanan her uygulama açık kaynak kodludur ve uzman incelemeleriyle kapsamlı bir şekilde test edilmiştir. Cal.com, Cal.com tarafından yayınlanmadıkça bu uygulamaları desteklemez veya onaylamaz. Uygunsuz içerik veya davranışla karşılaşırsanız lütfen bize bildirin.", + "every_app_published": "Cal.com Uygulama Mağazası'nda yayınlanan her uygulama açık kaynak kodludur ve uzman incelemeleriyle kapsamlı bir şekilde test edilmiştir. Cal.com, Cal.com tarafından yayınlanmadıkça bu uygulamaları desteklemez veya onaylamaz. Herhangi bir uygunsuz içerik veya davranışla karşılaşırsanız lütfen bize bildirin.", "report_app": "Uygulamayı bildir" } diff --git a/apps/web/public/static/locales/uk/common.json b/apps/web/public/static/locales/uk/common.json index a4a73c5d41..87ee175415 100644 --- a/apps/web/public/static/locales/uk/common.json +++ b/apps/web/public/static/locales/uk/common.json @@ -498,6 +498,8 @@ "new_member": "Новий учасник", "invite": "Запросити", "add_team_members": "Додати учасників команди", + "add_team_members_description": "Запросіть інших у свою команду", + "add_team_member": "Додати учасника команди", "invite_new_member": "Запросіть нового учасника", "invite_new_team_member": "Запросіть когось у свою команду.", "change_member_role": "Змініть роль учасника команди", @@ -610,6 +612,7 @@ "create_first_team_and_invite_others": "Створіть свою першу команду та запросіть інших, щоб працювати разом.", "create_team_to_get_started": "Створіть команду, щоб почати", "teams": "Команди", + "team": "Команда", "team_billing": "Виставлення рахунків для команд", "upgrade_to_flexible_pro_title": "Ми змінили умови оплати для команд", "upgrade_to_flexible_pro_message": "У вашій команді є учасники без придбаних місць. Перейдіть на план Pro, щоб отримати всі потрібні місця.", @@ -630,7 +633,10 @@ "billing": "Виставлення рахунків", "manage_your_billing_info": "Керуйте своїми даними для виставлення рахунків і підписками.", "availability": "Доступність", + "availability_title": "{{availabilityTitle}} | Доступність", + "edit_availability": "Редагувати відомості про доступність", "configure_availability": "Налаштовуйте свої часові вікна, доступні для бронювання.", + "copy_times_to": "Копіювати час до", "change_weekly_schedule": "Змініть свій розклад на тиждень", "logo": "Логотип", "error": "Помилка", @@ -659,6 +665,8 @@ "disable_guests": "Вимкнути гостей", "disable_guests_description": "Забороніть додати гостей під час бронювання.", "private_link": "Створити приватне посилання", + "private_link_label": "Приватне посилання", + "private_link_hint": "Після кожного використання ваше приватне посилання створюватиметься повторно", "copy_private_link": "Копіювати приватне посилання", "private_link_description": "Створіть приватну URL-адресу, щоб поширювати її, не виказуючи свого імені користувача в Cal", "invitees_can_schedule": "Запрошені можуть планувати", @@ -700,16 +708,21 @@ "delete_account_confirmation_message": "Справді видалити обліковий запис Cal.com? Усі, кому ви надавали посилання на свій обліковий запис, більше не зможуть бронювати ваш час за його допомогою. Усі збережені налаштування буде втрачено.", "integrations": "Інтеграції", "apps": "Додатки", + "category_apps": "Додатки з категорії «{{category}}»", "app_store": "App Store", "app_store_description": "Спілкування та технології на робочому місці.", "settings": "Параметри", "event_type_moved_successfully": "Тип події переміщено", + "next_step_text": "Наступний крок", "next_step": "Пропустити крок", "prev_step": "Попередній крок", + "install": "Установити", "installed": "Установлено", "active_install_one": "{{count}} активна інсталяція", "active_install_other": "Активних інсталяцій: {{count}}", "globally_install": "Установлено глобально", + "app_successfully_installed": "Додаток установлено", + "app_could_not_be_installed": "Не вдалося встановити додаток", "disconnect": "Від’єднати", "embed_your_calendar": "Вбудуйте календар у свою вебсторінку", "connect_your_favourite_apps": "Підключіть улюблені застосунки.", From 8478363a23531dbf98936532f6a31db94a912c90 Mon Sep 17 00:00:00 2001 From: Peer Richelsen Date: Wed, 28 Sep 2022 18:56:59 +0100 Subject: [PATCH 04/22] minor layout fixes (#4741) * fixed back button, fixed app store detail on mobile * fixed settings padding and go back button * Update packages/ui/v2/core/Shell.tsx * Update packages/ui/v2/core/navigation/tabs/VerticalTabItem.tsx --- packages/ui/v2/core/Shell.tsx | 8 ++++++-- packages/ui/v2/core/layouts/SettingsLayout.tsx | 9 ++++----- packages/ui/v2/core/navigation/tabs/VerticalTabItem.tsx | 2 +- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/packages/ui/v2/core/Shell.tsx b/packages/ui/v2/core/Shell.tsx index 1dbc38bda2..6e1682c0dc 100644 --- a/packages/ui/v2/core/Shell.tsx +++ b/packages/ui/v2/core/Shell.tsx @@ -766,7 +766,7 @@ export function ShellMain(props: LayoutProps) { {props.HeadingLeftIcon &&
{props.HeadingLeftIcon}
}
{props.heading && ( -

+

{!isLocaleReady ? : props.heading}

)} @@ -777,7 +777,11 @@ export function ShellMain(props: LayoutProps) { )}
{props.CTA && ( -
+
{props.CTA}
)} diff --git a/packages/ui/v2/core/layouts/SettingsLayout.tsx b/packages/ui/v2/core/layouts/SettingsLayout.tsx index 1f2f2d36c0..8a9eb258ca 100644 --- a/packages/ui/v2/core/layouts/SettingsLayout.tsx +++ b/packages/ui/v2/core/layouts/SettingsLayout.tsx @@ -118,13 +118,12 @@ const SettingsSidebarContainer = ({ className = "" }) => { aria-label="Tabs"> <>
-
+
history.back()}>
{tabsWithPermissions.map((tab) => { @@ -332,7 +331,7 @@ export default function SettingsLayout({ setSideContainerOpen(!sideContainerOpen)} /> }>
-
+
{children}
@@ -347,7 +346,7 @@ function ShellHeader() { const { meta } = useMeta(); const { t, isLocaleReady } = useLocale(); return ( -
+
{meta.backButton && ( diff --git a/packages/ui/v2/core/navigation/tabs/VerticalTabItem.tsx b/packages/ui/v2/core/navigation/tabs/VerticalTabItem.tsx index 7c5e0b9466..a7253da4ce 100644 --- a/packages/ui/v2/core/navigation/tabs/VerticalTabItem.tsx +++ b/packages/ui/v2/core/navigation/tabs/VerticalTabItem.tsx @@ -47,7 +47,7 @@ const VerticalTabItem = function ({ target={props.isExternalLink ? "_blank" : "_self"} className={classNames( props.textClassNames || "text-sm font-medium leading-none text-gray-600", - "group flex w-64 flex-row items-center rounded-md px-3 py-[10px] hover:bg-gray-100 group-hover:text-gray-700 [&[aria-current='page']]:bg-gray-200 [&[aria-current='page']]:text-gray-900", + "min-h-9 group flex w-64 flex-row items-center rounded-md px-3 py-[10px] hover:bg-gray-100 group-hover:text-gray-700 [&[aria-current='page']]:bg-gray-200 [&[aria-current='page']]:text-gray-900", props.disabled && "pointer-events-none !opacity-30", (isChild || !props.icon) && "ml-7 mr-5 w-auto", !info ? "h-6" : "h-14", From 5af20f5a7b570ac10b14c4a19908395689e87067 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 28 Sep 2022 18:57:58 +0100 Subject: [PATCH 05/22] New Crowdin translations by Github Action (#4742) Co-authored-by: Crowdin Bot Co-authored-by: Peer Richelsen --- apps/web/public/static/locales/de/common.json | 2 +- apps/web/public/static/locales/fr/common.json | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/apps/web/public/static/locales/de/common.json b/apps/web/public/static/locales/de/common.json index eb3ebd4490..255fce34ac 100644 --- a/apps/web/public/static/locales/de/common.json +++ b/apps/web/public/static/locales/de/common.json @@ -255,7 +255,7 @@ "user_needs_to_confirm_or_reject_booking_recurring": "{{user}} muss noch die Terminreihe des wiederkehrenden Termins bestätigen oder ablehnen.", "meeting_is_scheduled": "Dieser Termin ist geplant", "meeting_is_scheduled_recurring": "Ihr wiederkehrender Termin wurde geplant", - "submitted": "Ihr Termin wurde gebuhct", + "submitted": "Ihr Termin wurde gebucht", "submitted_recurring": "Ihr wiederkehrender Termin wurde gebucht", "booking_submitted": "Ihre Buchung wurde versandt", "booking_submitted_recurring": "Ihre wiederkehrende Buchung wurde versandt", diff --git a/apps/web/public/static/locales/fr/common.json b/apps/web/public/static/locales/fr/common.json index 5ffb18f8ce..5c9047270e 100644 --- a/apps/web/public/static/locales/fr/common.json +++ b/apps/web/public/static/locales/fr/common.json @@ -1115,6 +1115,18 @@ "settings_updated_successfully": "Paramètres mis à jour avec succès", "error_updating_settings": "Erreur lors de la mise à jour des paramètres", "personal_cal_url": "Mon URL Cal personnelle", + "bio_hint": "Quelques phrases à propos de vous. Ces informations apparaîtront sur votre page d'url personnelle.", + "delete_account_modal_title": "Supprimer le compte", + "confirm_delete_account_modal": "Êtes-vous sûr de vouloir supprimer votre compte Cal.com ?", + "delete_my_account": "Supprimer mon compte", + "start_of_week": "Début de la semaine", + "select_calendars": "Sélectionnez quels calendriers vous voulez vérifier les conflits pour éviter les doubles réservations.", + "check_for_conflicts": "Vérifier les conflits", + "adding_events_to": "Ajout d'événements à", + "follow_system_preferences": "Suivre les préférences système", + "custom_brand_colors": "Couleurs de marque personnalisées", + "customize_your_brand_colors": "Personnalisez votre propre couleur de marque dans votre page de réservation.", + "pro": "Pro", "organizer_name_info": "Votre nom", "theme_light": "Clair", "theme_dark": "Sombre" From 14a6c5a03f1646baca8a951faa7183aa2e6f0816 Mon Sep 17 00:00:00 2001 From: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com> Date: Wed, 28 Sep 2022 23:31:19 +0530 Subject: [PATCH 06/22] feat: add transition in toasts (#4658) * feat: add transition in toasts * feat: toast animation improved * fix: type check in toast Co-authored-by: Alex van Andel Co-authored-by: Peer Richelsen --- packages/config/tailwind-preset.js | 15 ++++++++++++ packages/ui/v2/core/notifications.tsx | 33 ++++++++++++++++++++------- 2 files changed, 40 insertions(+), 8 deletions(-) diff --git a/packages/config/tailwind-preset.js b/packages/config/tailwind-preset.js index 8e62c7a63b..2f514c4b68 100644 --- a/packages/config/tailwind-preset.js +++ b/packages/config/tailwind-preset.js @@ -154,6 +154,21 @@ module.exports = { 900: "#f3f4f6", }, }, + keyframes: { + "fade-in-up": { + "0%": { + opacity: 0.75, + transform: "translateY(20px)", + }, + "100%": { + opacity: 1, + transform: "translateY(0)", + }, + }, + }, + animation: { + "fade-in-up": "fade-in-up 0.35s cubic-bezier(.21,1.02,.73,1)", + }, boxShadow: { dropdown: "0px 2px 6px -1px rgba(0, 0, 0, 0.08)", }, diff --git a/packages/ui/v2/core/notifications.tsx b/packages/ui/v2/core/notifications.tsx index 428b316d62..6b78b63586 100644 --- a/packages/ui/v2/core/notifications.tsx +++ b/packages/ui/v2/core/notifications.tsx @@ -1,3 +1,4 @@ +import classNames from "classnames"; import { Check, Info } from "react-feather"; import toast from "react-hot-toast"; @@ -5,8 +6,12 @@ export default function showToast(message: string, variant: "success" | "warning switch (variant) { case "success": toast.custom( - () => ( -
+ (t) => ( +

{message}

@@ -16,8 +21,12 @@ export default function showToast(message: string, variant: "success" | "warning break; case "error": toast.custom( - () => ( -
+ (t) => ( +

{message}

@@ -27,8 +36,12 @@ export default function showToast(message: string, variant: "success" | "warning break; case "warning": toast.custom( - () => ( -
+ (t) => ( +

{message}

@@ -38,8 +51,12 @@ export default function showToast(message: string, variant: "success" | "warning break; default: toast.custom( - () => ( -
+ (t) => ( +

{message}

From 58dd5308ac2fe778547fdc67b4423f653f23e5d2 Mon Sep 17 00:00:00 2001 From: Alex van Andel Date: Wed, 28 Sep 2022 19:05:28 +0100 Subject: [PATCH 07/22] Improved load state (#4696) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Improved load state * Don't use editable heading if it is readonly * Fix ts errors Co-authored-by: Peer Richelsen Co-authored-by: Omar López Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- apps/web/components/ui/EditableHeading.tsx | 62 +++++++++---------- .../v2/availability/SkeletonLoader.tsx | 9 ++- .../v2/eventtype/AvailabilityTab.tsx | 4 +- apps/web/pages/availability/[schedule].tsx | 2 + apps/web/pages/event-types/[type].tsx | 6 ++ apps/web/pages/v2/availability/[schedule].tsx | 40 ++++++++---- 6 files changed, 74 insertions(+), 49 deletions(-) diff --git a/apps/web/components/ui/EditableHeading.tsx b/apps/web/components/ui/EditableHeading.tsx index b357b1920f..f55dd6f4e5 100644 --- a/apps/web/components/ui/EditableHeading.tsx +++ b/apps/web/components/ui/EditableHeading.tsx @@ -1,50 +1,48 @@ -import { useState } from "react"; +import classNames from "classnames"; +import React, { useState } from "react"; +import { ControllerRenderProps } from "react-hook-form"; import { Icon } from "@calcom/ui/Icon"; -const EditableHeading = ({ - title, +const EditableHeading = function EditableHeading({ + value, onChange, - placeholder = "", - readOnly = false, + isReady, + ...passThroughProps }: { - title: string; - onChange?: (value: string) => void; - placeholder?: string; - readOnly?: boolean; -}) => { + isReady?: boolean; +} & Omit & + ControllerRenderProps) { const [isEditing, setIsEditing] = useState(false); - const enableEditing = () => !readOnly && setIsEditing(true); + const enableEditing = () => setIsEditing(true); return (
- {!isEditing ? ( - <> -

- {title} -

- {!readOnly ? ( - - ) : null} - - ) : ( -
+
+
- )} + +
); }; diff --git a/apps/web/components/v2/availability/SkeletonLoader.tsx b/apps/web/components/v2/availability/SkeletonLoader.tsx index 56222412f6..7b984652df 100644 --- a/apps/web/components/v2/availability/SkeletonLoader.tsx +++ b/apps/web/components/v2/availability/SkeletonLoader.tsx @@ -1,3 +1,4 @@ +import classNames from "classnames"; import React from "react"; import { SkeletonText } from "@calcom/ui/v2"; @@ -32,9 +33,13 @@ function SkeletonItem() { ); } -export const AvailabilitySelectSkeletonLoader = () => { +export const SelectSkeletonLoader = ({ className }: { className?: string }) => { return ( -
  • +
  • diff --git a/apps/web/components/v2/eventtype/AvailabilityTab.tsx b/apps/web/components/v2/eventtype/AvailabilityTab.tsx index 338610b009..5ae9e0cbf3 100644 --- a/apps/web/components/v2/eventtype/AvailabilityTab.tsx +++ b/apps/web/components/v2/eventtype/AvailabilityTab.tsx @@ -11,7 +11,7 @@ import Button from "@calcom/ui/v2/core/Button"; import Select from "@calcom/ui/v2/core/form/Select"; import { SkeletonText } from "@calcom/ui/v2/core/skeleton"; -import { AvailabilitySelectSkeletonLoader } from "@components/v2/availability/SkeletonLoader"; +import { SelectSkeletonLoader } from "@components/v2/availability/SkeletonLoader"; type AvailabilityOption = { label: string; @@ -30,7 +30,7 @@ const AvailabilitySelect = ({ }) => { const { data, isLoading } = trpc.useQuery(["viewer.availability.list"]); if (isLoading) { - return ; + return ; } const schedules = data?.schedules || []; diff --git a/apps/web/pages/availability/[schedule].tsx b/apps/web/pages/availability/[schedule].tsx index 548072c2f7..bee568f5c8 100644 --- a/apps/web/pages/availability/[schedule].tsx +++ b/apps/web/pages/availability/[schedule].tsx @@ -2,6 +2,8 @@ * @deprecated modifications to this file should be v2 only * Use `/apps/web/pages/v2/availability/[schedule].tsx` instead */ +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-nocheck import { GetStaticPaths, GetStaticProps } from "next"; import { useRouter } from "next/router"; import { useState } from "react"; diff --git a/apps/web/pages/event-types/[type].tsx b/apps/web/pages/event-types/[type].tsx index 716940aee9..ce559a52a5 100644 --- a/apps/web/pages/event-types/[type].tsx +++ b/apps/web/pages/event-types/[type].tsx @@ -1,3 +1,9 @@ +/** + * @deprecated modifications to this file should be v2 only + * Use `apps/web/pages/v2/event-types/[type].tsx` instead + */ +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-nocheck import { zodResolver } from "@hookform/resolvers/zod"; import { EventTypeCustomInput, MembershipRole, PeriodType, Prisma, SchedulingType } from "@prisma/client"; import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@radix-ui/react-collapsible"; diff --git a/apps/web/pages/v2/availability/[schedule].tsx b/apps/web/pages/v2/availability/[schedule].tsx index fe9dd188f3..d434bd82d5 100644 --- a/apps/web/pages/v2/availability/[schedule].tsx +++ b/apps/web/pages/v2/availability/[schedule].tsx @@ -19,11 +19,12 @@ import Switch from "@calcom/ui/v2/core/Switch"; import VerticalDivider from "@calcom/ui/v2/core/VerticalDivider"; import { Form, Label } from "@calcom/ui/v2/core/form/fields"; import showToast from "@calcom/ui/v2/core/notifications"; -import { SkeletonText } from "@calcom/ui/v2/core/skeleton"; +import { Skeleton, SkeletonText } from "@calcom/ui/v2/core/skeleton"; import { HttpError } from "@lib/core/http/error"; import EditableHeading from "@components/ui/EditableHeading"; +import { SelectSkeletonLoader } from "@components/v2/availability/SkeletonLoader"; const querySchema = z.object({ schedule: stringOrNumber, @@ -45,7 +46,7 @@ export default function Availability({ schedule }: { schedule: number }) { const { data, isLoading } = trpc.useQuery(["viewer.availability.schedule", { scheduleId: schedule }]); const form = useForm(); - const { control, reset, setValue } = form; + const { control, reset } = form; useEffect(() => { if (!isLoading && data) { @@ -83,20 +84,33 @@ export default function Availability({ schedule }: { schedule: number }) { backPath="/availability" title={t("availability_title", { availabilityTitle: data?.schedule.name })} heading={ - setValue("name", name)} /> + } + /> + } + subtitle={ + data ? ( + data.schedule.availability.map((availability) => ( + + {availabilityAsString(availability, { locale: i18n.language })} +
    +
    + )) + ) : ( + + ) } - subtitle={data?.schedule.availability.map((availability) => ( - - {availabilityAsString(availability, { locale: i18n.language })} -
    -
    - ))} CTA={
    - + onChange(timezone.value)} /> ) : ( - + ) } /> From be15affa5d7b21e4152e203bb413594a0063bbc9 Mon Sep 17 00:00:00 2001 From: GitStart <1501599+gitstart@users.noreply.github.com> Date: Wed, 28 Sep 2022 21:02:07 +0000 Subject: [PATCH 08/22] fix padding (#4673) Co-authored-by: gitstart Co-authored-by: gitstart Co-authored-by: Nitesh Singh Co-authored-by: Rafael Toledo <87545086+Toledodev@users.noreply.github.com> Co-authored-by: Matheus Muniz Co-authored-by: Grace Nshokano Co-authored-by: Matheus Muniz <87545749+matheusmuniz03@users.noreply.github.com> Co-authored-by: Olusanya Timothy <48022904+seunexplicit@users.noreply.github.com> Co-authored-by: Thiago Nascimbeni Co-authored-by: CarinaWolli Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com> Co-authored-by: Peer Richelsen --- .../workflows/components/v2/AddVariablesDropdown.tsx | 8 ++++---- .../workflows/components/v2/WorkflowStepContainer.tsx | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/features/ee/workflows/components/v2/AddVariablesDropdown.tsx b/packages/features/ee/workflows/components/v2/AddVariablesDropdown.tsx index 72a7b63977..0385bf57fa 100644 --- a/packages/features/ee/workflows/components/v2/AddVariablesDropdown.tsx +++ b/packages/features/ee/workflows/components/v2/AddVariablesDropdown.tsx @@ -28,11 +28,11 @@ export const AddVariablesDropdown = (props: IAddVariablesDropdown) => { return ( - -