0
Fork 0
mirror of https://github.com/logto-io/logto.git synced 2025-03-24 22:41:28 -05:00

chore(phrases): add translation ko_KR (#1677)

chore(connector): add translation ko_KR

chore(phrases): add translation ko_KR

test: add mock translation for ko_KR

Update packages/phrases-ui/src/locales/ko-kr.ts

Co-authored-by: Charles Zhao <charleszhao@silverhand.io>

Update packages/phrases-ui/src/locales/ko-kr.ts

Co-authored-by: Charles Zhao <charleszhao@silverhand.io>

chore(phrases): update translation ko_KR

chore(phrases): edit translation ko_KR, make more friendly

chore(phrases): fix typo

chore(phrases): make translation smooth ko_KR

chore(phrases): edit translation ko_KR

chore(console): add translation ko_KR

chore(phrases): add korean language for login ui
This commit is contained in:
Kyungyoon Kim 2022-07-30 23:48:50 +09:00 committed by GitHub
parent 411a8c2fa2
commit d1900e1854
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
50 changed files with 864 additions and 0 deletions

View file

@ -24,6 +24,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'Alipay',
'zh-CN': '支付宝',
'tr-TR': 'Alipay',
'ko-KR': 'Alipay',
},
logo: './logo.svg',
logoDark: null,
@ -31,6 +32,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'Alipay is a third-party mobile and online payment platform.',
'zh-CN': '支付宝是一个第三方支付平台。',
'tr-TR': 'Alipay, üçüncü şahıslara ait bir mobil ve çevrimiçi ödeme platformudur.',
'ko-KR': 'Alipay는 서드파티 모바일 및 온라인 결제 플랫폼 입니다.',
},
readme: './README.md',
configTemplate: './docs/config-template.json',

View file

@ -27,6 +27,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'Alipay',
'zh-CN': '支付宝',
'tr-TR': 'Alipay',
'ko-KR': 'Alipay',
},
logo: './logo.svg',
logoDark: null,
@ -34,6 +35,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'Alipay is a third-party mobile and online payment platform.',
'zh-CN': '支付宝是一个第三方支付平台。',
'tr-TR': 'Alipay, üçüncü şahıslara ait bir mobil ve çevrimiçi ödeme platformudur.',
'ko-KR': 'Alipay는 서드파티 모바일 및 온라인 결제 플랫폼 입니다.',
},
readme: './README.md',
configTemplate: './docs/config-template.json',

View file

@ -18,6 +18,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'Aliyun Direct Mail',
'zh-CN': '阿里云邮件推送',
'tr-TR': 'Aliyun Direct Mail',
'ko-KR': 'Aliyun 다이렉트 메일',
},
logo: './logo.svg',
logoDark: null,
@ -25,6 +26,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'Aliyun provides cloud computing services to online businesses.',
'zh-CN': '阿里云是全球性的云服务提供商。',
'tr-TR': 'Aliyun, çevrimiçi işletmelere bulut bilişim hizmetleri sunmaktadır.',
'ko-KR': 'Aliyun는 온라인 비지니스를 위해 클라우딩 컴퓨팅 서비스를 제공합니다.',
},
readme: './README.md',
configTemplate: './docs/config-template.json',

View file

@ -34,6 +34,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'Aliyun Short Message Service',
'zh-CN': '阿里云短信服务',
'tr-TR': 'Aliyun SMS Servisi',
'ko-KR': 'Aliyun Short 메세지 서비스',
},
logo: './logo.svg',
logoDark: null,
@ -41,6 +42,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'Aliyun provides cloud computing services to online businesses.',
'zh-CN': '阿里云是全球性的云服务提供商。',
'tr-TR': 'Aliyun, çevrimiçi işletmelere bulut bilişim hizmetleri sunmaktadır.',
'ko-KR': 'Aliyun는 온라인 비지니스를 위해 클라우딩 컴퓨팅 서비스를 제공합니다.',
},
readme: './README.md',
configTemplate: './docs/config-template.json',

View file

@ -18,6 +18,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'Apple',
'zh-CN': 'Apple',
'tr-TR': 'Apple',
'ko-KR': 'Apple',
},
logo: './logo.svg',
logoDark: './logo-dark.svg',
@ -25,6 +26,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'Apple is a multinational high-end provider of hardware and software.',
'zh-CN': 'Apple 是全球领先的高端消费者软硬件提供商。',
'tr-TR': 'Apple, çok uluslu bir üst düzey donanım ve yazılım sağlayıcısıdır.',
'ko-KR': 'Apple은 하드웨어와 소프트웨어의 다국적 공급자 입니다.',
},
readme: './README.md',
configTemplate: './docs/config-template.json',

View file

@ -12,6 +12,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'Azure Active Directory',
'zh-CN': 'Azure Active Directory',
'tr-TR': 'Azure Active Directory',
'ko-KR': 'Azure Active Directory',
},
logo: './logo.svg',
logoDark: null,
@ -19,6 +20,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'Azure Active Directory is the biggest AD provider.',
'zh-CN': 'Azure Active Directory is the biggest AD provider.',
'tr-TR': 'Azure Active Directory en büyük AD servisidir.',
'ko-KR': 'Azure Active Directory is the biggest AD provider.',
},
readme: './README.md',
configTemplate: './docs/config-template.json',

View file

@ -23,6 +23,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'Facebook',
'zh-CN': 'Facebook',
'tr-TR': 'Facebook',
'ko-KR': 'Facebook',
},
logo: './logo.svg',
logoDark: null,
@ -30,6 +31,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'Facebook is a worldwide social media platform with the most active users.',
'zh-CN': 'Facebook 是世界使用人数最多的社交平台。',
'tr-TR': 'Facebook, en aktif kullanıcılara sahip dünya çapında bir sosyal medya platformudur.',
'ko-KR': '페이스북은 가장 활동적인 사용자를 가진 세계적인 소셜 미디어 플랫폼입니다.',
},
readme: './README.md',
configTemplate: './docs/config-template.json',

View file

@ -14,6 +14,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'GitHub',
'zh-CN': 'GitHub',
'tr-TR': 'GitHub',
'ko-KR': 'GitHub',
},
logo: './logo.svg',
logoDark: './logo-dark.svg',
@ -21,6 +22,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'GitHub is an online community for software development and version control.',
'zh-CN': 'GitHub 是全球最大的代码托管仓库。',
'tr-TR': 'GitHub, yazılım geliştirme ve sürüm kontrolü için çevrimiçi bir topluluktur.',
'ko-KR': 'GitHub는 소프트웨어 개발과 버전 관리를 위한 온라인 커뮤니티입니다.',
},
readme: './README.md',
configTemplate: './docs/config-template.json',

View file

