mirror of
https://github.com/logto-io/logto.git
synced 2025-03-31 22:51:25 -05:00
feat(cloud): replace schedule meeting with send email (#3614)
This commit is contained in:
parent
1f594ddc1a
commit
870b86a218
22 changed files with 179 additions and 109 deletions
5
packages/console/src/assets/images/email-us.svg
Normal file
5
packages/console/src/assets/images/email-us.svg
Normal file
|
@ -0,0 +1,5 @@
|
|||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g opacity="0.7">
|
||||
<path d="M11.6667 9.59162H13.6834C13.7931 9.59226 13.9018 9.57124 14.0033 9.52977C14.1049 9.4883 14.1972 9.42719 14.2751 9.34996L18.0917 5.53329C18.1699 5.45582 18.2319 5.36365 18.2742 5.2621C18.3165 5.16056 18.3382 5.05163 18.3382 4.94162C18.3382 4.83161 18.3165 4.72269 18.2742 4.62114C18.2319 4.51959 18.1699 4.42743 18.0917 4.34996L16.0751 2.33329C15.9976 2.25518 15.9054 2.19319 15.8039 2.15088C15.7023 2.10857 15.5934 2.08679 15.4834 2.08679C15.3734 2.08679 15.2645 2.10857 15.1629 2.15088C15.0614 2.19319 14.9692 2.25518 14.8917 2.33329L11.0751 6.14996C10.9228 6.30965 10.8365 6.52098 10.8334 6.74162V8.75829C10.8334 8.9793 10.9212 9.19127 11.0775 9.34755C11.2338 9.50383 11.4457 9.59162 11.6667 9.59162ZM12.5001 7.09162L15.4834 4.10829L16.3167 4.94162L13.3334 7.92496H12.5001V7.09162ZM17.5001 8.75829C17.2791 8.75829 17.0671 8.84609 16.9108 9.00237C16.7545 9.15865 16.6667 9.37061 16.6667 9.59162V15.425C16.6667 15.646 16.579 15.8579 16.4227 16.0142C16.2664 16.1705 16.0544 16.2583 15.8334 16.2583H4.16675C3.94573 16.2583 3.73377 16.1705 3.57749 16.0142C3.42121 15.8579 3.33341 15.646 3.33341 15.425V7.41662L8.23342 12.325C8.46597 12.5605 8.74299 12.7476 9.04841 12.8753C9.35382 13.0029 9.68156 13.0687 10.0126 13.0687C10.3436 13.0687 10.6713 13.0029 10.9768 12.8753C11.2822 12.7476 11.5592 12.5605 11.7917 12.325C11.9444 12.1692 12.03 11.9598 12.03 11.7416C12.03 11.5235 11.9444 11.3141 11.7917 11.1583C11.7141 11.0789 11.6215 11.0159 11.5191 10.9728C11.4168 10.9297 11.3069 10.9076 11.1959 10.9076C11.0849 10.9076 10.975 10.9297 10.8727 10.9728C10.7704 11.0159 10.6777 11.0789 10.6001 11.1583C10.4443 11.311 10.2349 11.3965 10.0167 11.3965C9.79862 11.3965 9.58919 11.311 9.43341 11.1583L4.50841 6.24162H8.33342C8.55443 6.24162 8.76639 6.15383 8.92267 5.99755C9.07895 5.84127 9.16675 5.6293 9.16675 5.40829C9.16675 5.18728 9.07895 4.97532 8.92267 4.81903C8.76639 4.66275 8.55443 4.57496 8.33342 4.57496H4.16675C3.50371 4.57496 2.86782 4.83835 2.39898 5.30719C1.93014 5.77603 1.66675 6.41192 1.66675 7.07496V15.4083C1.66675 16.0713 1.93014 16.7072 2.39898 17.1761C2.86782 17.6449 3.50371 17.9083 4.16675 17.9083H15.8334C16.4965 17.9083 17.1323 17.6449 17.6012 17.1761C18.07 16.7072 18.3334 16.0713 18.3334 15.4083V9.57496C18.3334 9.35394 18.2456 9.14198 18.0893 8.9857C17.9331 8.82942 17.7211 8.74162 17.5001 8.74162V8.75829Z" fill="#5D34F2"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.4 KiB |
|
@ -10,7 +10,9 @@
|
|||
.description {
|
||||
font: var(--font-body-2);
|
||||
color: var(--color-text-secondary);
|
||||
margin-bottom: _.unit(6);
|
||||
}
|
||||
|
||||
> :not(:first-child) {
|
||||
margin-top: _.unit(6);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,10 +1,13 @@
|
|||
import { useTranslation } from 'react-i18next';
|
||||
import ReactModal from 'react-modal';
|
||||
|
||||
import Calendar from '@/assets/images/calendar.svg';
|
||||
import Email from '@/assets/images/email.svg';
|
||||
import ModalLayout from '@/components/ModalLayout';
|
||||
import { emailUsLink, reservationLink } from '@/onboarding/constants';
|
||||
import * as modalStyles from '@/scss/modal.module.scss';
|
||||
|
||||
import Reservation from '../../Reservation';
|
||||
import ReachLogto from '../../ReachLogto';
|
||||
|
||||
import * as styles from './index.module.scss';
|
||||
|
||||
|
@ -31,10 +34,19 @@ function GiftModal({ isOpen, onClose }: Props) {
|
|||
onClose={onClose}
|
||||
>
|
||||
<div className={styles.description}>{t('cloud.gift.description')}</div>
|
||||
<Reservation
|
||||
<ReachLogto
|
||||
title="cloud.gift.reserve_title"
|
||||
icon={<Calendar />}
|
||||
description="cloud.gift.reserve_description"
|
||||
reservationButtonTitle="cloud.gift.book_button"
|
||||
buttonTitle="cloud.gift.book_button"
|
||||
link={reservationLink}
|
||||
/>
|
||||
<ReachLogto
|
||||
title="cloud.gift.email_us_title"
|
||||
icon={<Email />}
|
||||
description="cloud.gift.email_us_description"
|
||||
buttonTitle="cloud.gift.email_us_button"
|
||||
link={emailUsLink}
|
||||
/>
|
||||
</ModalLayout>
|
||||
</ReactModal>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
@use '@/scss/underscore' as _;
|
||||
|
||||
.reservation {
|
||||
.reachLogto {
|
||||
width: 100%;
|
||||
padding: _.unit(3) _.unit(4);
|
||||
border: 1px solid var(--color-divider);
|
||||
|
@ -9,20 +9,22 @@
|
|||
align-items: center;
|
||||
justify-content: space-between;
|
||||
|
||||
.reservationInfo {
|
||||
.reachLogtoInfo {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.reservationIcon {
|
||||
.reachLogtoIcon {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
margin-right: _.unit(4);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.reservationTitle {
|
||||
.reachLogtoTitle {
|
||||
font: var(--font-title-3);
|
||||
}
|
||||
|
||||
.reservationDescription {
|
||||
.reachLogtoDescription {
|
||||
font: var(--font-body-2);
|
||||
color: var(--color-text-secondary);
|
||||
padding-right: _.unit(4);
|
|
@ -0,0 +1,45 @@
|
|||
import type { AdminConsoleKey } from '@logto/phrases';
|
||||
import classNames from 'classnames';
|
||||
import { cloneElement } from 'react';
|
||||
import type { ReactNode, ReactElement } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
import Button from '@/components/Button';
|
||||
|
||||
import * as styles from './index.module.scss';
|
||||
|
||||
type Props = {
|
||||
title: AdminConsoleKey;
|
||||
description: AdminConsoleKey;
|
||||
icon: ReactElement;
|
||||
buttonTitle: AdminConsoleKey;
|
||||
buttonIcon?: ReactNode;
|
||||
link: string;
|
||||
className?: string;
|
||||
};
|
||||
|
||||
function ReachLogto({ title, description, icon, buttonTitle, buttonIcon, link, className }: Props) {
|
||||
const { t } = useTranslation(undefined, { keyPrefix: 'admin_console' });
|
||||
|
||||
return (
|
||||
<div className={classNames(styles.reachLogto, className)}>
|
||||
<div className={styles.reachLogtoInfo}>
|
||||
{cloneElement(icon, { className: styles.reachLogtoIcon })}
|
||||
<div>
|
||||
<div className={styles.reachLogtoTitle}>{t(title)}</div>
|
||||
<div className={styles.reachLogtoDescription}>{t(description)}</div>
|
||||
</div>
|
||||
</div>
|
||||
<Button
|
||||
type="outline"
|
||||
title={buttonTitle}
|
||||
icon={buttonIcon}
|
||||
onClick={() => {
|
||||
window.open(link, '_blank');
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default ReachLogto;
|
|
@ -1,56 +0,0 @@
|
|||
import type { AdminConsoleKey } from '@logto/phrases';
|
||||
import classNames from 'classnames';
|
||||
import type { ReactNode } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
import Calendar from '@/assets/images/calendar.svg';
|
||||
import Button from '@/components/Button';
|
||||
import { reservationLink } from '@/onboarding/constants';
|
||||
import { buildUrl } from '@/utils/url';
|
||||
|
||||
import * as styles from './index.module.scss';
|
||||
|
||||
type Props = {
|
||||
title: AdminConsoleKey;
|
||||
description: AdminConsoleKey;
|
||||
reservationButtonTitle: AdminConsoleKey;
|
||||
reservationButtonIcon?: ReactNode;
|
||||
className?: string;
|
||||
};
|
||||
|
||||
function Reservation({
|
||||
title,
|
||||
description,
|
||||
reservationButtonTitle,
|
||||
reservationButtonIcon,
|
||||
className,
|
||||
}: Props) {
|
||||
const { t } = useTranslation(undefined, { keyPrefix: 'admin_console' });
|
||||
|
||||
return (
|
||||
<div className={classNames(styles.reservation, className)}>
|
||||
<div className={styles.reservationInfo}>
|
||||
<Calendar className={styles.reservationIcon} />
|
||||
<div>
|
||||
<div className={styles.reservationTitle}>{t(title)}</div>
|
||||
<div className={styles.reservationDescription}>{t(description)}</div>
|
||||
</div>
|
||||
</div>
|
||||
<Button
|
||||
type="outline"
|
||||
title={reservationButtonTitle}
|
||||
icon={reservationButtonIcon}
|
||||
onClick={() => {
|
||||
const bookLink = buildUrl(reservationLink, {
|
||||
// Note: month format is YYYY-MM
|
||||
month: new Date().toISOString().slice(0, 7),
|
||||
});
|
||||
|
||||
window.open(bookLink, '_blank');
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default Reservation;
|
|
@ -1,3 +1,12 @@
|
|||
export const reservationLink = 'https://calendly.com/logto/30min';
|
||||
import { buildUrl } from '@/utils/url';
|
||||
|
||||
export const reservationLink = buildUrl('https://calendly.com/logto/30min', {
|
||||
// Note: month format is YYYY-MM
|
||||
month: new Date().toISOString().slice(0, 7),
|
||||
});
|
||||
export const emailUsLink = buildUrl('mailto:contact@logto.io', {
|
||||
subject: 'Cloud pricing and special offer',
|
||||
}).replace(/\+/g, '%20');
|
||||
|
||||
export const logtoBlogLink = 'https://docs.logto.io/blog?utm_source=console';
|
||||
export const aboutCloudPreviewLink = 'https://docs.logto.io/about/cloud-preview?utm_source=console';
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
margin: _.unit(8) 0;
|
||||
}
|
||||
|
||||
.reservation {
|
||||
.emailUs {
|
||||
background-color: var(--color-layer-light);
|
||||
border: unset;
|
||||
}
|
||||
|
|
|
@ -3,14 +3,16 @@ import classNames from 'classnames';
|
|||
import { useContext } from 'react';
|
||||
import { Trans, useTranslation } from 'react-i18next';
|
||||
|
||||
import CalendarOutline from '@/assets/images/calendar-outline.svg';
|
||||
import CongratsImage from '@/assets/images/congrats.svg';
|
||||
import EmailUsIcon from '@/assets/images/email-us.svg';
|
||||
import Email from '@/assets/images/email.svg';
|
||||
import Button from '@/components/Button';
|
||||
import Divider from '@/components/Divider';
|
||||
import OverlayScrollbar from '@/components/OverlayScrollbar';
|
||||
import PageMeta from '@/components/PageMeta';
|
||||
import { TenantsContext } from '@/contexts/TenantsProvider';
|
||||
import Reservation from '@/onboarding/components/Reservation';
|
||||
import ReachLogto from '@/onboarding/components/ReachLogto';
|
||||
import { emailUsLink } from '@/onboarding/constants';
|
||||
import useUserOnboardingData from '@/onboarding/hooks/use-user-onboarding-data';
|
||||
import * as pageLayout from '@/onboarding/scss/layout.module.scss';
|
||||
|
||||
|
@ -39,12 +41,14 @@ function Congrats() {
|
|||
{t('cloud.congrats.description')}
|
||||
</Trans>
|
||||
</div>
|
||||
<Reservation
|
||||
title="cloud.congrats.reserve_title"
|
||||
description="cloud.congrats.reserve_description"
|
||||
reservationButtonTitle="cloud.congrats.book_button"
|
||||
reservationButtonIcon={<CalendarOutline />}
|
||||
className={styles.reservation}
|
||||
<ReachLogto
|
||||
title="cloud.congrats.email_us_title"
|
||||
description="cloud.congrats.email_us_description"
|
||||
buttonTitle="cloud.congrats.email_us_button"
|
||||
buttonIcon={<EmailUsIcon />}
|
||||
icon={<Email />}
|
||||
link={emailUsLink}
|
||||
className={styles.emailUs}
|
||||
/>
|
||||
<Divider className={styles.divider} />
|
||||
<Button
|
||||
|
|
|
@ -59,6 +59,9 @@ const cloud = {
|
|||
reserve_title: 'Reservieren Sie Ihre Zeit beim Logto-Team',
|
||||
reserve_description: 'Das Guthaben ist nur einmal nach Validierung berechtigt.',
|
||||
book_button: 'Jetzt buchen',
|
||||
email_us_title: 'Schreiben Sie uns eine E-Mail für ein spezielles Angebot und Preise',
|
||||
email_us_description: 'Erhalten Sie exklusive Preise, um Geld zu sparen',
|
||||
email_us_button: 'E-Mail senden',
|
||||
join_description:
|
||||
'Treten Sie unserem öffentlichen <a>{{link}}</a> bei, um sich mit anderen Entwicklern zu verbinden und zu chatten.',
|
||||
discord_link: 'Discord-Kanal',
|
||||
|
@ -70,6 +73,9 @@ const cloud = {
|
|||
reserve_title: 'Reservieren Sie Ihre Zeit beim Logto-Team',
|
||||
reserve_description: 'Das Guthaben ist nur einmal nach Bewertung berechtigt.',
|
||||
book_button: 'Buch',
|
||||
email_us_title: 'Senden Sie uns eine E-Mail',
|
||||
email_us_description: 'Kontaktieren Sie uns für ein spezielles Angebot und Preisdetails.',
|
||||
email_us_button: 'Senden',
|
||||
},
|
||||
sie: {
|
||||
page_title: 'Meldeeinrichtung anpassen',
|
||||
|
|
|
@ -55,9 +55,9 @@ const cloud = {
|
|||
description:
|
||||
'Don’t miss out on a chance to enjoy a free <strong>60 days</strong> subscription to Logto Cloud after its official launch! Contact the Logto team now to learn more.',
|
||||
check_out_button: 'Check out the live preview',
|
||||
reserve_title: 'Reserve your time with Logto team',
|
||||
reserve_description: 'Credit is only eligible once upon validation.',
|
||||
book_button: 'Schedule now',
|
||||
email_us_title: 'Email us for a special offer and pricing details',
|
||||
email_us_description: 'Get exclusive pricing to save money',
|
||||
email_us_button: 'Send email',
|
||||
join_description: 'Join our public <a>{{link}}</a> to connect and chat with other developers.',
|
||||
discord_link: 'discord channel',
|
||||
enter_admin_console: 'Enter Logto Cloud Preview',
|
||||
|
@ -68,6 +68,9 @@ const cloud = {
|
|||
reserve_title: 'Reserve your time with Logto team',
|
||||
reserve_description: 'Credit is only eligible once upon evaluation.',
|
||||
book_button: 'Book',
|
||||
email_us_title: 'Send us an email',
|
||||
email_us_description: 'Contact us for a special offer and pricing detail.',
|
||||
email_us_button: 'Send',
|
||||
},
|
||||
sie: {
|
||||
page_title: 'Customize sign-in experience',
|
||||
|
|
|
@ -58,6 +58,9 @@ const cloud = {
|
|||
reserve_title: 'Reserve su tiempo con el equipo de Logto',
|
||||
reserve_description: 'El crédito solo es elegible una vez validado.',
|
||||
book_button: 'Programar ahora',
|
||||
email_us_title: 'Envíanos un correo electrónico para una oferta especial y detalles del precio',
|
||||
email_us_description: 'Obtén precios exclusivos para ahorrar dinero',
|
||||
email_us_button: 'Enviar correo electrónico',
|
||||
join_description:
|
||||
'Únase a nuestro <a>{{link}}</a> público para conectarse y charlar con otros desarrolladores.',
|
||||
discord_link: 'canal de discordia',
|
||||
|
@ -70,6 +73,9 @@ const cloud = {
|
|||
reserve_title: 'Reserve su tiempo con el equipo de Logto',
|
||||
reserve_description: 'El crédito solo es elegible una vez evaluado.',
|
||||
book_button: 'Reservar',
|
||||
email_us_title: 'Envíanos un correo electrónico',
|
||||
email_us_description: 'Contáctanos para una oferta especial y detalles de precios.',
|
||||
email_us_button: 'Enviar',
|
||||
},
|
||||
sie: {
|
||||
page_title: 'Personalización de la experiencia de inicio de sesión',
|
||||
|
|
|
@ -57,9 +57,9 @@ const cloud = {
|
|||
description:
|
||||
"Ne manquez pas l'occasion de profiter d'un abonnement gratuit de <strong>60 jours</strong> pour Logto Cloud après son lancement officiel! Contactez l'équipe Logto dès maintenant pour en savoir plus.",
|
||||
check_out_button: "Découvrez l'aperçu en direct",
|
||||
reserve_title: "Réservez votre temps avec l'équipe Logto",
|
||||
reserve_description: "Le crédit n'est éligible qu'après validation.",
|
||||
book_button: 'Planifier maintenant',
|
||||
email_us_title: 'Envoyez-nous un e-mail pour une offre spéciale et des détails de prix',
|
||||
email_us_description: "Obtenez des tarifs exclusifs pour économiser de l'argent",
|
||||
email_us_button: 'Envoyer un e-mail',
|
||||
join_description:
|
||||
"Rejoignez notre <a>{{link}}</a> public pour vous connecter et discuter avec d'autres développeurs.",
|
||||
discord_link: 'canal Discord',
|
||||
|
@ -72,6 +72,9 @@ const cloud = {
|
|||
reserve_title: "Réservez votre temps avec l'équipe Logto",
|
||||
reserve_description: "Le crédit n'est éligible qu'après évaluation.",
|
||||
book_button: 'Réserver',
|
||||
email_us_title: 'Envoyez-nous un e-mail',
|
||||
email_us_description: 'Contactez-nous pour une offre spéciale et des détails de prix.',
|
||||
email_us_button: 'Envoyer',
|
||||
},
|
||||
sie: {
|
||||
page_title: "Personnalisez l'expérience de connexion",
|
||||
|
|
|
@ -55,9 +55,9 @@ const cloud = {
|
|||
description:
|
||||
'Logto Cloudの正式開始後、無料で60日間のサブスクリプションを楽しむチャンスを逃さないでください! 詳しくは今すぐLogtoチームにお問い合わせください。',
|
||||
check_out_button: 'ライブプレビューをチェックアウト',
|
||||
reserve_title: 'Logtoチームとの会議を予約',
|
||||
reserve_description: 'クレジットは承認された時点でのみ有効です。',
|
||||
book_button: '今すぐスケジュール',
|
||||
email_us_title: '特別オファーや価格詳細のためにメールを送信してください',
|
||||
email_us_description: 'お金を節約するために独占的な価格を手に入れる',
|
||||
email_us_button: 'メールを送信する',
|
||||
join_description:
|
||||
'他の開発者と接続してチャットできるパブリック<a>{{link}}</a>に参加してください。',
|
||||
discord_link: 'discordチャンネル',
|
||||
|
@ -69,6 +69,9 @@ const cloud = {
|
|||
reserve_title: 'Logtoチームとの会議を予約',
|
||||
reserve_description: 'クレジットは審査後にのみ有効になります。',
|
||||
book_button: '予約する',
|
||||
email_us_title: 'メールでお問い合わせ',
|
||||
email_us_description: '特別オファーや価格の詳細についてお問い合わせください。',
|
||||
email_us_button: '送信する',
|
||||
},
|
||||
sie: {
|
||||
page_title: 'サインインエクスペリエンスのカスタマイズ',
|
||||
|
|
|
@ -55,9 +55,9 @@ const cloud = {
|
|||
description:
|
||||
'공식 출시 후 Logto Cloud를 <strong>60일</strong> 동안 무료로 구독할 수 있는 기회를 놓치지 마세요! 지금 Logto 팀에 문의하여 자세히 알아보세요.',
|
||||
check_out_button: 'Live Preview 확인하기',
|
||||
reserve_title: 'Logto 팀과의 시간을 예약하세요',
|
||||
reserve_description: '크레딧은 인증 시 한 번만 받을 수 있습니다.',
|
||||
book_button: '지금 예약하기',
|
||||
email_us_title: '특별 제안과 가격 세부 정보를 위해 이메일을 보내주세요',
|
||||
email_us_description: '돈을 절약하기 위해 독점적인 가격을 받아보세요',
|
||||
email_us_button: '이메일을 보내기',
|
||||
join_description: '공식 <a>{{link}}</a>에 참여하여 다른 개발자들과 연결하고 채팅하세요.',
|
||||
discord_link: '디스코드 채널',
|
||||
enter_admin_console: 'Logto Cloud Preview 참여하기',
|
||||
|
@ -68,6 +68,9 @@ const cloud = {
|
|||
reserve_title: 'Logto 팀과의 시간을 예약하세요',
|
||||
reserve_description: '크레딧은 평가 시 한 번만 받을 수 있습니다.',
|
||||
book_button: '예약하기',
|
||||
email_us_title: '우리에게 이메일을 보내세요',
|
||||
email_us_description: '특별 제안과 가격 상세 정보를 위해 저희에게 연락해주세요.',
|
||||
email_us_button: '보내기',
|
||||
},
|
||||
sie: {
|
||||
page_title: '로그인 환경 변경하기',
|
||||
|
|
|
@ -55,9 +55,9 @@ const cloud = {
|
|||
description:
|
||||
'Não perca a chance de desfrutar de uma assinatura gratuita de <strong>60 dias</strong> da Logto Cloud após o lançamento oficial! Entre em contato com a equipe da Logto agora para obter mais informações.',
|
||||
check_out_button: 'Confira a visualização ao vivo',
|
||||
reserve_title: 'Reserve seu horário com a equipe da Logto',
|
||||
reserve_description: 'O crédito é elegível apenas uma vez na validação.',
|
||||
book_button: 'Agendar agora',
|
||||
email_us_title: 'Envie-nos um e-mail para uma oferta especial e detalhes de preços',
|
||||
email_us_description: 'Obtenha preços exclusivos para economizar dinheiro',
|
||||
email_us_button: 'Enviar e-mail',
|
||||
join_description:
|
||||
'Junte-se a nosso <a>{{link}}</a> público para se conectar e conversar com outros desenvolvedores.',
|
||||
discord_link: 'canal Discord',
|
||||
|
@ -69,6 +69,9 @@ const cloud = {
|
|||
reserve_title: 'Reserve seu horário com a equipe da Logto',
|
||||
reserve_description: 'O crédito é elegível somente após a avaliação.',
|
||||
book_button: 'Agendar',
|
||||
email_us_title: 'Envie-nos um e-mail',
|
||||
email_us_description: 'Entre em contato conosco para uma oferta especial e detalhes de preços.',
|
||||
email_us_button: 'Enviar',
|
||||
},
|
||||
sie: {
|
||||
page_title: 'Personalize a experiência de logon',
|
||||
|
|
|
@ -55,9 +55,9 @@ const cloud = {
|
|||
description:
|
||||
'Não perca a oportunidade de aproveitar uma assinatura gratuita de <strong>60 dias</strong> na Logto Cloud após o lançamento oficial! Entre em contato agora com a equipe Logto para saber mais.',
|
||||
check_out_button: 'Confira a visualização ao vivo',
|
||||
reserve_title: 'Agende seu horário com a equipe Logto',
|
||||
reserve_description: 'Crédito é elegível apenas uma vez na validação.',
|
||||
book_button: 'Agende agora',
|
||||
email_us_title: 'Envie-nos um e-mail para uma oferta especial e detalhes de preços',
|
||||
email_us_description: 'Obtenha preços exclusivos para economizar dinheiro',
|
||||
email_us_button: 'Enviar e-mail',
|
||||
join_description:
|
||||
'Junte-se ao nosso <a>{{link}}</a> público para se conectar e conversar com outros desenvolvedores.',
|
||||
discord_link: 'canal no discord',
|
||||
|
@ -69,6 +69,9 @@ const cloud = {
|
|||
reserve_title: 'Agende seu horário com a equipe Logto',
|
||||
reserve_description: 'Crédito é elegível apenas uma vez na avaliação.',
|
||||
book_button: 'Agendar',
|
||||
email_us_title: 'Envie-nos um email',
|
||||
email_us_description: 'Entre em contato conosco para uma oferta especial e detalhes de preços.',
|
||||
email_us_button: 'Enviar',
|
||||
},
|
||||
sie: {
|
||||
page_title: 'Personalize a experiência de login',
|
||||
|
|
|
@ -57,9 +57,10 @@ const cloud = {
|
|||
description:
|
||||
'Не упустите возможность бесплатно пользоваться Logto Cloud в течение <strong>60 дней</strong> после его официального запуска! Свяжитесь с командой Logto, чтобы узнать больше.',
|
||||
check_out_button: 'Посмотреть предварительный просмотр в режиме реального времени',
|
||||
reserve_title: 'Запишитесь на встречу с командой Logto',
|
||||
reserve_description: 'Кредит действителен только после подтверждения.',
|
||||
book_button: 'Записаться',
|
||||
email_us_title:
|
||||
'Напишите нам по электронной почте для получения специального предложения и информации о ценах',
|
||||
email_us_description: 'Получите эксклюзивную цену, чтобы сэкономить деньги',
|
||||
email_us_button: 'Отправить сообщение',
|
||||
join_description:
|
||||
'Присоединяйтесь к нашей общедоступной <a>{{link}}</a>, чтобы связаться и пообщаться с другими разработчиками.',
|
||||
discord_link: 'канал Discord',
|
||||
|
@ -72,6 +73,10 @@ const cloud = {
|
|||
reserve_title: 'Запишитесь на встречу с командой Logto',
|
||||
reserve_description: 'Кредит действителен только после оценки.',
|
||||
book_button: 'Записаться',
|
||||
email_us_title: 'Отправь нам письмо',
|
||||
email_us_description:
|
||||
'Свяжись с нами для получения специального предложения и информации о ценах',
|
||||
email_us_button: 'Отправить',
|
||||
},
|
||||
sie: {
|
||||
page_title: 'Настройка опыта входа',
|
||||
|
|
|
@ -55,9 +55,9 @@ const cloud = {
|
|||
description:
|
||||
"Resmi lansmanından sonra Logto Cloud'da ücretsiz <strong>60 gün</strong> aboneliğin tadını çıkarma şansını kaçırmayın! Daha fazla bilgi için hemen Logto ekibiyle iletişime geçin.",
|
||||
check_out_button: 'Canlı önizlemeyi kontrol et',
|
||||
reserve_title: 'Logto ekibi ile zaman ayırın',
|
||||
reserve_description: 'Kredi, değerlendirmeye dayanarak yalnızca bir kez geçerlidir.',
|
||||
book_button: 'Şimdi programa al',
|
||||
email_us_title: 'Özel teklif ve fiyat detayları için bize e-posta gönderin',
|
||||
email_us_description: 'Para kazanmak için özel fiyatlar alın',
|
||||
email_us_button: 'E-posta gönderin',
|
||||
join_description:
|
||||
"Diğer geliştiricilerle bağlantı kurmak ve sohbet etmek için genel <a>{{link}}</a>'a katılın.",
|
||||
discord_link: 'discord kanalı',
|
||||
|
@ -69,6 +69,9 @@ const cloud = {
|
|||
reserve_title: 'Logto ekibiyle zaman ayırın',
|
||||
reserve_description: 'Kredi, değerlendirmeye dayanarak yalnızca bir kez geçerlidir.',
|
||||
book_button: 'Programa al',
|
||||
email_us_title: 'Bize bir e-posta gönderin',
|
||||
email_us_description: 'Özel teklif ve fiyat detayları için bizimle iletişime geçin.',
|
||||
email_us_button: 'Gönder',
|
||||
},
|
||||
sie: {
|
||||
page_title: 'Oturum açma deneyimini özelleştirin',
|
||||
|
|
|
@ -54,9 +54,9 @@ const cloud = {
|
|||
description:
|
||||
'别错过:立即联系 Logto 团队,了解更多信息,获得 Logto Cloud 正式版 <strong>60 天</strong> 的免费试用机会!',
|
||||
check_out_button: '查看实时预览',
|
||||
reserve_title: '与 Logto 团队预定时间',
|
||||
reserve_description: '验证后仅有一次领取资格。',
|
||||
book_button: '现在预定',
|
||||
email_us_title: '跟 Logto 联系以获得特殊折扣和定价细节',
|
||||
email_us_description: '享受独家价格优惠',
|
||||
email_us_button: '发送邮件',
|
||||
join_description: '加入我们的公开 <a>{{link}}</a>,与其他开发人员连接和聊天。',
|
||||
discord_link: 'Discord 频道',
|
||||
enter_admin_console: '进入 Logto Cloud 预览',
|
||||
|
@ -67,6 +67,9 @@ const cloud = {
|
|||
reserve_title: '与 Logto 团队预定时间',
|
||||
reserve_description: '评估后仅有一次领取资格。',
|
||||
book_button: '预定',
|
||||
email_us_title: '给 Logto 团队发邮件',
|
||||
email_us_description: '跟我们联系以获得特殊折扣和定价细节。',
|
||||
email_us_button: '发送',
|
||||
},
|
||||
sie: {
|
||||
page_title: '定制登录体验',
|
||||
|
|
|
@ -54,9 +54,9 @@ const cloud = {
|
|||
description:
|
||||
'別錯過:立即聯繫 Logto 團隊,了解更多信息,獲得 Logto Cloud 正式版 <strong>60 天</strong> 的免費試用機會!',
|
||||
check_out_button: '查看實時預覽',
|
||||
reserve_title: '與 Logto 團隊預定時間',
|
||||
reserve_description: '驗證後僅有一次領取資格。',
|
||||
book_button: '現在預定',
|
||||
email_us_title: '電郵聯絡我們以獲取特別優惠和價格詳情',
|
||||
email_us_description: '獲取獨家優惠價格以節省金錢',
|
||||
email_us_button: '發送電郵',
|
||||
join_description: '加入我們的公開<a>{{link}}</a>,與其他開發人員連接和聊天。',
|
||||
discord_link: 'Discord 頻道',
|
||||
enter_admin_console: '進入 Logto Cloud 預覽',
|
||||
|
@ -67,6 +67,9 @@ const cloud = {
|
|||
reserve_title: '與 Logto 團隊預定時間',
|
||||
reserve_description: '評估後僅有一次領取資格。',
|
||||
book_button: '預定',
|
||||
email_us_title: '傳送郵件給我們',
|
||||
email_us_description: '聯繫我們以獲得特別優惠及價格詳情。',
|
||||
email_us_button: '傳送',
|
||||
},
|
||||
sie: {
|
||||
page_title: '定制登錄體驗',
|
||||
|
|
|
@ -54,9 +54,9 @@ const cloud = {
|
|||
description:
|
||||
'別錯過:立即聯繫 Logto 團隊,了解更多信息,獲得 Logto Cloud 正式版 <strong>60 天</strong> 的免費試用機會!',
|
||||
check_out_button: '查看實時預覽',
|
||||
reserve_title: '與 Logto 團隊預定時間',
|
||||
reserve_description: '驗證後僅有一次領取資格。',
|
||||
book_button: '現在預定',
|
||||
email_us_title: 'Email 我們以獲得特別優惠和價格詳情',
|
||||
email_us_description: '獲取獨家定價以節省更多',
|
||||
email_us_button: '發送電子郵件',
|
||||
join_description: '加入我們的公開 <a>{{link}}</a>,與其他開發人員連接和聊天。',
|
||||
discord_link: 'Discord 頻道',
|
||||
enter_admin_console: '進入 Logto Cloud 預覽',
|
||||
|
@ -67,6 +67,9 @@ const cloud = {
|
|||
reserve_title: '與 Logto 團隊預定時間',
|
||||
reserve_description: '評估後僅有一次領取資格。',
|
||||
book_button: '預定',
|
||||
email_us_title: '寄送電子郵件給我們',
|
||||
email_us_description: '聯絡我們以獲得特別優惠及價格詳情。',
|
||||
email_us_button: '寄送',
|
||||
},
|
||||
sie: {
|
||||
page_title: '定制登錄體驗',
|
||||
|
|
Loading…
Add table
Reference in a new issue