mirror of
https://github.com/logto-io/logto.git
synced 2024-12-16 20:26:19 -05:00
refactor(console): add link to toggle tips (#2613)
This commit is contained in:
parent
07fae9a6fc
commit
b3e674ced0
28 changed files with 157 additions and 63 deletions
|
@ -9,6 +9,7 @@ import type DangerousRaw from '../DangerousRaw';
|
|||
import IconButton from '../IconButton';
|
||||
import Spacer from '../Spacer';
|
||||
import { ToggleTip } from '../Tip';
|
||||
import type { Props as ToggleTipProps } from '../Tip/ToggleTip';
|
||||
import * as styles from './index.module.scss';
|
||||
|
||||
export type Props = {
|
||||
|
@ -17,7 +18,7 @@ export type Props = {
|
|||
isRequired?: boolean;
|
||||
className?: string;
|
||||
headlineClassName?: string;
|
||||
tip?: AdminConsoleKey;
|
||||
tip?: ToggleTipProps['content'];
|
||||
};
|
||||
|
||||
const FormField = ({ title, children, isRequired, className, tip, headlineClassName }: Props) => {
|
||||
|
@ -28,7 +29,7 @@ const FormField = ({ title, children, isRequired, className, tip, headlineClassN
|
|||
<div className={classNames(styles.headline, headlineClassName)}>
|
||||
<div className={styles.title}>{typeof title === 'string' ? t(title) : title}</div>
|
||||
{tip && (
|
||||
<ToggleTip anchorClassName={styles.toggleTipButton} content={<div>{t(tip)}</div>}>
|
||||
<ToggleTip anchorClassName={styles.toggleTipButton} content={tip}>
|
||||
<IconButton size="small">
|
||||
<Tip />
|
||||
</IconButton>
|
||||
|
|
|
@ -10,6 +10,14 @@
|
|||
font: var(--font-body-medium);
|
||||
max-width: 300px;
|
||||
|
||||
a {
|
||||
color: #cabeff;
|
||||
|
||||
&:active {
|
||||
color: #cabeff;
|
||||
}
|
||||
}
|
||||
|
||||
&::after {
|
||||
content: '';
|
||||
display: block;
|
||||
|
|
|
@ -16,7 +16,7 @@ import {
|
|||
} from '../TipBubble/utils';
|
||||
import * as styles from './index.module.scss';
|
||||
|
||||
type Props = {
|
||||
export type Props = {
|
||||
children: ReactNode;
|
||||
className?: string;
|
||||
anchorClassName?: string;
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
import type { Resource } from '@logto/schemas';
|
||||
import { useForm } from 'react-hook-form';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { Trans, useTranslation } from 'react-i18next';
|
||||
|
||||
import Button from '@/components/Button';
|
||||
import FormField from '@/components/FormField';
|
||||
import ModalLayout from '@/components/ModalLayout';
|
||||
import TextInput from '@/components/TextInput';
|
||||
import TextLink from '@/components/TextLink';
|
||||
import useApi from '@/hooks/use-api';
|
||||
|
||||
type FormData = {
|
||||
|
@ -64,7 +65,21 @@ const CreateForm = ({ onClose }: Props) => {
|
|||
<FormField
|
||||
isRequired
|
||||
title="api_resources.api_identifier"
|
||||
tip="api_resources.api_identifier_tip"
|
||||
tip={(closeTipHandler) => (
|
||||
<Trans
|
||||
components={{
|
||||
a: (
|
||||
<TextLink
|
||||
href="https://datatracker.ietf.org/doc/html/rfc8707#section-2"
|
||||
target="_blank"
|
||||
onClick={closeTipHandler}
|
||||
/>
|
||||
),
|
||||
}}
|
||||
>
|
||||
{t('api_resources.api_identifier_tip')}
|
||||
</Trans>
|
||||
)}
|
||||
>
|
||||
<TextInput
|
||||
{...register('indicator', { required: true })}
|
||||
|
|
|
@ -2,12 +2,13 @@ import type { Application, SnakeCaseOidcConfig } from '@logto/schemas';
|
|||
import { ApplicationType, UserRole } from '@logto/schemas';
|
||||
import { deduplicate } from '@silverhand/essentials';
|
||||
import { Controller, useFormContext } from 'react-hook-form';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { Trans, useTranslation } from 'react-i18next';
|
||||
|
||||
import CopyToClipboard from '@/components/CopyToClipboard';
|
||||
import FormCard from '@/components/FormCard';
|
||||
import FormField from '@/components/FormField';
|
||||
import Switch from '@/components/Switch';
|
||||
import TextLink from '@/components/TextLink';
|
||||
|
||||
import * as styles from '../index.module.scss';
|
||||
|
||||
|
@ -28,7 +29,21 @@ const AdvancedSettings = ({ applicationType, oidcConfig }: Props) => {
|
|||
>
|
||||
<FormField
|
||||
title="application_details.authorization_endpoint"
|
||||
tip="application_details.authorization_endpoint_tip"
|
||||
tip={(closeTipHandler) => (
|
||||
<Trans
|
||||
components={{
|
||||
a: (
|
||||
<TextLink
|
||||
href="https://openid.net/specs/openid-connect-core-1_0.html#Authentication"
|
||||
target="_blank"
|
||||
onClick={closeTipHandler}
|
||||
/>
|
||||
),
|
||||
}}
|
||||
>
|
||||
{t('application_details.authorization_endpoint_tip')}
|
||||
</Trans>
|
||||
)}
|
||||
>
|
||||
<CopyToClipboard
|
||||
className={styles.textField}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import type { Application } from '@logto/schemas';
|
||||
import { ApplicationType, validateRedirectUrl } from '@logto/schemas';
|
||||
import { Controller, useFormContext } from 'react-hook-form';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { Trans, useTranslation } from 'react-i18next';
|
||||
|
||||
import CopyToClipboard from '@/components/CopyToClipboard';
|
||||
import FormCard from '@/components/FormCard';
|
||||
|
@ -10,6 +10,7 @@ import type { MultiTextInputRule } from '@/components/MultiTextInput/types';
|
|||
import { createValidatorForRhf, convertRhfErrorMessage } from '@/components/MultiTextInput/utils';
|
||||
import MultiTextInputField from '@/components/MultiTextInputField';
|
||||
import TextInput from '@/components/TextInput';
|
||||
import TextLink from '@/components/TextLink';
|
||||
import { uriOriginValidator } from '@/utilities/validator';
|
||||
|
||||
import * as styles from '../index.module.scss';
|
||||
|
@ -55,7 +56,24 @@ const Settings = ({ data }: Props) => {
|
|||
placeholder={t('application_details.description_placeholder')}
|
||||
/>
|
||||
</FormField>
|
||||
<FormField title="application_details.application_id">
|
||||
<FormField
|
||||
title="application_details.application_id"
|
||||
tip={(closeTipHandler) => (
|
||||
<Trans
|
||||
components={{
|
||||
a: (
|
||||
<TextLink
|
||||
href="https://openid.net/specs/openid-connect-core-1_0.html"
|
||||
target="_blank"
|
||||
onClick={closeTipHandler}
|
||||
/>
|
||||
),
|
||||
}}
|
||||
>
|
||||
{t('application_details.application_id_tip')}
|
||||
</Trans>
|
||||
)}
|
||||
>
|
||||
<CopyToClipboard value={id} variant="border" className={styles.textField} />
|
||||
</FormField>
|
||||
{[ApplicationType.Traditional, ApplicationType.MachineToMachine].includes(
|
||||
|
@ -85,7 +103,21 @@ const Settings = ({ data }: Props) => {
|
|||
<MultiTextInputField
|
||||
isRequired
|
||||
title="application_details.redirect_uris"
|
||||
tip="application_details.redirect_uri_tip"
|
||||
tip={(closeTipHandler) => (
|
||||
<Trans
|
||||
components={{
|
||||
a: (
|
||||
<TextLink
|
||||
href="https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest"
|
||||
target="_blank"
|
||||
onClick={closeTipHandler}
|
||||
/>
|
||||
),
|
||||
}}
|
||||
>
|
||||
{t('application_details.redirect_uri_tip')}
|
||||
</Trans>
|
||||
)}
|
||||
value={value}
|
||||
error={convertRhfErrorMessage(error?.message)}
|
||||
placeholder={
|
||||
|
@ -109,7 +141,7 @@ const Settings = ({ data }: Props) => {
|
|||
render={({ field: { onChange, value }, fieldState: { error } }) => (
|
||||
<MultiTextInputField
|
||||
title="application_details.post_sign_out_redirect_uris"
|
||||
tip="application_details.post_sign_out_redirect_uri_tip"
|
||||
tip={t('application_details.post_sign_out_redirect_uri_tip')}
|
||||
value={value}
|
||||
error={convertRhfErrorMessage(error?.message)}
|
||||
placeholder={t('application_details.post_sign_out_redirect_uri_placeholder')}
|
||||
|
@ -134,7 +166,21 @@ const Settings = ({ data }: Props) => {
|
|||
render={({ field: { onChange, value }, fieldState: { error } }) => (
|
||||
<MultiTextInputField
|
||||
title="application_details.cors_allowed_origins"
|
||||
tip="application_details.cors_allowed_origins_tip"
|
||||
tip={(closeTipHandler) => (
|
||||
<Trans
|
||||
components={{
|
||||
a: (
|
||||
<TextLink
|
||||
href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS"
|
||||
target="_blank"
|
||||
onClick={closeTipHandler}
|
||||
/>
|
||||
),
|
||||
}}
|
||||
>
|
||||
{t('application_details.cors_allowed_origins_tip')}
|
||||
</Trans>
|
||||
)}
|
||||
value={value}
|
||||
error={convertRhfErrorMessage(error?.message)}
|
||||
placeholder={t('application_details.cors_allowed_origins_placeholder')}
|
||||
|
|
|
@ -15,12 +15,4 @@
|
|||
|
||||
.content {
|
||||
font: var(--font-body-medium);
|
||||
|
||||
.link {
|
||||
color: #cabeff;
|
||||
|
||||
&:active {
|
||||
color: #cabeff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,7 +25,6 @@ const ConnectorStatusField = () => {
|
|||
<TextLink
|
||||
to="/sign-in-experience/sign-up-and-sign-in"
|
||||
target="_blank"
|
||||
className={styles.link}
|
||||
onClick={closeTipHandler}
|
||||
/>
|
||||
),
|
||||
|
|
|
@ -9,6 +9,7 @@ import Tip from '@/assets/images/tip.svg';
|
|||
import Card from '@/components/Card';
|
||||
import IconButton from '@/components/IconButton';
|
||||
import { ToggleTip } from '@/components/Tip';
|
||||
import type { Props as ToggleTipProps } from '@/components/Tip/ToggleTip';
|
||||
import { formatNumberWithComma } from '@/utilities/number';
|
||||
|
||||
import * as styles from './Block.module.scss';
|
||||
|
@ -17,7 +18,7 @@ type Props = {
|
|||
count: number;
|
||||
delta?: number;
|
||||
title: AdminConsoleKey;
|
||||
tip?: AdminConsoleKey;
|
||||
tip?: ToggleTipProps['content'];
|
||||
variant?: 'bordered' | 'default' | 'plain';
|
||||
};
|
||||
|
||||
|
@ -31,7 +32,7 @@ const Block = ({ variant = 'default', count, delta, title, tip }: Props) => {
|
|||
<div className={styles.title}>
|
||||
{t(title)}
|
||||
{tip && (
|
||||
<ToggleTip anchorClassName={styles.toggleTipButton} content={<div>{t(tip)}</div>}>
|
||||
<ToggleTip anchorClassName={styles.toggleTipButton} content={tip}>
|
||||
<IconButton size="small">
|
||||
<Tip />
|
||||
</IconButton>
|
||||
|
|
|
@ -69,18 +69,18 @@ const Dashboard = () => {
|
|||
<div className={styles.blocks}>
|
||||
<Block
|
||||
title="dashboard.total_users"
|
||||
tip="dashboard.total_users_tip"
|
||||
tip={t('dashboard.total_users_tip')}
|
||||
count={totalData.totalUserCount}
|
||||
/>
|
||||
<Block
|
||||
title="dashboard.new_users_today"
|
||||
tip="dashboard.new_users_today_tip"
|
||||
tip={t('dashboard.new_users_today_tip')}
|
||||
count={newData.today.count}
|
||||
delta={newData.today.delta}
|
||||
/>
|
||||
<Block
|
||||
title="dashboard.new_users_7_days"
|
||||
tip="dashboard.new_users_7_days_tip"
|
||||
tip={t('dashboard.new_users_7_days_tip')}
|
||||
count={newData.last7Days.count}
|
||||
delta={newData.last7Days.delta}
|
||||
/>
|
||||
|
@ -88,7 +88,7 @@ const Dashboard = () => {
|
|||
<Card className={styles.activeCard}>
|
||||
<Block
|
||||
title="dashboard.daily_active_users"
|
||||
tip="dashboard.daily_active_users_tip"
|
||||
tip={t('dashboard.daily_active_users_tip')}
|
||||
count={activeData.dau.count}
|
||||
delta={activeData.dau.delta}
|
||||
variant="plain"
|
||||
|
@ -130,14 +130,14 @@ const Dashboard = () => {
|
|||
<div className={styles.blocks}>
|
||||
<Block
|
||||
title="dashboard.weekly_active_users"
|
||||
tip="dashboard.weekly_active_users_tip"
|
||||
tip={t('dashboard.weekly_active_users_tip')}
|
||||
count={activeData.wau.count}
|
||||
delta={activeData.wau.delta}
|
||||
variant="bordered"
|
||||
/>
|
||||
<Block
|
||||
title="dashboard.monthly_active_users"
|
||||
tip="dashboard.monthly_active_users_tip"
|
||||
tip={t('dashboard.monthly_active_users_tip')}
|
||||
count={activeData.mau.count}
|
||||
delta={activeData.mau.delta}
|
||||
variant="bordered"
|
||||
|
|
|
@ -32,7 +32,7 @@ const TermsForm = () => {
|
|||
<FormField
|
||||
isRequired
|
||||
title="sign_in_exp.others.terms_of_use.terms_of_use"
|
||||
tip="sign_in_exp.others.terms_of_use.terms_of_use_tip"
|
||||
tip={t('sign_in_exp.others.terms_of_use.terms_of_use_tip')}
|
||||
>
|
||||
<TextInput
|
||||
{...register('termsOfUse.contentUrl', {
|
||||
|
|
|
@ -138,7 +138,7 @@ const UserSettings = ({ userData, userFormData, isDeleted, onUserUpdated }: Prop
|
|||
<FormField
|
||||
isRequired
|
||||
title="user_details.field_custom_data"
|
||||
tip="user_details.field_custom_data_tip"
|
||||
tip={t('user_details.field_custom_data_tip')}
|
||||
>
|
||||
<CodeEditor language="json" value={value} onChange={onChange} />
|
||||
</FormField>
|
||||
|
|
|
@ -6,7 +6,7 @@ const api_resources = {
|
|||
api_name_placeholder: 'Gib einen API Namen ein',
|
||||
api_identifier: 'API Identifikator',
|
||||
api_identifier_tip:
|
||||
'Der eindeutige Identifikator der API Ressource muss eine absolute URI ohne Fragmentbezeichner (#) sein. Entspricht dem Ressourcen Parameter in OAuth 2.0.',
|
||||
'Der eindeutige Identifikator der API Ressource muss eine absolute URI ohne Fragmentbezeichner (#) sein. Entspricht dem <a>Ressourcen Parameter</a> in OAuth 2.0.',
|
||||
api_resource_created: 'Die API Ressource {{name}} wurde erfolgreich angelegt',
|
||||
api_identifier_placeholder: 'https://dein-api-identifikator/',
|
||||
};
|
||||
|
|
|
@ -13,15 +13,17 @@ const application_details = {
|
|||
description_placeholder: 'Gib eine Beschreibung ein',
|
||||
authorization_endpoint: 'Autorisierungs-Endpoint',
|
||||
authorization_endpoint_tip:
|
||||
'Der Endpoint, der für die Authentifizierung und Autorisierung via OpenID Connect verwendet wird.',
|
||||
'Der Endpoint, der für die Authentifizierung und <a>Autorisierung</a> via OpenID Connect verwendet wird.',
|
||||
application_id: 'App ID',
|
||||
application_id_tip:
|
||||
'The unique application identifier normally generated by Logto. It also stands for “<a>client_id</a>” in OpenID Connect.', // UNTRANSLATED
|
||||
application_secret: 'App Geheimnis',
|
||||
redirect_uri: 'Umleitungs-URI',
|
||||
redirect_uris: 'Umleitungs-URIs',
|
||||
redirect_uri_placeholder: 'https://deine.website.de/app',
|
||||
redirect_uri_placeholder_native: 'io.logto://callback',
|
||||
redirect_uri_tip:
|
||||
'URI zu der der Benutzer nach der Anmeldung (egal ob erfolgreich oder nicht) weitergeleitet wird. See OpenID Connect AuthRequest for more info.',
|
||||
'URI zu der der Benutzer nach der Anmeldung (egal ob erfolgreich oder nicht) weitergeleitet wird. See OpenID Connect <a>AuthRequest</a> for more info.',
|
||||
post_sign_out_redirect_uri: 'Post Sign-out Umleitungs-URI',
|
||||
post_sign_out_redirect_uris: 'Post Sign-out Umleitungs-URIs',
|
||||
post_sign_out_redirect_uri_placeholder: 'https://deine.website.de/home',
|
||||
|
@ -30,7 +32,7 @@ const application_details = {
|
|||
cors_allowed_origins: 'CORS allowed origins',
|
||||
cors_allowed_origins_placeholder: 'https://your.website.de',
|
||||
cors_allowed_origins_tip:
|
||||
'Es sind standardmäßig alle Umleitungs-URI Origins erlaubt. Normalerweise ist dieses Feld nicht erforderlich.',
|
||||
'Es sind standardmäßig alle Umleitungs-URI Origins erlaubt. Normalerweise ist dieses Feld nicht erforderlich. See the <a>MDN doc</a> for detailed info.', // UNTRANSLATED
|
||||
add_another: 'Weitere hinzufügen',
|
||||
id_token_expiration: 'ID Token Ablaufzeit',
|
||||
refresh_token_expiration: 'Refresh Token Ablaufzeit',
|
||||
|
|
|
@ -6,7 +6,7 @@ const api_resources = {
|
|||
api_name_placeholder: 'Enter your API name',
|
||||
api_identifier: 'API identifier',
|
||||
api_identifier_tip:
|
||||
'The unique identifier to the API resource. It must be an absolute URI and has no fragment (#) component. Equals to the resource parameter in OAuth 2.0.',
|
||||
'The unique identifier to the API resource. It must be an absolute URI and has no fragment (#) component. Equals to the <a>resource parameter</a> in OAuth 2.0.',
|
||||
api_resource_created: 'The API resource {{name}} has been successfully created',
|
||||
api_identifier_placeholder: 'https://your-api-identifier/',
|
||||
};
|
||||
|
|
|
@ -13,15 +13,17 @@ const application_details = {
|
|||
description_placeholder: 'Enter your application description',
|
||||
authorization_endpoint: 'Authorization endpoint',
|
||||
authorization_endpoint_tip:
|
||||
"The endpoint to perform authentication and authorization. It's used for OpenID Connect Authentication.",
|
||||
"The endpoint to perform authentication and authorization. It's used for OpenID Connect <a>Authentication</a>.",
|
||||
application_id: 'App ID',
|
||||
application_id_tip:
|
||||
'The unique application identifier normally generated by Logto. It also stands for “<a>client_id</a>” in OpenID Connect.',
|
||||
application_secret: 'App Secret',
|
||||
redirect_uri: 'Redirect URI',
|
||||
redirect_uris: 'Redirect URIs',
|
||||
redirect_uri_placeholder: 'https://your.website.com/app',
|
||||
redirect_uri_placeholder_native: 'io.logto://callback',
|
||||
redirect_uri_tip:
|
||||
'The URI redirects after a user sign-in (whether successful or not). See OpenID Connect AuthRequest for more info.',
|
||||
'The URI redirects after a user sign-in (whether successful or not). See OpenID Connect <a>AuthRequest</a> for more info.',
|
||||
post_sign_out_redirect_uri: 'Post Sign-out Redirect URI',
|
||||
post_sign_out_redirect_uris: 'Post Sign-out Redirect URIs',
|
||||
post_sign_out_redirect_uri_placeholder: 'https://your.website.com/home',
|
||||
|
@ -30,7 +32,7 @@ const application_details = {
|
|||
cors_allowed_origins: 'CORS allowed origins',
|
||||
cors_allowed_origins_placeholder: 'https://your.website.com',
|
||||
cors_allowed_origins_tip:
|
||||
'By default, all the origins of Redirect URIs will be allowed. Usually no action is required for this field.',
|
||||
'By default, all the origins of Redirect URIs will be allowed. Usually no action is required for this field. See the <a>MDN doc</a> for detailed info.',
|
||||
add_another: 'Add Another',
|
||||
id_token_expiration: 'ID Token expiration',
|
||||
refresh_token_expiration: 'Refresh Token expiration',
|
||||
|
|
|
@ -6,7 +6,7 @@ const api_resources = {
|
|||
api_name_placeholder: "Entrez votre nom d'API",
|
||||
api_identifier: 'Identifiant API',
|
||||
api_identifier_tip:
|
||||
"L'identifiant unique de la ressource API. Il doit s'agir d'un URI absolu et ne doit pas comporter de fragment (#). Équivaut au paramètre de ressource dans OAuth 2.0.",
|
||||
"L'identifiant unique de la ressource API. Il doit s'agir d'un URI absolu et ne doit pas comporter de fragment (#). Équivaut au <a>paramètre de ressource</> dans OAuth 2.0.",
|
||||
api_resource_created: 'La ressource API {{name}} a été créée avec succès.',
|
||||
api_identifier_placeholder: 'https://votre-identifiant-api/',
|
||||
};
|
||||
|
|
|
@ -13,15 +13,17 @@ const application_details = {
|
|||
description_placeholder: 'Entrez la description de votre application',
|
||||
authorization_endpoint: 'Authorization endpoint',
|
||||
authorization_endpoint_tip:
|
||||
"Le point de terminaison pour effectuer l'authentification et l'autorisation. Il est utilisé pour l'authentification OpenID Connect.",
|
||||
"Le point de terminaison pour effectuer l'authentification et l'autorisation. Il est utilisé pour <a>l'authentification</a> OpenID Connect.",
|
||||
application_id: 'App ID',
|
||||
application_id_tip:
|
||||
'The unique application identifier normally generated by Logto. It also stands for “<a>client_id</a>” in OpenID Connect.', // UNTRANSLATED
|
||||
application_secret: 'App Secret',
|
||||
redirect_uri: 'Redirect URI',
|
||||
redirect_uris: 'Redirect URIs',
|
||||
redirect_uri_placeholder: 'https://votre.site.com/app',
|
||||
redirect_uri_placeholder_native: 'io.logto://callback',
|
||||
redirect_uri_tip:
|
||||
"L'URI de redirection après la connexion d'un utilisateur (qu'elle soit réussie ou non). Voir OpenID Connect AuthRequest pour plus d'informations.",
|
||||
"L'URI de redirection après la connexion d'un utilisateur (qu'elle soit réussie ou non). Voir OpenID Connect <a>AuthRequest</a> pour plus d'informations.",
|
||||
post_sign_out_redirect_uri: 'URI de redirection post-signature',
|
||||
post_sign_out_redirect_uris: 'URI de redirection après la signature',
|
||||
post_sign_out_redirect_uri_placeholder: 'https://votre.site.com/home',
|
||||
|
@ -30,7 +32,7 @@ const application_details = {
|
|||
cors_allowed_origins: 'Origines CORS autorisées',
|
||||
cors_allowed_origins_placeholder: 'https://votre.site.com',
|
||||
cors_allowed_origins_tip:
|
||||
"Par défaut, toutes les origines des URI de redirection seront autorisées. En général, aucune action n'est requise pour ce champ.",
|
||||
"Par défaut, toutes les origines des URI de redirection seront autorisées. En général, aucune action n'est requise pour ce champ. See the <a>MDN doc</a> for detailed info.", // UNTRANSLATED
|
||||
add_another: 'Ajouter un autre',
|
||||
id_token_expiration: "Expiration du jeton d'identification",
|
||||
refresh_token_expiration: "Rafraîchir l'expiration du jeton",
|
||||
|
|
|
@ -6,7 +6,7 @@ const api_resources = {
|
|||
api_name_placeholder: 'API 이름 입력',
|
||||
api_identifier: 'API 식별자',
|
||||
api_identifier_tip:
|
||||
'API 리소스에 대한 유일한 식별자예요. 반드시, 절대적인 URI 이여야 하며, 프래그먼트 (#) 요소가 없어야해요. OAuth 2.0의 리소스 파라미터와 동일해요.',
|
||||
'The unique identifier to the API resource. It must be an absolute URI and has no fragment (#) component. Equals to the <a>resource parameter</a> in OAuth 2.0.', // UNTRANSLATED
|
||||
api_resource_created: '{{name}} API 리소스가 성공적으로 생성되었어요.',
|
||||
api_identifier_placeholder: 'https://your-api-identifier/',
|
||||
};
|
||||
|
|
|
@ -13,15 +13,17 @@ const application_details = {
|
|||
description_placeholder: '어플리케이션 설명을 적어주세요.',
|
||||
authorization_endpoint: '인증 End-Point',
|
||||
authorization_endpoint_tip:
|
||||
'인증 및 권한 부여를 진행할 End-Point예요. OpenID Connect 인증에서 사용되던 값 이에요.',
|
||||
"The endpoint to perform authentication and authorization. It's used for OpenID Connect <a>Authentication</a>.", // UNTRANSLATED
|
||||
application_id: 'App ID',
|
||||
application_id_tip:
|
||||
'The unique application identifier normally generated by Logto. It also stands for “<a>client_id</a>” in OpenID Connect.', // UNTRANSLATED
|
||||
application_secret: 'App Secret',
|
||||
redirect_uri: 'Redirect URI',
|
||||
redirect_uris: 'Redirect URIs',
|
||||
redirect_uri_placeholder: 'https://your.website.com/app',
|
||||
redirect_uri_placeholder_native: 'io.logto://callback',
|
||||
redirect_uri_tip:
|
||||
'사용자 로그인 이후, 리다이렉트 될 URI 경로예요. 더욱 자세한 정보는 OpenID Connect AuthRequest를 참고해주세요.',
|
||||
'사용자 로그인 이후, 리다이렉트 될 URI 경로예요. 더욱 자세한 정보는 OpenID Connect <a>AuthRequest</a>를 참고해주세요.',
|
||||
post_sign_out_redirect_uri: '로그아웃 이후 Redirect URI',
|
||||
post_sign_out_redirect_uris: '로그아웃 이후 Redirect URIs',
|
||||
post_sign_out_redirect_uri_placeholder: 'https://your.website.com/home',
|
||||
|
@ -30,7 +32,7 @@ const application_details = {
|
|||
cors_allowed_origins: 'CORS Allow Origins',
|
||||
cors_allowed_origins_placeholder: 'https://your.website.com',
|
||||
cors_allowed_origins_tip:
|
||||
'기본으로 모든 리다이렉트의 오리진들은 허용되요. 대체적으로 이 값을 건들 필요는 없어요.',
|
||||
'기본으로 모든 리다이렉트의 오리진들은 허용되요. 대체적으로 이 값을 건들 필요는 없어요. See the <a>MDN doc</a> for detailed info.', // UNTRANSLATED
|
||||
add_another: '새로 추가',
|
||||
id_token_expiration: 'ID 토큰 만료',
|
||||
refresh_token_expiration: 'Refresh 토큰 만료',
|
||||
|
|
|
@ -6,7 +6,7 @@ const api_resources = {
|
|||
api_name_placeholder: 'Digite o nome da sua API',
|
||||
api_identifier: 'Identificador de API',
|
||||
api_identifier_tip:
|
||||
'O identificador exclusivo para o recurso da API. Deve ser um URI absoluto e não tem nenhum componente de fragmento (#). Igual ao parâmetro de recurso em OAuth 2.0.',
|
||||
'O identificador exclusivo para o recurso da API. Deve ser um URI absoluto e não tem nenhum componente de fragmento (#). Igual ao <a>parâmetro de recurso</a> em OAuth 2.0.',
|
||||
api_resource_created: 'O recurso API {{name}} foi criado com sucesso',
|
||||
api_identifier_placeholder: 'https://your-api-identifier/',
|
||||
};
|
||||
|
|
|
@ -13,15 +13,17 @@ const application_details = {
|
|||
description_placeholder: 'Digite a descrição do seu aplicativo',
|
||||
authorization_endpoint: 'Endpoint de autorização',
|
||||
authorization_endpoint_tip:
|
||||
'O endpoint para executar autenticação e autorização. É usado para autenticação OpenID Connect.',
|
||||
'O endpoint para executar autenticação e autorização. É usado para <a>autenticação</a> OpenID Connect.',
|
||||
application_id: 'ID do aplicativo',
|
||||
application_id_tip:
|
||||
'The unique application identifier normally generated by Logto. It also stands for “<a>client_id</a>” in OpenID Connect.', // UNTRANSLATED
|
||||
application_secret: 'Secret do aplicativo',
|
||||
redirect_uri: 'URI de redirecionamento',
|
||||
redirect_uris: 'URIs de redirecionamento',
|
||||
redirect_uri_placeholder: 'https://your.website.com/app',
|
||||
redirect_uri_placeholder_native: 'io.logto://callback',
|
||||
redirect_uri_tip:
|
||||
'O URI é redirecionado após o login do usuário (seja bem-sucedido ou não). Consulte OpenID Connect AuthRequest para obter mais informações.',
|
||||
'O URI é redirecionado após o login do usuário (seja bem-sucedido ou não). Consulte OpenID Connect <a>AuthRequest</a> para obter mais informações.',
|
||||
post_sign_out_redirect_uri: 'URI de redirecionamento Post Sign-out',
|
||||
post_sign_out_redirect_uris: 'URIs de redirecionamento Post Sign-out',
|
||||
post_sign_out_redirect_uri_placeholder: 'https://your.website.com/home',
|
||||
|
@ -30,7 +32,7 @@ const application_details = {
|
|||
cors_allowed_origins: 'Origens permitidas pelo CORS',
|
||||
cors_allowed_origins_placeholder: 'https://your.website.com',
|
||||
cors_allowed_origins_tip:
|
||||
'Por padrão, todas as origens de URIs de redirecionamento serão permitidas. Normalmente, nenhuma ação é necessária para este campo.',
|
||||
'Por padrão, todas as origens de URIs de redirecionamento serão permitidas. Normalmente, nenhuma ação é necessária para este campo. See the <a>MDN doc</a> for detailed info.', // UNTRANSLATED
|
||||
add_another: 'Adicionar outro',
|
||||
id_token_expiration: 'Expiração do token de ID',
|
||||
refresh_token_expiration: 'Expiração Refresh Token',
|
||||
|
|
|
@ -6,7 +6,7 @@ const api_resources = {
|
|||
api_name_placeholder: 'Introduza o nome da sua API',
|
||||
api_identifier: 'identificador da API',
|
||||
api_identifier_tip:
|
||||
'O identificador exclusivo para o recurso API. Deve ser um URI absoluto e não tem componente de fragmento (#). Igual ao resource parameter no OAuth 2.0.',
|
||||
'O identificador exclusivo para o recurso API. Deve ser um URI absoluto e não tem componente de fragmento (#). Igual ao <a>resource parameter</a> no OAuth 2.0.',
|
||||
api_resource_created: 'O recurso API {{name}} foi criado com sucesso',
|
||||
api_identifier_placeholder: 'https://your-api-identifier/',
|
||||
};
|
||||
|
|
|
@ -13,15 +13,17 @@ const application_details = {
|
|||
description_placeholder: 'Insira a descrição da sua aplicação',
|
||||
authorization_endpoint: 'Endpoint de autorização',
|
||||
authorization_endpoint_tip:
|
||||
'O endpoint para realizar autenticação e autorização. É usado para autenticação OpenID Connect.',
|
||||
'O endpoint para realizar autenticação e autorização. É usado para <a>autenticação</a> OpenID Connect.',
|
||||
application_id: 'ID da aplicação',
|
||||
application_id_tip:
|
||||
'The unique application identifier normally generated by Logto. It also stands for “<a>client_id</a>” in OpenID Connect.', // UNTRANSLATED
|
||||
application_secret: 'Segredo da aplicação',
|
||||
redirect_uri: 'URI de redirecionamento',
|
||||
redirect_uris: 'URIs de redirecionamento',
|
||||
redirect_uri_placeholder: 'https://your.website.com/app',
|
||||
redirect_uri_placeholder_native: 'io.logto://callback',
|
||||
redirect_uri_tip:
|
||||
'O URI redireciona após o login de um utilizador (com êxito ou não). Consulte OpenID Connect AuthRequest para obter mais informações.',
|
||||
'O URI redireciona após o login de um utilizador (com êxito ou não). Consulte OpenID Connect <a>AuthRequest</a> para obter mais informações.',
|
||||
post_sign_out_redirect_uri: 'URI de redirecionamento pós-logout',
|
||||
post_sign_out_redirect_uris: 'URIs de redirecionamento pós-logout',
|
||||
post_sign_out_redirect_uri_placeholder: 'https://your.website.com/home',
|
||||
|
@ -30,7 +32,7 @@ const application_details = {
|
|||
cors_allowed_origins: 'origens permitidas CORS',
|
||||
cors_allowed_origins_placeholder: 'https://your.website.com',
|
||||
cors_allowed_origins_tip:
|
||||
'Por padrão, todas as origens de redirecionamento serão permitidas. Recomenda-se restringir isto.',
|
||||
'Por padrão, todas as origens de redirecionamento serão permitidas. Recomenda-se restringir isto. See the <a>MDN doc</a> for detailed info.', // UNTRANSLATED
|
||||
add_another: 'Adicionar outro',
|
||||
id_token_expiration: 'Expiração do token de ID',
|
||||
refresh_token_expiration: 'Expiração do token de atualização',
|
||||
|
|
|
@ -6,7 +6,7 @@ const api_resources = {
|
|||
api_name_placeholder: 'API adını giriniz',
|
||||
api_identifier: 'API belirteci',
|
||||
api_identifier_tip:
|
||||
'Api kaynağına özgün belirteç. Mutlak URI olmalı ve parça bileşeni (#) içermemeli. OAuth 2.0deki kaynak parametresine eşittir.',
|
||||
'Api kaynağına özgün belirteç. Mutlak URI olmalı ve parça bileşeni (#) içermemeli. OAuth 2.0deki <a>kaynak parametresine</a> eşittir.',
|
||||
api_resource_created: '{{name}} API kaynağı başarıyla oluşturuldu',
|
||||
api_identifier_placeholder: 'https://your-api-identifier/',
|
||||
};
|
||||
|
|
|
@ -13,15 +13,17 @@ const application_details = {
|
|||
description_placeholder: 'Uygulama açıklamasını giriniz',
|
||||
authorization_endpoint: 'Yetkilendirme bitiş noktası',
|
||||
authorization_endpoint_tip:
|
||||
'Kimlik doğrulama ve yetkilendirme gerçekleştirmek için bitiş noktası. OpenID Connect Authentication için kullanılır.',
|
||||
'Kimlik doğrulama ve yetkilendirme gerçekleştirmek için bitiş noktası. OpenID Connect <a>Authentication</a> için kullanılır.',
|
||||
application_id: 'Uygulama IDsi',
|
||||
application_id_tip:
|
||||
'The unique application identifier normally generated by Logto. It also stands for “<a>client_id</a>” in OpenID Connect.', // UNTRANSLATED
|
||||
application_secret: 'Uygulama Sırrı',
|
||||
redirect_uri: 'Yönlendirme URIı',
|
||||
redirect_uris: 'Yönlendirme URIları',
|
||||
redirect_uri_placeholder: 'https://your.website.com/app',
|
||||
redirect_uri_placeholder_native: 'io.logto://callback',
|
||||
redirect_uri_tip:
|
||||
'URI kullanıcı oturum açma işlemiden sonra yönlendirir (Başarılı olsa da olmasa da). Detaylı bilgi için OpenID Connect AuthRequesta bakınız.',
|
||||
'URI kullanıcı oturum açma işlemiden sonra yönlendirir (Başarılı olsa da olmasa da). Detaylı bilgi için OpenID Connect <a>AuthRequesta</a> bakınız.',
|
||||
post_sign_out_redirect_uri: 'Oturumdan Çıkış sonrası yönlendirme URIı',
|
||||
post_sign_out_redirect_uris: 'Oturumdan Çıkış sonrası yönlendirme URIları',
|
||||
post_sign_out_redirect_uri_placeholder: 'https://your.website.com/home',
|
||||
|
@ -30,7 +32,7 @@ const application_details = {
|
|||
cors_allowed_origins: 'CORS izinli originler',
|
||||
cors_allowed_origins_placeholder: 'https://your.website.com',
|
||||
cors_allowed_origins_tip:
|
||||
'Varsayılan olarak, Yönlendirme URIlerinin tüm originlerine izin verilir. Genellikle bu alan için herhangi bir işlem gerekmez.',
|
||||
'Varsayılan olarak, Yönlendirme URIlerinin tüm originlerine izin verilir. Genellikle bu alan için herhangi bir işlem gerekmez. See the <a>MDN doc</a> for detailed info.', // UNTRANSLATED
|
||||
add_another: 'Bir tane daha ekle',
|
||||
id_token_expiration: 'ID Token sona erme süresi',
|
||||
refresh_token_expiration: 'Refresh Token sona erme süresi',
|
||||
|
|
|
@ -7,7 +7,7 @@ const api_resources = {
|
|||
api_identifier: 'API Identifier',
|
||||
api_identifier_placeholder: 'https://your-api-identifier/',
|
||||
api_identifier_tip:
|
||||
'对于 API 资源的唯一标识符。它必须是一个绝对 URI 并没有 fragment (#) 组件。等价于 OAuth 2.0 中的 resource parameter。',
|
||||
'对于 API 资源的唯一标识符。它必须是一个绝对 URI 并没有 fragment (#) 组件。等价于 OAuth 2.0 中的 <a>resource parameter</a>。',
|
||||
api_resource_created: ' API 资源 {{name}} 已成功创建!',
|
||||
};
|
||||
|
||||
|
|
|
@ -12,15 +12,18 @@ const application_details = {
|
|||
description: '描述',
|
||||
description_placeholder: '请输入应用描述',
|
||||
authorization_endpoint: 'Authorization Endpoint',
|
||||
authorization_endpoint_tip: '进行鉴权与授权的端点 endpoint。用于 OpenID Connect 中的鉴权流程。',
|
||||
authorization_endpoint_tip:
|
||||
'进行鉴权与授权的端点 endpoint。用于 OpenID Connect 中的 <a>鉴权</a> 流程。',
|
||||
application_id: 'App ID',
|
||||
application_id_tip:
|
||||
'应用的唯一标识,通常由 Logto 生成。等价于 OpenID Connect 中的 <a>client_id</a>。',
|
||||
application_secret: 'App Secret',
|
||||
redirect_uri: 'Redirect URI',
|
||||
redirect_uris: 'Redirect URIs',
|
||||
redirect_uri_placeholder: 'https://your.website.com/app',
|
||||
redirect_uri_placeholder_native: 'io.logto://callback',
|
||||
redirect_uri_tip:
|
||||
'在用户登录完成(不论成功与否)后重定向的目标 URI。参见 OpenID Connect AuthRequest 以了解更多。',
|
||||
'在用户登录完成(不论成功与否)后重定向的目标 URI。参见 OpenID Connect <a>AuthRequest</a> 以了解更多。',
|
||||
post_sign_out_redirect_uri: 'Post Sign-out Redirect URI',
|
||||
post_sign_out_redirect_uris: 'Post sign out redirect URIs',
|
||||
post_sign_out_redirect_uri_placeholder: 'https://your.website.com/home',
|
||||
|
@ -29,7 +32,7 @@ const application_details = {
|
|||
cors_allowed_origins: 'CORS Allowed Origins',
|
||||
cors_allowed_origins_placeholder: 'https://your.website.com',
|
||||
cors_allowed_origins_tip:
|
||||
'所有 Redirect URI 的 origin 将默认被允许。通常不需要对此字段进行操作。',
|
||||
'所有 Redirect URI 的 origin 将默认被允许。通常不需要对此字段进行操作。参见 <a>MDN 文档</a>以了解更多',
|
||||
add_another: '新增',
|
||||
id_token_expiration: 'ID Token 过期时间',
|
||||
refresh_token_expiration: 'Refresh Token 过期时间',
|
||||
|
|
Loading…
Reference in a new issue