@ -14,6 +14,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'Google',
'zh-CN': 'Google',
'tr-TR': 'Google',
'ko-KR': 'Google',
},
logo: './logo.svg',
logoDark: null,
@ -21,6 +22,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'Google is the biggest search engine technology and email service provider.',
'zh-CN': 'Google 是全球最大的搜索引擎和邮件服务提供商。',
'tr-TR': 'Google, en büyük arama motoru teknolojisi ve e-posta servis sağlayıcısıdır.',
'ko-KR': 'Google은 가장 큰 검색 엔진 기술과 이메일 서비스 제공자입니다.',
},
readme: './README.md',
configTemplate: './docs/config-template.json',

View file

@ -9,6 +9,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'Mock Mail Service',
'zh-CN': 'Mock 邮件服务',
'tr-TR': 'Mock Mail Servis',
'ko-KR': 'Mock Mail Service',
},
logo: './logo.svg',
logoDark: null,
@ -16,6 +17,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'The description of Mock Mail Service.',
'zh-CN': 'Mock 邮件服务的描述。',
'tr-TR': 'Mock Mail Servis açıklaması.',
'ko-KR': 'The description of Mock SMS Service.',
},
readme: './README.md',
configTemplate: './docs/config-template.json',

View file

@ -9,6 +9,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'Mock SMS Service',
'zh-CN': 'Mock 短信服务',
'tr-TR': 'Mock SMS Servis',
'ko-KR': 'Mock SMS Service',
},
logo: './logo.svg',
logoDark: null,
@ -16,6 +17,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'The description of Mock SMS Service.',
'zh-CN': 'Mock 短信服务的描述。',
'tr-TR': 'Mock SMS Servis açıklaması.',
'ko-KR': 'The description of Mock SMS Service.',
},
readme: './README.md',
configTemplate: './docs/config-template.json',

View file

@ -11,6 +11,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'SendGrid Mail Service',
'zh-CN': 'SendGrid 邮件服务',
'tr-TR': 'SendGrid EMail Servisi',
'ko-KR': 'SendGrid 메일 서비스',
},
logo: './logo.svg',
logoDark: null,
@ -18,6 +19,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'SendGrid is a communication platform for transactional and marketing email.',
'zh-CN': 'SendGrid 是一个面向消费者的邮件通讯平台。',
'tr-TR': 'SendGrid, operasyonel ve pazarlama e- postaları için bir iletişim platformudur.',
'ko-KR': 'SendGrids는 마케팅 및 이메일을 전송할 수 있는 플랫폼 입니다.',
},
readme: './README.md',
configTemplate: './docs/config-template.json',

View file

@ -9,6 +9,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'SMTP',
'zh-CN': 'SMTP',
'tr-TR': 'SMTP',
'ko-KR': 'SMTP',
},
logo: './logo.svg',
logoDark: null,
@ -16,6 +17,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'The SMTP is an internet standard communication protocol for electronic mail transmission.',
'zh-CN': 'SMTP 是简单邮件通讯协议的缩写,可对接所有邮件服务提供商。',
'tr-TR': 'SMTP, elektronik posta iletimi için internet standart iletişim protokolüdür.',
'ko-KR': 'SMTP는 이메일 전송을 위한 표준 통신 규약 입니다.',
},
readme: './README.md',
configTemplate: './docs/config-template.json',

View file

@ -11,6 +11,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'Twilio SMS Service',
'zh-CN': 'Twilio 短信服务',
'tr-TR': 'Twilio SMS Servisi',
'ko-KR': 'Twilio SMS 서비스',
},
logo: './logo.svg',
logoDark: null,
@ -19,6 +20,7 @@ export const defaultMetadata: ConnectorMetadata = {
'zh-CN': 'Twilio 是一个提供面向消费者的可编程通讯服务的平台。',
'tr-TR':
'Twilio, telefon görüşmeleri ve mesajlar için programlanabilir iletişim araçları sağlar.',
'ko-KR': 'Twilio는 전화 및 SMS을 할 수 있도록 개발자 도구를 제공합니다.',
},
readme: './README.md',
configTemplate: './docs/config-template.json',

View file

@ -19,6 +19,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'WeChat',
'zh-CN': '微信',
'tr-TR': 'WeChat',
'ko-KR': 'WeChat',
},
logo: './logo.svg',
logoDark: null,
@ -26,6 +27,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'WeChat is a cross-platform instant messaging app.',
'zh-CN': '微信是一款跨平台的即时通讯软件。',
'tr-TR': 'WeChat, çoklu platformda kullanılabilen bir anlık mesajlaşma uygulamasıdır.',
'ko-KR': 'WeChat은 크로스 플랫폼 메시징 앱입니다.',
},
readme: './README.md',
configTemplate: './docs/config-template.json',

View file

@ -19,6 +19,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'WeChat',
'zh-CN': '微信',
'tr-TR': 'WeChat',
'ko-KR': 'WeChat',
},
logo: './logo.svg',
logoDark: null,
@ -26,6 +27,7 @@ export const defaultMetadata: ConnectorMetadata = {
en: 'WeChat is a cross-platform instant messaging app.',
'zh-CN': '微信是一款跨平台的即时通讯软件。',
'tr-TR': 'WeChat, çoklu platformda kullanılabilen bir anlık mesajlaşma uygulamasıdır.',
'ko-KR': 'WeChat은 크로스 플랫폼 메시징 앱입니다.',
},
readme: './README.md',
configTemplate: './docs/config-template.json',

View file

@ -65,6 +65,7 @@ const UserConnectors = ({ userId, connectors, onDelete }: Props) => {
'zh-CN': '未知连接器',
en: 'Unknown Connector',
'tr-TR': 'Bilinmeyen connector.',
'ko-KR': '알수없는 연동',
},
target: key,
userId: connectors[key]?.userId,

View file

@ -10,6 +10,7 @@ export const mockMetadata: ConnectorMetadata = {
en: 'Connector',
'zh-CN': '连接器',
'tr-TR': 'Connector',
'ko-KR': 'Connector',
},
logo: './logo.png',
logoDark: './logo-dark.png',
@ -17,6 +18,7 @@ export const mockMetadata: ConnectorMetadata = {
en: 'Connector',
'zh-CN': '连接器',
'tr-TR': 'Connector',
'ko-KR': 'Connector',
},
readme: 'README.md',
configTemplate: 'config-template.json',

View file

@ -1,6 +1,7 @@
import { NormalizeKeyPaths } from '@silverhand/essentials';
import en from './locales/en';
import koKR from './locales/ko-kr';
import trTR from './locales/tr-tr';
import zhCN from './locales/zh-cn';
import { Resource, Language } from './types';
@ -12,6 +13,7 @@ export type I18nKey = NormalizeKeyPaths<typeof en.translation>;
const resource: Resource = {
[Language.English]: en,
[Language.Chinese]: zhCN,
[Language.Korean]: koKR,
[Language.Turkish]: trTR,
};

View file

@ -0,0 +1,75 @@
const translation = {
input: {
username: '사용자 이름',
password: '비밀번호',
email: '이메일',
phone_number: '휴대전화번호',
confirm_password: '비밀번호 확인',
},
secondary: {
sign_in_with: '{{methods, list(type: disjunction;)}} 로그인',
social_bind_with:
'이미 계정이 있으신가요? {{methods, list(type: disjunction;)}}로 로그인 해보세요!',
},
action: {
sign_in: '로그인',
continue: '계속',
create_account: '계정 생성',
create: '생성',
enter_passcode: '비밀번호 입력',
confirm: '확인',
cancel: '취소',
bind: '{{address}}로 연동',
back: '뒤로 가기',
nav_back: '뒤로',
agree: '동의',
got_it: '알겠습니다',
sign_in_with: '{{name}} 로그인',
},
description: {
email: '이메일',
phone_number: '휴대전화번호',
reminder: '리마인더',
not_found: '404 찾을 수 없음',
agree_with_terms: '나는 내용을 읽었으며, 이에 동의합니다.',
agree_with_terms_modal: '진행하기 위해서는, 다음을 동의해주세요 <link></link>.',
terms_of_use: '이용약관',
create_account: '계정 생성',
forgot_password: '비밀번호를 잊어버리셨나요?',
or: '또는',
enter_passcode: '{{address}} 으로 비밀번호가 전송되었어요.',
passcode_sent: '비밀번호가 재전송 되었습니다.',
resend_after_seconds: '<span>{{seconds}}</span> 초 후에 재전송',
resend_passcode: '비밀번호 재전송',
continue_with: '계속하기',
create_account_id_exists: '{{type}} {{value}} 계정이 이미 존재해요. 로그인하시겠어요?',
sign_in_id_does_not_exists: '{type}} {{value}} 계정이 존재하지 않아요. 새로 만드시겠어요?',
bind_account_title: '계정 연동',
social_create_account: '계정이 없으신가요? 새로운 계정을 만들고 연동해보세요.',
social_bind_account: '계정이 이미 있으신가요? 로그인하여 다른 계정과 연동해보세요.',
social_bind_with_existing: '관련된 계정을 찾았어요. 해당 계정과 연동할 수 있습니다.',
},
error: {
username_password_mismatch: '사용자 이름 또는 비밀번호가 일치하지 않아요.',
username_required: '사용자 이름은 필수예요.',
password_required: '비밀번호는 필수예요.',
username_exists: '사용자 이름이 이미 존재해요.',
username_should_not_start_with_number: '사용자 이름은 숫자로 시작하면 안되요.',
username_valid_charset: '사용자 이름은 문자, 숫자, _(밑줄 문자) 로만 이루어져야해요.',
invalid_email: '이메일이 유효하지 않아요.',
invalid_phone: '휴대전화번호가 유효하지 않아요.',
password_min_length: '비밀번호는 최소 {{min}} 자리로 이루어져야해요.',
passwords_do_not_match: '비밀번호가 일치하지 않아요.',
invalid_passcode: '비밀번호가 유효하지 않아요.',
invalid_connector_auth: '인증이 유효하지 않아요.',
invalid_connector_request: '연동 정보가 유효하지 않아요.',
unknown: '알 수 없는 오류가 발생했어요. 잠시 후에 시도해주세요.',
invalid_session: '세션을 찾을 수 없어요. 다시 로그인을 해주세요.',
},
};
const koKR = Object.freeze({
translation,
});
export default koKR;

View file

@ -9,10 +9,12 @@ export enum Language {
English = 'en',
Chinese = 'zh-CN',
Turkish = 'tr-TR',
Korean = 'ko-KR',
}
export const languageOptions = [
{ value: Language.English, title: 'English' },
{ value: Language.Chinese, title: '中文' },
{ value: Language.Turkish, title: 'Turkish' },
{ value: Language.Korean, title: '한국어' },
];

View file

@ -1,6 +1,7 @@
import { NormalizeKeyPaths } from '@silverhand/essentials';
import en from './locales/en';
import koKR from './locales/ko-kr';
import trTR from './locales/tr-tr';
import zhCN from './locales/zh-cn';
import { Resource, Language } from './types';
@ -16,6 +17,7 @@ export type AdminConsoleKey = NormalizeKeyPaths<typeof en.translation.admin_cons
const resource: Resource = {
[Language.English]: en,
[Language.Chinese]: zhCN,
[Language.Korean]: koKR,
[Language.Turkish]: trTR,
};

View file

@ -0,0 +1,107 @@
const errors = {
auth: {
authorization_header_missing: '인증 헤더가 존재하지 않아요.',
authorization_token_type_not_supported: '해당 인증 방법을 지원하지 않아요.',
unauthorized: '인증되지 않았어요. 로그인 정보와 범위를 확인해주세요.',
forbidden: '접근이 금지되었어요. 로그인 권한와 직책을 확인해주세요.',
jwt_sub_missing: 'JWT에서 `sub`를 찾을 수 없어요.',
},
guard: {
invalid_input: '{{type}} 요청 타입은 유효하지 않아요.',
invalid_pagination: '요청의 Pagination 값이 유효하지 않아요.',
},
oidc: {
aborted: 'End 사용자가 상호 작용을 중단했어요.',
invalid_scope: '{{scope}} 범위를 지원하지 않아요.',
invalid_scope_plural: '{{scopes}} 범위들을 지원하지 않아요.',
invalid_token: '유요하지 않은 토큰이 제공되었어요.',
invalid_client_metadata: '유효하지 않은 클라이언트 메타데이터가 제공되었어요.',
insufficient_scope: '요청된 {{scopes}} 범위에서 Access 토큰을 찾을 수 없어요.',
invalid_request: '요청이 유효하지 않아요.',
invalid_grant: '승인 요청이 유효하지 않아요.',
invalid_redirect_uri: '`redirect_uri`가 등록된 클라이언트의 `redirect_uris`와 일치하지 않아요.',
access_denied: '접근이 금지되었어요.',
invalid_target: '유요하지 않은 리소스 표시에요..',
unsupported_grant_type: '지원하지 않는 `grant_type` 요청이에요.',
unsupported_response_mode: '지원하지 않는 `response_mode` 요청이에요.',
unsupported_response_type: '지원하지 않은 `response_type` 요청이에요.',
provider_error: 'OIDC 내부 오류: {{message}}.',
},
user: {
username_exists_register: '사용자 이름이 이미 등록되있어요.',
email_exists_register: '이메일이 이미 등록되있어요.',
phone_exists_register: '휴대전화번호가 이미 등록되있어요.',
invalid_email: '유효하지 않은 이메일이예요.',
invalid_phone: '유효하지 않은 휴대전화번호에요',
email_not_exists: '이메일 주소가 아직 등록되지 않았어요.',
phone_not_exists: '휴대전화번호가 아직 등록되지 않았어요.',
identity_not_exists: '소셜 계정이 아직 등록되지 않았어요.',
identity_exists: '소셜 계정이 이미 등록되있어요.',
invalid_role_names: '직책 명({{roleNames}})이 유효하지 않아요.',
},
password: {
unsupported_encryption_method: '{{name}} 암호화 방법을 지원하지 않아요.',
pepper_not_found: '비밀번호 Pepper를 찾을 수 없어요. Core 환경설정을 확인해주세요.',
},
session: {
not_found: '세션을 찾을 수 없어요. 다시 로그인해주세요.',
invalid_credentials: '유효하지 않은 로그인 정보예요. 입력된 값을 다시 확인해주세요.',
invalid_sign_in_method: '현재 로그인 방법을 지원하지 않아요.',
invalid_connector_id: '소셜 ID {{connectorId}}를 찾을 수 없어요..',
insufficient_info: '로그인 정보가 충분하지 않아요.',
connector_id_mismatch: '연동 ID가 세션 정보와 일치하지 않아요.',
connector_session_not_found: '연동 세션을 찾을 수 없어요. 다시 로그인해주세요.',
unauthorized: '로그인을 먼저 해주세요.',
unsupported_prompt_name: '지원하지 않는 Prompt 이름이예요.',
},
connector: {
general: '연동 중에 알 수 없는 오류가 발생했어요. {{errorDescription}}',
not_found: '{{type}} 값을 가진 연동 종류를 찾을 수 없어요.',
not_enabled: '연동이 활성화 되지 않았어요.',
insufficient_request_parameters: '요청 데이터에서 일부 정보가 없어요.',
invalid_config: '연동 설정이 유효하지 않아요.',
invalid_response: '연동 응답이 유효하지 않아요.',
template_not_found: '연동 예제 설정을 찾을 수 없어요.',
not_implemented: '{{method}}은 아직 구현되지 않았어요.',
invalid_access_token: '연동 서비스의 Access 토큰이 유효하지 않아요.',
invalid_auth_code: '연동 서비스의 Auth 코드가 유효하지 않아요.',
invalid_id_token: '연동 서비스의 ID 토큰이 유효하지 않아요.',
authorization_failed: '사용자의 인증 과정이 성공적으로 마무리되지 않았어요.',
oauth_code_invalid: 'Access 토큰을 가져올 수 없어요. Authorization 코드를 확인해주세요.',
more_than_one_sms: '연동된 SMS 서비스가 1개 이상이여야 해요.',
more_than_one_email: '연동된 이메일 서비스가 1개 이상이여야 해요.',
db_connector_type_mismatch: '종류가 일치하지 않은 연동 서비스가 DB에 존재해요.',
},
passcode: {
phone_email_empty: '휴대전화번호 그리고 이메일이 비어있어요.',
not_found: '비밀번호를 찾을 수 없어요. 비밀번호를 먼저 보내주세요.',
phone_mismatch: '휴대전화번호가 일치하지 않아요. 새로운 비밀번호를 요청해주세요.',
email_mismatch: '이메일이 일치하지 않아요. 새로운 비밀번호를 요청해주세요.',
code_mismatch: '비밀번호가 유효하지 않아요.',
expired: '비밀번호가 만료되었어요. 새로운 비밀번호를 요청해주세요.',
exceed_max_try: '해당 비밀번호는 인증 횟수를 초과하였어요. 새로운 비밀번호를 요청해주세요.',
},
sign_in_experiences: {
empty_content_url_of_terms_of_use:
'이용약관 URL이 비어있어요. 이용약관이 활성화되어있다면, 이용약관 URL를 설정해주세요.',
empty_logo: '로고 URL을 입력해주세요.',
empty_slogan: '브랜딩 슬로건이 비어있어요. 슬로건을 사용한다면, 내용을 설정해주세요.',
empty_social_connectors: '연동된 소셜이 없어요. 소셜 로그인을 사용한다면, 연동해주세요.',
enabled_connector_not_found: '활성된 {{type}} 연동을 찾을 수 없어요.',
not_one_and_only_one_primary_sign_in_method:
'반드시 하나의 메인 로그인 방법이 설정되어야 해요. 입력된 값을 확인해주세요.',
},
swagger: {
invalid_zod_type: '유요하지 않은 Zod 종류에요. Route Guard 설정을 확인해주세요.',
not_supported_zod_type_for_params:
'지원되지 않는 Zod 종류예요. Route Guard 설정을 확인해주세요.',
},
entity: {
create_failed: '{{name}} 생성을 실패하였어요..',
not_exists: '{{name}}는 존재하지 않아요.',
not_exists_with_id: '{{id}} ID를 가진 {{name}}는 존재하지 않아요.',
not_found: '리소스가 존재하지 않아요.',
},
};
export default errors;

View file

@ -0,0 +1,9 @@
import errors from './errors';
import translation from './translation';
const koKR = Object.freeze({
translation,
errors,
});
export default koKR;

View file

@ -0,0 +1,11 @@
const api_resource_details = {
back_to_api_resources: 'API 리소스로 돌아가기',
token_expiration_time_in_seconds: '토큰 만료 시간 (초)',
token_expiration_time_in_seconds_placeholder: '토큰 만료 시간을 입력해주세요',
delete_description:
'이 행동은 취소될 수 없어요. 해당 API 리소스가 영원히 삭제될거예요. 삭제를 하기 위해 API 리소스 이름 "<span>{{name}}</span>"을 입력해주세요.',
enter_your_api_resource_name: 'API 리소스 이름을 입력해주세요.',
api_resource_deleted: '{name}} API 리소스가 성공적으로 삭제되었어요.',
};
export default api_resource_details;

View file

@ -0,0 +1,14 @@
const api_resources = {
title: 'API 리소스',
subtitle: '인증된 어플리케이션에서 사용될 API를 정의해주세요.',
create: 'API 리소스 생성',
api_name: 'API 이름',
api_name_placeholder: 'API 이름 입력',
api_identifier: 'API 식별자',
api_identifier_tip:
'API 리소스에 대한 유일한 식별자예요. 반드시, 절대적인 URI 이여야 하며, 프래그먼트 (#) 요소가 없어야해요. OAuth 2.0의 리소스 파라미터와 동일해요.',
api_resource_created: '{{name}} API 리소스가 성공적으로 생성되었어요.',
api_identifier_placeholder: 'https://your-api-identifier/',
};
export default api_resources;

View file

@ -0,0 +1,39 @@
const application_details = {
back_to_applications: '어플리케이션으로 돌아가기',
check_guide: '가이드 확인',
advanced_settings: '고급 설정',
application_name: '어플리케이션 이름',
application_name_placeholder: '나의 앱',
description: '설명',
description_placeholder: '어플리케이션 설명을 적어주세요.',
authorization_endpoint: '인증 End-Point',
authorization_endpoint_tip:
'인증 및 권한 부여를 진행할 End-Point예요. OpenID Connect 인증에서 사용되던 값 이에요.',
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를 참고해주세요.',
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',
post_sign_out_redirect_uri_tip:
'로그아웃 이후, 리다이렉트 될 URI 경로예요 (선택). 일부 앱에서는 실제 효과가 없을 수 있어요.',
cors_allowed_origins: 'CORS Allow Origins',
cors_allowed_origins_placeholder: 'https://your.website.com',
cors_allowed_origins_tip:
'기본으로 모든 리다이렉트의 오리진들은 허용되요. 대체적으로 이 값을 건들 필요는 없어요.',
add_another: '새로 추가',
id_token_expiration: 'ID 토큰 만료',
refresh_token_expiration: 'Refresh 토큰 만료',
token_endpoint: '토큰 End-Point',
user_info_endpoint: '사용자 정보 End-Point',
delete_description:
'이 행동은 취소될 수 없어요. 어플리케이션을 영원히 삭제할 거에요. 삭제를 진행하기 위해 <span>{{name}}</span> 를 입력해주세요.',
enter_your_application_name: '어플리케이션 이름을 입력해주세요.',
application_deleted: '{{name}} 어플리케이션이 성공적으로 삭제되었어요.',
redirect_uri_required: '반드시 최소 하나의 Redirect URI를 입력해야되요.',
};
export default application_details;

View file

@ -0,0 +1,41 @@
const applications = {
title: '어플리케이션',
subtitle: '인증에 Logto를 사용할 모바일, 단일 페이지 또는 기존 어플리케이션 설정할 수 있어요.',
create: '어플리케이션 생성',
application_name: '어플리케이션 이름',
application_name_placeholder: '나의 앱',
application_description: '어플리케이션 설명',
application_description_placeholder: '어플리케이션 설명을 적어주세요.',
select_application_type: '어플리케이션 종류 선택',
no_application_type_selected: '어플리케이션 종류를 선택하지 않았아요.',
application_created:
'{{name}} 어플리케이션이 성공적으로 생성되었어요! \n이제 어플리케이션 설정을 마무리해주세요.',
app_id: 'App ID',
type: {
native: {
title: 'Native App',
subtitle: 'Native 환경에서 작동하는 어플리케이션',
description: '예) iOS App, Android App',
},
spa: {
title: 'Single Page App',
subtitle: '웹 브라우저에서 작동하며, 한 페이지에서 유동적으로 업데이트 되는 웹',
description: '예) React DOM App, Vue App',
},
traditional: {
title: 'Traditional Web',
subtitle: '서버를 통하여 웹 페이지가 업데이트 되는 앱',
description: '예) JSP, PHP',
},
},
guide: {
get_sample_file: '예제 찾기',
header_description:
'단계별 가이드에 따라 어플리케이션을 연동하거나, 오른쪽 버튼을 클릭하여 샘플 프로젝트를 받아보세요.',
title: '어플리케이션이 생성되었어요.',
subtitle: '앱 설정을 마치기 위해 아래 단계를 따라주세요. SDK 종류를 선택해주세요.',
description_by_sdk: '아래 과정을 따라서 Logto를 {{sdk}} 앱과 빠르게 연동해보세요.',
},
};
export default applications;

View file

@ -0,0 +1,22 @@
const connector_details = {
back_to_connectors: '연동으로 돌아가기',
check_readme: 'README 확인',
save_error_empty_config: '설정을 입력해주세요.',
send: '보내기',
send_error_invalid_format: '유효하지 않은 입력',
edit_config_label: '여기에 JSON을 입력해주세요.',
test_email_sender: '이메일 연동 테스트',
test_sms_sender: 'SMS 연동 테스트',
test_email_placeholder: '테스트 이메일 주소를 입력해주세요.',
test_sms_placeholder: '테스트 휴대전화번호를 입력해주세요.',
test_message_sent: '테스트 메세지 전송완료!',
test_sender_description: 'JSON 설정이 정확하다면, 메세지를 받을거에요.',
options_change_email: '이메일 연동 수정',
options_change_sms: 'SMS 연동 수정',
connector_deleted: '연동이 설공적으로 제거되었어요.',
type_email: '이메일 연동',
type_sms: 'SMS 연동',
type_social: '소셜 연동',
};
export default connector_details;

View file

@ -0,0 +1,37 @@
const connectors = {
title: '연동',
subtitle: '비밀번호 없이 또는 소셜 로그인을 제공하여 보다 나은 경험을 위해 연동해주세요.',
create: '소셜 연동 추가',
tab_email_sms: '이메일/SMS 연동',
tab_social: '소셜 연동',
connector_name: '연동 이름',
connector_type: '종류',
connector_status: '로그인 경험',
connector_status_in_use: '사용 중',
connector_status_not_in_use: '사용 중이 아님',
social_connector_eg: '예) Google, Facebook, Github',
save_and_done: '저장 및 완료',
type: {
email: '이메일 연동',
sms: 'SMS 연동',
social: '소셜 연동',
},
setup_title: {
email: '이메일 연동 설정',
sms: 'SMS 연동 설정',
social: '소셜 연동 추가 및 설정',
},
guide: {
subtitle: '단계별 가이드를 따라, 연동해주세요.',
},
platform: {
universal: 'Universal',
web: 'Web',
native: 'Native',
},
add_multi_platform: ' 다양한 플랫폼 지원, 플랫폼을 선택해주세요.',
drawer_title: '연동 가이드',
drawer_subtitle: '연동하기 위해 가이드를 따라주세요.',
};
export default connectors;

View file

@ -0,0 +1,22 @@
const contact = {
title: '연락처',
description:
'커뮤니티에 참여하여 피드백을 제공하고 도움을 요청하며 다른 개발자와 생각을 공유해보세요.',
discord: {
title: 'Discord 채널',
description: '공개 채널에 참여하여 다른 개발자와 채팅해보세요.',
button: '참가',
},
github: {
title: 'GitHub',
description: 'GitHub에서 이슈를 생성해보세요.',
button: '열기',
},
email: {
title: '이메일 보내기',
description: '추가 정보 및 도움말을 보려면 이메일을 보내주세요.',
button: '보내기',
},
};
export default contact;

View file

@ -0,0 +1,18 @@
const dashboard = {
title: '대시보드',
description: '앱 사용자에 대한 개요를 볼 수 있어요.',
total_users: '전체 사용자',
total_users_tip: '전체 사용자',
new_users_today: '새로운 사용자 (오늘)',
new_users_today_tip: '오늘 앱에 새로 가입한 사용자',
new_users_7_days: '새로운 사용자 (최근 7일)',
new_users_7_days_tip: '최근 7일 동안 앱에 새로 가입한 사용자',
daily_active_users: '활성화 사용자 (오늘)',
daily_active_users_tip: '오늘 앱을 통하여 Token을 가져간 사용자 수',
weekly_active_users: '활성화 사용자 (최근 7일)',
weekly_active_users_tip: '최근 7일 동안 앱을 통하여 Token을 가져간 사용자 수',
monthly_active_users: '활성화 사용자 (최근 30일)',
monthly_active_users_tip: '최근 30일 동안 앱을 통하여 Token을 가져간 사용자 수',
};
export default dashboard;

View file

@ -0,0 +1,21 @@
const errors = {
something_went_wrong: '알 수 없는 오류가 발생했어요.',
page_not_found: '페이지를 찾을 수 없어요.',
unknown_server_error: '서버에서 알 수 없는 오류가 발생했어요.',
empty: '데이터 없음',
missing_total_number: 'Total-Number를 응답 해더에서 찾을 수 없어요.',
invalid_uri_format: 'URI 형식이 유효하지 않음',
invalid_origin_format: 'URI origin 형식이 유효하지 않음',
invalid_json_format: 'JSON 형식이 유효하지 않음',
invalid_error_message_format: '오류 메세지 형식이 유효하지 않아요.',
required_field_missing: '{{field}}을/를 입력해주세요.',
required_field_missing_plural: '최소 1개의 {{field}}을/를 입력해야해요.',
more_details: '자세히',
username_pattern_error:
'아이디는 반드시 문자, 숫자, _ 만으로 이루어져야 하며, 숫자로 시작하면 안되요.',
password_pattern_error: '비밀번호는 최소 6자리로 이루어져야해요.',
insecure_contexts: '비보안 연결(non-HTTPS)는 지원하지 않아요.',
unexpected_error: '알 수 없는 오류가 발생했어요.',
};
export default errors;

View file

@ -0,0 +1,40 @@
const general = {
placeholder: '플레이스홀더',
skip: '건너뛰기',
next: '다음',
retry: '재시도',
done: '완료',
search: '검색',
search_placeholder: '검색',
clear_result: '결과 지우기',
save: '저장',
save_changes: '변경 내용 저장',
saved: '저장됨!',
loading: '로딩 중...',
redirecting: '리다이렉팅 중...',
add: '추가',
added: '추가됨',
cancel: '취소',
confirm: '확인',
check_out: '확인하기',
create: '생성',
set_up: '설정',
customize: '커스터마이즈',
enable: '활성화',
reminder: '리마인더',
delete: '삭제',
more_options: '더 많은 설정',
close: '닫기',
copy: '복사',
copying: '복사 중',
copied: '복사됨',
required: '필수',
add_another: '+ 새로 추가',
deletion_confirmation: '정말로 {{title}}을/를 삭제할까요?',
settings_nav: '설정',
unsaved_changes_warning: '수정된 내용이 있어요. 정말로 현재 페이지를 벗어날까요?',
leave_page: '페이지 나가기',
stay_on_page: '페이지 유지하기',
};
export default general;

View file

@ -0,0 +1,25 @@
const get_started = {
progress: '시작 가이드: {{completed}}/{{total}}',
progress_dropdown_title: '해야할 것들...',
title: 'Logto를 어떻게 시작할까요?',
subtitle_part1: 'Logto의 가치를 얻기 위해 해야할 것들이 있어요.',
subtitle_part2: '설정을 마칠게요 ',
hide_this: '가리기',
confirm_message: '정말로 이 페이지를 가릴까요? 이 행동은 취소할 수 없어요.',
card1_title: '체험해보기',
card1_subtitle: 'Logto 로그인 경험을 체험해보세요.',
card2_title: '첫 어플리케이션 생성 및 연동해보기',
card2_subtitle: '모바일 앱 및 Single Page, Tranditional 웹에 Logto 인증을 적용해보세요.',
card3_title: '로그인 경험 커스터마이징하기',
card3_subtitle: '로그인 화면을 브랜드에 맞게 커스터마이징 그리고 실시간으로 확인해보세요.',
card4_title: 'SMS/이메일 연동하기',
card4_subtitle:
'SMS 또는 이메일을 통해 비밀번호가 없이, 그리고 더욱 안전한 로그인 경험을 사용자에게 제공해보세요.',
card5_title: '소셜 연동',
card5_subtitle:
'사용자의 소셜 정보를 통해 한 번의 클릭으로 로그인할 수 있는 경험을 사용자에게 제공해보세요.',
card6_title: '더욱 나아가서',
card6_subtitle: '복잡하지 않은 단계별 시나리오 문서를 확인해보세요.',
};
export default get_started;

View file

@ -0,0 +1,52 @@
import api_resource_details from './api-resource-details';
import api_resources from './api-resources';
import application_details from './application-details';
import applications from './applications';
import connector_details from './connector-details';
import connectors from './connectors';
import contact from './contact';
import dashboard from './dashboard';
import errors from './errors';
import general from './general';
import get_started from './get-started';
import log_details from './log-details';
import logs from './logs';
import session_expired from './session-expired';
import settings from './settings';
import sign_in_exp from './sign-in-exp';
import tab_sections from './tab-sections';
import tabs from './tabs';
import user_details from './user-details';
import users from './users';
import welcome from './welcome';
const admin_console = {
title: '관리자 Console',
sign_out: '로그아웃',
profile: '프로필',
admin_user: '관리자',
system_app: '시스템',
general,
errors,
tab_sections,
tabs,
applications,
application_details,
api_resources,
api_resource_details,
connectors,
connector_details,
get_started,
users,
user_details,
contact,
sign_in_exp,
settings,
dashboard,
logs,
log_details,
session_expired,
welcome,
};
export default admin_console;

View file

@ -0,0 +1,17 @@
const log_details = {
back_to_logs: 'Audit 기록으로 돌아가기',
back_to_user: '{{name}}으로 돌아가기',
success: '성공',
failed: '실패',
event_type: '활동 종류',
application: '어플리케이션',
ip_address: 'IP 주소',
user: '사용자',
log_id: '기록 ID',
time: '시간',
user_agent: '사용자 Agent',
tab_details: '상세',
raw_data: '상세 데이터',
};
export default log_details;

View file

@ -0,0 +1,11 @@
const logs = {
title: 'Audit 기록',
subtitle: '관리자나 사용자의 인증 기록을 확인해보세요.',
event: '활동',
user: '사용자',
application: '어플리케이션',
time: '시간',
filter_by: '필터',
};
export default logs;

View file

@ -0,0 +1,7 @@
const session_expired = {
title: '세션 만료',
subtitle: '세션이 만료되었거나, 끊겼어요. 다시 로그인해주세요.',
button: '다시 로그인하기',
};
export default session_expired;

View file

@ -0,0 +1,25 @@
const settings = {
title: '설정',
description: '전체 설정을 관리해보세요.',
tabs: {
general: '일반',
},
custom_domain: '커스텀 도메인',
language: '언어',
appearance: '모습',
appearance_system: '시스템과 동기화',
appearance_light: '라이트 모드',
appearance_dark: '다크 모드',
saved: '저장되었어요!',
change_password: '비밀번호 변경',
change_password_description: '현재 계정의 비밀번호를 변경할 수 있어요.',
change_modal_title: '계정 비밀번호 변경',
change_modal_description: '새로 변경된 비밀번호로 로그인해야해요.',
new_password: '새로운 비밀번호',
new_password_placeholder: '새로운 비밀번호를 입력해주세요.',
confirm_password: '비밀번호 확인',
confirm_password_placeholder: '비밀번호를 다시 입력해주세요.',
password_changed: '비밀번호 변경되었어요!',
};
export default settings;

View file

@ -0,0 +1,110 @@
const sign_in_exp = {
title: '로그인 경험',
description: '로그인 화면을 브랜드에 맞게 커스터마이징 그리고 실시간으로 확인해보세요.',
tabs: {
branding: '브랜딩',
methods: '로그인 방법',
others: '기타',
},
welcome: {
title: '가이드를 따라, 필수 설정을 빠르게 수정해보세요.',
get_started: '시작하기',
apply_remind: '이 계정이 관리하는 모든 앱의 로그인 경험이 수정되는 것을 주의해주세요.',
got_it: '네',
},
color: {
title: '색상',
primary_color: '브랜드 색상',
dark_primary_color: '브랜드 색상 (다크 모드)',
dark_mode: '다크 모드 활성화',
dark_mode_description: 'Logto가 브랜드 색상에 알맞게 자동으로 다크 모드 테마를 생성해요.',
dark_mode_reset_tip: '브랜드 색상에 알맞게 다크 모드 색상 재생성',
reset: '재생성',
},
branding: {
title: '브랜딩 영역',
ui_style: '스타일',
styles: {
logo_slogan: '앱 로고 & 슬로건',
logo: '앱 로고만',
},
logo_image_url: '앱 로고 이미지 URL',
logo_image_url_placeholder: 'https://your.cdn.domain/logo.png',
dark_logo_image_url: '앱 로고 이미지 URL (다크 모드)',
dark_logo_image_url_placeholder: 'https://your.cdn.domain/logo-dark.png',
slogan: '슬로건',
slogan_placeholder: 'Unleash your creativity',
},
terms_of_use: {
title: '이용 약관',
enable: '이용 약관 활성화',
description: '서비스 사용을 위한 이용 약관을 추가해보세요.',
terms_of_use: '이용 약관',
terms_of_use_placeholder: 'https://your.terms.of.use/',
terms_of_use_tip: '이용 약관 URL',
},
sign_in_methods: {
title: '로그인 방법',
primary: '메인 로그인 방법',
enable_secondary: '백업 로그인 방법 활성화',
enable_secondary_description:
'백업 로그인 활성화를 통하여 메인 로그인 방법이외의 로그인 방법을 사용자에게 제공해보세요.',
methods: '로그인 방법',
methods_sms: 'SMS 로그인',
methods_email: '이메일 로그인',
methods_social: '소셜 로그인',
methods_username: '사용자 이름&비밀번호 로그인',
methods_primary_tag: '(메인)',
define_social_methods: '소셜 로그인 방법 설정',
transfer: {
title: '소셜 연동',
footer: {
not_in_list: '리스트에 없나요?',
set_up_more: '더 설정하기',
go_to: '를 눌러 설정하러 가기',
},
},
},
others: {
languages: {
title: '언어',
mode: '언어 모드',
auto: '자동',
fixed: '고정',
fallback_language: '백업 언어',
fallback_language_tip: '적절한 언어를 찾을 수 없을 때 백업 언어를 사용해요.',
fixed_language: '언어 고정',
},
},
setup_warning: {
no_connector: '',
no_connector_sms:
'SMS 연동이 아직 설정되지 않았어요. 설정이 완료될 때 까지, 사용자는 이 로그인 방법을 사용할 수 없어요.',
no_connector_email:
'이메일 연동이 아직 설정되지 않았어요. 설정이 완료될 때 까지, 사용자는 이 로그인 방법을 사용할 수 없어요.',
no_connector_social:
'소셜 연동이 아직 설정되지 않았어요. 설정이 완료될 때 까지, 사용자는 이 로그인 방법을 사용할 수 없어요.',
no_added_social_connector:
'보다 많은 소셜 연동들을 설정하여, 고객에게 보다 나은 경험을 제공해보세요.',
},
save_alert: {
description:
'로그인 방법이 수정되었어요. 일부 사용자에게 영향을 미칠 수 있어요. 정말로 진행할까요?',
before: '이전',
after: '이후',
},
preview: {
title: '로그인 화면 미리보기',
languages: {
english: '영어',
chinese: '중국어',
},
dark: '다크',
light: '라이트',
native: 'Native',
desktop_web: 'Desktop 웹',
mobile_web: 'Mobile 웹',
},
};
export default sign_in_exp;

View file

@ -0,0 +1,8 @@
const tab_sections = {
overview: '살펴보기',
resource_management: 'Resource 관리',
user_management: '사용자 관리',
help_and_support: '고객센터',
};
export default tab_sections;

View file

@ -0,0 +1,15 @@
const tabs = {
get_started: '시작하기',
dashboard: '대시보드',
applications: '어플리케이션',
api_resources: 'API 리소스',
sign_in_experience: '로그인 경험',
connectors: '연동',
users: '사용자 관리',
audit_logs: 'Audit 기록',
docs: '문서',
contact_us: '연락처',
settings: '설정',
};
export default tabs;

View file

@ -0,0 +1,38 @@
const user_details = {
back_to_users: '사용자 관리로 돌아가기',
created_title: '새로운 사용자가 생성되었어요.',
created_guide: '생성된 정보를 해당 사용자에게 알려주세요.',
created_username: '사용자 이름:',
created_password: '비밀번호:',
menu_delete: '삭제',
delete_description: '이 사용자를 영원히 삭제할까요? 이 행동은 취소될 수 없어요.',
deleted: '해당 사용자가 성공적으로 삭제되었어요.',
reset_password: {
reset_password: '비밀번호 초기화',
title: '정말로 비밀번호를 초기화 할까요?',
content: '정말로 비밀번호를 초기화 할까요? 이 행동은 취소될 수 없어요.',
congratulations: '해당 사용자의 비밀번호가 성공적으로 초기화 되었어요.',
new_password: '새로운 비밀번호:',
},
tab_logs: '사용자 기록',
field_email: '메인 이메일',
field_phone: '메인 휴대전화번호',
field_username: '사용자 이름',
field_name: '이름',
field_avatar: '아바타 이미지 URL',
field_avatar_placeholder: 'https://your.cdn.domain/avatar.png',
field_custom_data: '사용자 정의 데이터',
field_custom_data_tip:
'사용자 정의 색상 및 언어와 같은 미리 정의되지 않은 추가적인 사용자의 정보를 의미해요.',
field_connectors: '연동된 소셜',
custom_data_invalid: '사용자 정의 데이터는 반드시 유효한 JSON 객체여야 해요.',
connectors: {
connectors: '연동',
user_id: '사용자 ID',
remove: '삭제',
not_connected: '이 사용자는 아직 소셜에 연동되지 않았아요.',
deletion_confirmation: '<name/> 신원을 삭제하려고 해요. 정말로 진행할까요?',
},
};
export default user_details;

View file

@ -0,0 +1,14 @@
const users = {
title: '사용자 관리',
subtitle: '사용자의 신원을 추가, 삭제, 수정, 조회하여 관리해보세요.',
create: '사용자 추가',
user_name: '사용자',
application_name: '어플리케이션으로 부터',
latest_sign_in: '최근 로그인 시각',
create_form_username: '사용자 이름',
create_form_password: '비밀번호',
create_form_name: '이름',
unnamed: '이름없음',
};
export default users;

View file

@ -0,0 +1,8 @@
const welcome = {
title: '관리자 콘솔에 오신 것을 환영해요',
description:
'관리자 콘솔를 통해 프로그래밍 없이 Logto를 관리할 수 있어요. 새로 계정을 생성하고, Logto를 당신의 회사에 알맞게 수정해보세요.',
create_account: '계정 생성',
};
export default welcome;

View file

@ -0,0 +1,14 @@
const demo_app = {
notification: '체험 App에 로그인 하기 위해 관리자 정보 또는 게정을 새로 생성하여 로그인해보세요.',
title: '성공적으로 체험 App에 로그인되었어요!',
subtitle: '여기 로그인 정보가 있어요:',
username: '사용자 이름: ',
user_id: '사용자 ID: ',
sign_out: '체험 App 로그아웃',
continue_explore: '또는 계속해서 살펴보기',
customize_sign_in_experience: '로그인 경험 커스터마이징',
enable_passwordless: 'Passwordless 활성화',
add_social_connector: '소셜 Connector 추가',
};
export default demo_app;

View file

@ -0,0 +1,9 @@
import admin_console from './admin-console';
import demo_app from './demo-app';
const translation = {
admin_console,
demo_app,
};
export default translation;

View file

@ -14,6 +14,7 @@ export enum Language {
English = 'en',
Chinese = 'zh-CN',
Turkish = 'tr-TR',
Korean = 'ko-KR',
}
export const languageEnumGuard = z.nativeEnum(Language);
@ -22,6 +23,7 @@ export const languageOptions = [
{ value: Language.English, title: 'English' },
{ value: Language.Chinese, title: '中文' },
{ value: Language.Turkish, title: 'Türkçe' },
{ value: Language.Korean, title: '한국어' },
];
/* eslint-enable @typescript-eslint/consistent-indexed-object-style */

View file

@ -24,11 +24,13 @@ export const socialConnectors = [
en: 'Sign in with GitHub',
'zh-CN': '使用 GitHub 登录',
'tr-TR': 'Github ile giriş yap',
'ko-KR': 'Github 로그인',
},
description: {
en: 'Sign in with GitHub',
'zh-CN': '使用 GitHub 登录',
'tr-TR': 'Github ile giriş yap',
'ko-KR': 'Github 로그인',
},
readme: '',
configTemplate: '',
@ -44,11 +46,13 @@ export const socialConnectors = [
en: 'Sign in with Alipay',
'zh-CN': '使用 Alipay 登录',
'tr-TR': 'Alipay ile giriş yap',
'ko-KR': 'Alipay 로그인',
},
description: {
en: 'Sign in with Alipay',
'zh-CN': '使用 Alipay 登录',
'tr-TR': 'Alipay ile giriş yap',
'ko-KR': 'Alipay 로그인',
},
readme: '',
configTemplate: '',
@ -64,11 +68,13 @@ export const socialConnectors = [
en: 'Sign in with WeChat',
'zh-CN': '使用 WeChat 登录',
'tr-TR': 'WeChat ile giriş yap',
'ko-KR': 'WeChat 로그인',
},
description: {
en: 'Sign in with WeChat',
'zh-CN': '使用 WeChat 登录',
'tr-TR': 'WeChat ile giriş yap',
'ko-KR': 'WeChat 로그인',
},
readme: '',
configTemplate: '',
@ -84,11 +90,13 @@ export const socialConnectors = [
en: 'Sign in with Google',
'zh-CN': '使用 Google 登录',
'tr-TR': 'Google ile giriş yap',
'ko-KR': 'Google 로그인',
},
description: {
en: 'Sign in with Google',
'zh-CN': '使用 Google 登录',
'tr-TR': 'Google ile giriş yap',
'ko-KR': 'Google 로그인',
},
readme: '',
configTemplate: '',
@ -104,11 +112,13 @@ export const socialConnectors = [
en: 'Sign in with Meta',
'zh-CN': '使用 Meta 登录',
'tr-TR': 'Meta ile giriş yap',
'ko-KR': 'Meta 로그인',
},
description: {
en: 'Sign in with Meta',
'zh-CN': '使用 Meta 登录',
'tr-TR': 'Meta ile giriş yap',
'ko-KR': 'Meta 로그인',
},
readme: '',
configTemplate: '',
@ -126,11 +136,13 @@ export const mockSocialConnectorData = {
en: 'Sign in with Xxx',
'zh-CN': '使用 Xxx 登录',
'tr-TR': 'Xxx ile giriş yap',
'ko-KR': 'Xxx 로그인',
},
description: {
en: 'Sign in with Xxx',
'zh-CN': '使用 Xxx 登录',
'tr-TR': 'Xxx ile giriş yap',
'ko-KR': 'Xxx 로그인',
},
readme: '',
configTemplate: '',