1
0
forked from baron/baron-sso
Files
baron-sso/locales/ko.toml
chan 984adcfa62 feat(adminfront): add org chart to sidebar navigation
Adds the Organization Chart tab to the main sidebar for all users. Removes the 'View Org Chart' button from the Tenant List page. Enhances active state logic for nested routes.
2026-04-13 10:38:04 +09:00

2721 lines
106 KiB
TOML

[domain]
[domain.affiliation]
affiliate = "가족사 임직원"
general = "일반 사용자"
[domain.company]
baron = "바론"
halla = "한라"
hanmac = "한맥"
jangheon = "장헌"
ptc = "PTC"
saman = "삼안"
[domain.tenant_type]
company = "COMPANY (일반 기업)"
company_group = "COMPANY_GROUP (그룹사/지주사)"
personal = "PERSONAL (개인 워크스페이스)"
user_group = "USER_GROUP (내부 부서/팀)"
[err]
[err.backend]
authorization_pending = "인증 승인이 아직 완료되지 않았습니다."
bad_request = "요청 값을 확인해 주세요."
conflict = "요청이 현재 상태와 충돌합니다."
expired_token = "토큰이 만료되었습니다."
forbidden = "요청이 허용되지 않습니다."
internal_error = "요청 처리 중 내부 오류가 발생했습니다."
invalid_code = "인증 코드가 올바르지 않습니다."
invalid_or_expired_code = "인증 코드가 유효하지 않거나 만료되었습니다."
invalid_session = "세션이 유효하지 않습니다."
invalid_session_reference = "세션 참조 정보가 유효하지 않습니다."
not_found = "요청한 인증 흐름을 찾을 수 없습니다."
not_supported = "지원하지 않는 로그인 방식입니다."
password_or_email_mismatch = "이메일 혹은 비밀번호가 일치하지 않습니다."
rate_limited = "요청이 너무 많습니다. 잠시 후 다시 시도해 주세요."
service_unavailable = "인증 서비스를 현재 사용할 수 없습니다."
slow_down = "요청 간격이 너무 빠릅니다. 잠시 후 다시 시도해 주세요."
[err.common]
unknown = "알 수 없는 오류가 발생했습니다."
[err.userfront]
[err.userfront.auth_proxy]
consent_accept = "동의 처리에 실패했습니다."
consent_fetch = "동의 정보를 가져오지 못했습니다."
consent_reject = "동의 거부에 실패했습니다."
linked_app_revoke = "연동 해지에 실패했습니다."
login_failed = "로그인에 실패했습니다."
oidc_accept = "OIDC 로그인 승인에 실패했습니다."
password_reset_complete = "비밀번호 재설정에 실패했습니다."
password_reset_init = "비밀번호 재설정을 시작하지 못했습니다."
[err.userfront.profile]
load_failed = "프로필을 불러오지 못했습니다: {{error}}"
password_change_failed = "비밀번호 변경에 실패했습니다: {{error}}"
send_code_failed = "인증번호 전송 실패: {{error}}"
update_failed = "프로필 업데이트에 실패했습니다: {{error}}"
verify_code_failed = "인증 실패: {{error}}"
[err.userfront.session]
missing = "활성 세션이 없습니다."
[msg]
[msg.admin]
idp_env_prod = "IDP env: prod"
logout_confirm = "로그아웃 하시겠습니까?"
scope_admin = "Scoped to /admin"
session_ttl = "Session TTL: 15m admin"
tenant_headers = "Tenant-aware headers"
[msg.admin.common]
forbidden = "이 작업을 수행할 권한이 없습니다."
[msg.admin.audit]
empty = "아직 수집된 감사 로그가 없습니다."
end = "감사 로그의 마지막입니다."
load_error = "감사 로그를 불러오지 못했습니다: {{error}}"
loading = "감사 로그를 불러오는 중..."
subtitle = "Command 요청 기반 ClickHouse 로그를 조회합니다. 사용자/테넌트는 추후 세션 연동 시 자동 채워집니다."
[msg.admin.header]
subtitle = "Tenant isolation & least privilege by default"
[msg.admin.notice]
idp_policy = "IDP 관리 키는 서버 내부 래핑 API로만 사용하며, 감사·레이트리밋을 기본 적용합니다."
scope = "관리 기능은 /admin 네임스페이스에서만 노출합니다."
[msg.admin.org]
hover_member_info = "마우스를 올리면 상세 정보를 확인할 수 있습니다."
import_description = "CSV 파일을 업로드하여 조직도를 일괄 등록합니다."
import_error = "조직도 임포트 중 오류가 발생했습니다."
import_success = "조직도가 성공적으로 임포트되었습니다."
[msg.admin.overview]
description = "모든 테넌트 공통 지표와 정책 상태를 한 곳에서 확인합니다."
idp_fallback = "Fallback: Descope"
idp_primary = "IDP: Ory primary"
[msg.admin.tenants]
approve_confirm = "이 테넌트를 승인하시겠습니까?"
approve_success = "테넌트가 승인되었습니다."
delete_confirm = "테넌트 \"{{name}}\"를 삭제할까요?"
delete_success = "테넌트가 삭제되었습니다."
empty = "아직 등록된 테넌트가 없습니다."
fetch_error = "테넌트 목록 조회에 실패했습니다."
missing_id = "테넌트 ID가 없습니다."
not_found = "테넌트를 찾을 수 없습니다."
remove_sub_confirm = "테넌트 \"{{name}}\"을(를) 하위 조직에서 제외할까요?"
subtitle = "현재 등록된 테넌트를 확인하고 상태를 관리합니다."
[msg.dev.auth]
access_denied_description = "DevFront는 관리자 전용 화면입니다. 권한이 필요하면 관리자에게 요청해 주세요."
access_denied_title = "접근 권한이 없습니다."
[msg.dev.forbidden]
default = "해당 리소스에 접근할 권한이 없습니다. 관리자에게 문의하세요."
rp_admin = "RP 관리자는 담당 앱의 리소스만 조회할 수 있습니다."
tenant_admin = "테넌트 관리자 권한이 올바르게 설정되지 않았거나 만료되었습니다."
user = "일반 사용자는 관리자 화면에 접근할 수 없습니다."
title = "{{resource}} 접근 권한 없음"
[msg.dev.audit]
empty = "조회된 감사 로그가 없습니다."
forbidden = "감사 로그를 조회할 권한이 없습니다. 관리자에게 권한을 요청해주세요."
load_error = "감사 로그 조회 실패: {{error}}"
loaded_count = "로드된 로그 {{count}}건"
loading = "감사 로그를 불러오는 중..."
subtitle = "현재 테넌트/앱 범위의 DevFront 작업 이력을 조회합니다."
[msg.dev.clients]
deleted = "앱이 삭제되었습니다."
delete_confirm = "정말로 이 앱을 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다."
delete_error = "삭제 실패: {{error}}"
load_error = "앱 정보를 불러오지 못했습니다: {{error}}"
loading = "앱 정보를 불러오는 중..."
showing = "전체 {{total}}개 중 {{shown}}개를 표시하는 중입니다."
[msg.dev.sidebar]
notice = "개발자 전용 콘솔입니다."
notice_detail = "연동 앱 등록 및 관리를 수행할 수 있습니다."
[msg.dev.clients.general.public_key]
auth_method_client_secret_basic_help = "일반적인 서버 사이드 앱 인증 방식입니다."
auth_method_none_help = "PKCE 기반 public client에 사용하는 방식입니다."
auth_method_private_key_jwt_help = "Trusted RP bootstrap과 JAR 검증에 필요한 서명 키 기반 인증 방식입니다."
guide_example = "권장 예시: https://rp.example.com/.well-known/jwks.json"
guide_intro = "JWKS URI는 Baron이 만드는 값이 아니라 RP backend가 공개키를 노출하는 URL입니다."
guide_step_1 = "RP 서버에서 key pair를 생성하고 private key는 RP backend에만 보관합니다."
guide_step_2 = "RP backend가 public key를 JWKS(JSON Web Key Set) 형태로 제공하는 endpoint를 준비합니다."
guide_step_3 = "예: https://rp.example.com/.well-known/jwks.json 같은 URL을 DevFront에 입력합니다."
headless_help = "애플리케이션 고유의 디자인으로 로그인 화면을 구성할 수 있습니다. 실제 아이디/비밀번호 확인 및 보안 검증 로직은 Baron API를 통해 백그라운드에서 처리됩니다."
jwks_inline_help = "SSH-RSA 공개키 형식을 우선 권장합니다. 'ssh-rsa AAA...' 형식으로 입력하면 Baron이 OIDC 표준인 JWKS(JSON)로 자동 변환하여 저장합니다."
jwks_uri_help = "RP backend가 제공하는 공개키 endpoint URL을 입력하세요. 예: https://rp.example.com/.well-known/jwks.json"
request_object_alg_help = "Headless Login을 사용할 때 JAR(Request Object) 서명 알고리즘을 명시합니다."
source_help = "애플리케이션의 공개키(SSH-RSA)를 직접 등록하거나, 운영 환경이라면 JWKS URI를 통해 자동으로 검증할 수 있습니다."
subtitle = "Trusted RP 판정에 필요한 공개키와 headless login 관련 설정을 관리합니다."
[msg.dev.clients.general.public_key.validation]
headless_requires_alg = "Headless Login을 사용하려면 Request Object Signing Algorithm을 입력해야 합니다."
headless_requires_private_key_jwt = "Headless Login을 사용하려면 token endpoint auth method가 private_key_jwt여야 합니다."
headless_requires_public_key = "Headless Login을 사용하려면 JWKS URI가 필요합니다."
invalid_jwks_inline = "입력값이 유효한 JSON(JWKS) 형식이 아닙니다. SSH-RSA의 경우 'ssh-rsa'로 시작해야 합니다."
invalid_jwks_uri = "JWKS URI 형식이 올바르지 않습니다."
missing_jwks_inline = "공개키(SSH-RSA 또는 JWKS)를 입력해야 합니다."
missing_jwks_uri = "JWKS URI를 입력해야 합니다."
private_key_jwt_requires_public_key = "서명 키 기반 인증을 사용하려면 JWKS URI가 필요합니다."
[msg.userfront.audit]
browser = "브라우저: {{value}}"
date = "접속일자: {{value}}"
device = "접속환경: {{value}}"
end = "더 이상 항목이 없습니다."
filtered_empty = "활성 세션으로 필터링된 접속 이력이 없습니다."
ip = "접속 IP: {{value}}"
load_more_error = "더 불러오지 못했습니다."
result = "인증결과: {{value}}"
session_id = "Session ID: {{value}}"
status = "현황: (준비중)"
[msg.userfront.dashboard]
approved_device = "승인 기기: {{device}}"
approved_ip = "승인 IP: {{ip}}"
audit_empty = "최근 접속 이력이 없습니다."
audit_load_error = "접속이력을 불러오지 못했습니다."
auth_method = "인증수단: {{method}}"
client_id = "Client ID: {{id}}"
client_id_missing = "Client ID 없음"
current_status = "현재 상태: {{status}}"
last_auth = "최근 인증: {{value}}"
link_status = "연동 상태: {{status}}"
link_missing = "이동할 페이지 주소(Client URI)가 설정되지 않았습니다."
link_open_error = "해당 링크를 열 수 없습니다."
render_error = "대시보드 렌더링 오류: {{error}}"
session_id_copied = "세션 ID가 복사되었습니다."
[msg.userfront.error]
detail_contact = "관리자에게 문의해 주세요."
detail_generic = "오류가 발생했습니다."
detail_request = "요청을 처리하는 중 문제가 발생했습니다."
id = "오류 ID: {{id}}"
title = "인증 과정에서 오류가 발생했습니다"
title_generic = "오류가 발생했습니다"
title_with_code = "오류: {{code}}"
type = "오류 종류: {{type}}"
[msg.userfront.forgot]
description = "계정과 연결된 이메일 주소 또는 휴대폰 번호를 입력하시면, 비밀번호를 재설정할 수 있는 링크를 보내드립니다."
dry_send = "drySend 모드: 실제 이메일/SMS는 발송되지 않습니다."
error = "전송에 실패했습니다: {{error}}"
input_required = "이메일 또는 휴대폰 번호를 입력해주세요."
sent = "비밀번호 재설정 링크가 전송되었습니다. 이메일 또는 SMS를 확인해주세요."
[msg.userfront.login]
cookie_check_failed = "로그인 확인 실패: {{error}}"
dry_send = "drySend 모드: 실제 이메일/SMS는 발송되지 않습니다."
link_failed = "오류: {{error}}"
link_send_failed = "전송 실패: {{error}}"
link_sent_email = "입력하신 이메일로 로그인 링크를 보냈습니다."
link_sent_phone = "입력하신 번호로 로그인 링크를 보냈습니다."
link_timeout = "시간이 경과되었습니다."
no_account = "계정이 없으신가요?"
oidc_failed = "OIDC 로그인 처리에 실패했습니다. 다시 시도해 주세요."
qr_expired = "시간이 경과되었습니다."
qr_init_failed = "QR 초기화에 실패했습니다: {{error}}"
qr_login_required = "로그인 한 상태여야 QR 스캔으로 로그인 할 수 있습니다"
token_missing = "로그인 토큰을 확인할 수 없습니다."
verification_failed = "승인 처리에 실패했습니다: {{error}}"
[msg.userfront.login_success]
subtitle = "성공적으로 로그인되었습니다."
[msg.userfront.consent]
accept_error = "동의 처리에 실패했습니다: {{error}}"
client_id = "클라이언트 ID: {{id}}"
client_unknown = "알 수 없는 앱"
description = "아래 서비스가 회원님의 계정 정보에 접근하려고 합니다.\n계속 진행하려면 동의 여부를 선택해 주세요."
load_error = "동의 정보를 불러오는데 실패했습니다: {{error}}"
missing_redirect = "동의가 처리되었으나 리다이렉트 URL을 받지 못했습니다."
redirect_notice = "동의 후 자동으로 서비스로 이동합니다."
scope_count = "총 {{count}}개"
[msg.userfront.profile]
department_missing = "소속 정보 없음"
department_required = "소속을 입력해주세요."
email_missing = "이메일 없음"
greeting = "안녕하세요, {{name}}님"
load_failed = "정보를 불러올 수 없습니다."
name_missing = "이름 없음"
name_required = "이름을 입력해주세요."
phone_required = "휴대폰 번호를 입력해주세요."
phone_verify_required = "휴대폰 번호 인증이 필요합니다."
update_failed = "수정 실패: {{error}}"
update_success = "정보가 수정되었습니다."
[msg.userfront.qr]
camera_error = "카메라 오류: {{error}}"
permission_error = "카메라 권한 요청에 실패했습니다. 브라우저/OS 설정을 확인해주세요."
permission_required = "카메라 권한이 필요합니다."
[msg.userfront.reset]
invalid_body = "비밀번호 재설정 링크가 만료되었거나 잘못되었습니다. 다시 시도해주세요."
invalid_link = "유효하지 않은 재설정 링크입니다. (loginId/token 누락)"
invalid_title = "유효하지 않은 링크입니다."
policy_loading = "비밀번호 정책을 불러오는 중입니다..."
success = "비밀번호가 성공적으로 변경되었습니다. 다시 로그인해주세요."
[msg.userfront.sections]
apps_subtitle = "현재 연결된 앱과 최근 인증 상태입니다."
audit_subtitle = "Baron 로그인 기준의 최근 접근 기록입니다."
sessions_subtitle = "현재 로그인된 기기와 브라우저 세션입니다."
[msg.userfront.settings]
disabled = "현재 계정 설정 화면은 준비 중입니다."
[msg.userfront.signup]
failed = "가입 실패: {{error}}"
privacy_full = "개인정보 수집 및 이용 동의 전문..."
tos_full = "서비스 이용약관 전문..."
[ui.admin.audit]
export_csv = "Export CSV"
load_more = "Load more"
target = "Target · {{target}}"
title = "감사 로그"
[ui.admin.groups]
import_csv = "CSV 임포트"
[ui.admin.header]
plane = "Admin Plane"
subtitle = "관리 및 정책 운영"
[ui.admin.nav]
org_chart = "조직도"
api_keys = "API 키"
audit_logs = "감사 로그"
auth_guard = "인증 가드"
logout = "로그아웃"
overview = "개요"
relying_parties = "애플리케이션(RP)"
tenant_dashboard = "테넌트 대시보드"
user_groups = "유저 그룹"
tenants = "테넌트"
users = "사용자"
[ui.admin.org]
download_template = "템플릿 다운로드"
import_btn = "임포트"
import_title = "조직도 대량 등록"
start_import = "임포트 시작"
[ui.admin.overview]
kicker = "Global Overview"
title = "통합 대시보드"
[ui.admin.profile]
manageable_tenants = "관리 가능한 테넌트"
[ui.admin.role]
rp_admin = "RP ADMIN"
super_admin = "SUPER ADMIN"
tenant_admin = "TENANT ADMIN"
user = "TENANT MEMBER"
[ui.admin.tenants]
add = "테넌트 추가"
delete_selected = "선택 삭제"
title = "테넌트 목록"
view_org_chart = "전체 조직도 보기"
[ui.common.badge]
admin_only = "Admin only"
command_only = "Command only"
system = "System"
[ui.common.status]
active = "활성"
blocked = "차단됨"
failure = "실패"
inactive = "비활성"
ok = "정상"
pending = "준비 중"
success = "성공"
[ui.dev.nav]
clients = "연동 앱"
logout = "로그아웃"
[ui.dev.tenant]
single_notice = "단일 테넌트에 소속되어 전환할 필요가 없습니다."
switch_success = "테넌트 전환 완료"
workspace = "작업 테넌트 (컨텍스트)"
workspace_desc = "현재 작업 중인 테넌트를 선택하고 저장하여 API 요청 컨텍스트를 변경합니다."
[ui.dev.audit]
load_more = "더 보기"
title = "감사 로그"
[ui.dev.profile]
menu_aria = "계정 메뉴 열기"
menu_title = "계정"
unknown_email = "unknown@example.com"
unknown_name = "Unknown User"
title = "내 정보"
subtitle = "사용자 상세 정보 및 할당된 역할(Role)을 확인합니다."
loading = "프로필 정보를 불러오는 중..."
error = "프로필 정보를 불러오지 못했습니다."
[ui.dev.clients]
new = "연동 앱 추가"
search_placeholder = "연동 앱 이름/ID로 검색..."
tenant_scoped = "Tenant-scoped"
untitled = "Untitled"
[ui.dev.dashboard]
ready_badge = "devfront ready"
[ui.dev.header]
plane = "Dev Plane"
subtitle = "Manage your applications"
[ui.dev.session]
auto_extend = "세션 만료 관리"
active = "세션 활성"
disabled = "자동 연장 비활성화"
unknown = "알 수 없음"
expired = "세션 만료"
expiring = "만료 임박: {{minutes}}분 {{seconds}}초 남음"
remaining = "만료 예정: {{minutes}}분 {{seconds}}초 남음"
refresh = "세션 만료 시간 갱신"
refreshing = "세션 만료 시간 갱신 중..."
[ui.userfront.app_label]
admin_console = "Admin Console"
baron = "Baron 로그인"
dev_console = "Dev Console"
[ui.userfront.auth_method]
ory = "Ory 세션"
session = "세션"
[ui.userfront.dashboard]
last_auth_label = "최근 인증"
link_status_label = "연동 상태"
status_history = "연동 정보"
[ui.userfront.device]
android = "Mobile(Android)"
ios = "Mobile(iOS)"
linux = "Desktop(Linux)"
macos = "Desktop(macOS)"
windows = "Desktop(Windows)"
[ui.userfront.error]
go_home = "홈으로 이동"
go_login = "로그인으로 이동"
[ui.userfront.forgot]
heading = "비밀번호를 잊으셨나요?"
input_label = "이메일 또는 휴대폰 번호"
submit = "재설정 링크 전송"
title = "비밀번호 재설정"
[ui.userfront.login]
forgot_password = "비밀번호를 잊으셨나요?"
signup = "회원가입"
[ui.userfront.login_success]
later = "나중에 하기 (대시보드로 이동)"
qr = "QR 인증 (카메라 켜기)"
title = "로그인 완료"
[ui.userfront.consent]
accept = "동의하고 계속하기"
requested_scopes = "요청된 권한"
title = "접근 권한 요청"
[ui.userfront.nav]
dashboard = "대시보드"
logout = "로그아웃"
profile = "내 정보"
qr_scan = "QR 스캔"
[ui.userfront.profile]
department_empty = "소속 정보 없음"
manage = "프로필 관리"
user_fallback = "사용자"
[ui.userfront.qr]
rescan = "다시 스캔"
result_success = "승인 완료"
title = "Scan QR Code"
[ui.userfront.reset]
confirm_password = "새 비밀번호 확인"
new_password = "새 비밀번호"
submit = "비밀번호 변경"
subtitle = "새로운 비밀번호 설정"
title = "새 비밀번호 설정"
[ui.userfront.sections]
apps = "나의 App 현황"
audit = "접속이력"
sessions = "활성 세션"
[ui.userfront.session]
active = "세션 활성"
unknown = "알 수 없음"
[ui.userfront.signup]
complete = "가입 완료"
next_step = "다음 단계"
title = "회원가입"
[msg.admin.api_keys.create]
error = "API 키 생성에 실패했습니다."
name_required = "이름은 필수입니다."
scope_required = "최소 하나 이상의 권한을 선택해야 합니다."
scopes_count = "총 {{count}}개의 권한이 할당됩니다."
scopes_hint = "생성 즉시 활성화되어 사용 가능합니다."
subtitle = "내부 시스템 연동을 위한 보안 인증 키를 구성합니다."
[msg.admin.api_keys.create.success]
copy_hint = "복사 버튼을 눌러 안전한 곳(비밀번호 관리자 등)에 저장하세요."
notice = "아래의 비밀번호(Secret)는 보안을 위해 "
notice_emphasis = "지금 한 번만"
notice_suffix = "표시됩니다."
[msg.admin.api_keys.list]
delete_confirm = "API 키 \\\\\\\"{{name}}\\\\\\\"를 삭제할까요?"
empty = "등록된 API 키가 없습니다."
fetch_error = "API 키 목록 조회에 실패했습니다."
subtitle = "서버 간 통신(Machine-to-Machine)을 위한 API 키를 발급하고 관리합니다."
[msg.admin.api_keys.list.registry]
count = "총 {{count}}개 API 키"
[msg.admin.audit]
empty = "아직 수집된 감사 로그가 없습니다."
end = "감사 로그의 마지막입니다."
load_error = "감사 로그를 불러오지 못했습니다: {{error}}"
loading = "감사 로그를 불러오는 중..."
subtitle = "Command 요청 기반 ClickHouse 로그를 조회합니다. 사용자/테넌트는 추후 세션 연동 시 자동 채워집니다."
[msg.admin.audit.filters]
empty = "필터 없음"
[msg.admin.audit.registry]
count = "로드된 로그 {{count}}건"
[msg.admin.common]
forbidden = "이 작업을 수행할 권한이 없습니다."
[msg.admin.groups]
[msg.admin.groups.create]
description = "부서나 팀과 같은 새로운 조직 단위를 추가합니다."
title = "새 조직 단위 생성"
[msg.admin.groups.list]
create_error = "생성 실패"
create_success = "조직 단위가 생성되었습니다."
delete_confirm = "정말로 삭제하시겠습니까?"
delete_error = "삭제 실패"
delete_success = "조직 단위가 삭제되었습니다."
empty = "테넌트에 등록된 조직 단위가 없습니다."
import_error = "가져오기 실패"
import_success = "조직도가 임포트되었습니다."
loading = "로딩 중..."
subtitle = "이 테넌트에 정의된 사용자 그룹 목록입니다."
[msg.admin.groups.members]
add_success = "구성원이 추가되었습니다."
count = "{{count}} 명"
empty = "멤버가 없습니다."
remove_confirm = "제거하시겠습니까?"
remove_success = "구성원이 제외되었습니다."
title = "[{{name}}] 멤버 관리"
[msg.admin.groups.prompt]
user_id = "추가할 사용자의 UUID를 입력하세요:"
[msg.admin.groups.roles]
assign_success = "역할이 할당되었습니다."
description = "이 조직의 구성원들이 대상 테넌트에서 상속받을 역할을 선택하세요."
empty = "할당된 역할이 없습니다."
remove_confirm = "역할을 회수하시겠습니까?"
remove_success = "역할이 회수되었습니다."
[msg.admin.header]
subtitle = "Tenant isolation & least privilege by default"
[msg.admin.notice]
idp_policy = "IDP 관리 키는 서버 내부 래핑 API로만 사용하며, 감사·레이트리밋을 기본 적용합니다."
scope = "관리 기능은 /admin 네임스페이스에서만 노출합니다."
[msg.admin.org]
hover_member_info = "마우스를 올리면 상세 정보를 확인할 수 있습니다."
import_description = "CSV 파일을 업로드하여 조직도를 일괄 등록합니다."
import_error = "조직도 임포트 중 오류가 발생했습니다."
import_success = "조직도가 성공적으로 임포트되었습니다."
[msg.admin.overview]
description = "모든 테넌트 공통 지표와 정책 상태를 한 곳에서 확인합니다."
idp_fallback = "Fallback: Descope"
idp_primary = "IDP: Ory primary"
[msg.admin.overview.playbook]
description = "운영 정책, 레이트리밋, 감사 로그의 기본 룰을 요약합니다."
idp_body = "모든 IDP 호출은 backend를 통해서만 수행하며, Hydra/Kratos admin 포트는 외부에 노출하지 않습니다."
idp_title = "Backend-only IDP access"
tenant_body = "Tenant 헤더와 감사 로그 규칙을 기본 적용하며, 향후 Keto 정책으로 확장 예정입니다."
tenant_title = "Tenant isolation"
[msg.admin.overview.quick_links]
description = "주요 운영 화면으로 바로 이동합니다."
[msg.admin.overview.summary]
audit_events_24h = "최근 24시간 감사 로그"
oidc_clients = "등록된 OIDC 클라이언트"
policy_gate = "정책 가이트 상태"
total_tenants = "전체 테넌트 수"
[msg.admin.tenants]
approve_confirm = "이 테넌트를 승인하시겠습니까?"
approve_success = "테넌트가 승인되었습니다."
delete_confirm = "테넌트 \\\\\\\"{{name}}\\\\\\\"를 삭제할까요?"
delete_success = "테넌트가 삭제되었습니다."
empty = "아직 등록된 테넌트가 없습니다."
fetch_error = "테넌트 목록 조회에 실패했습니다."
missing_id = "테넌트 ID가 없습니다."
not_found = "테넌트를 찾을 수 없습니다."
remove_sub_confirm = "테넌트 \\\\\\\"{{name}}\\\\\\\"을(를) 하위 조직에서 제외할까요?"
subtitle = "현재 등록된 테넌트를 확인하고 상태를 관리합니다."
[msg.admin.tenants.admins]
add_success = "관리자가 추가되었습니다."
empty = "등록된 관리자가 없습니다."
remove_confirm = "관리자를 삭제하시겠습니까?"
remove_last = "마지막 관리자는 회수할 수 없습니다."
remove_self = "본인의 권한은 회수할 수 없습니다."
remove_success = "권한이 회수되었습니다."
subtitle = "이 테넌트의 자원을 관리할 수 있는 사용자 목록입니다."
[msg.admin.tenants.create]
subtitle = "글로벌 운영 기준의 신규 테넌트를 등록합니다."
[msg.admin.tenants.create.form]
domains_help = "이 도메인을 가진 이메일로 가입한 사용자는 자동으로 이 테넌트에 배정됩니다."
[msg.admin.tenants.create.memo]
body = "생성 직후에는 기본 활성 상태로 부여되며, 필요 시 상태를 수정하세요."
subtitle = "Tenant 권한 정책은 추후 Keto 연계로 확장 예정입니다."
[msg.admin.tenants.create.profile]
subtitle = "필수 정보만 입력해도 생성 가능합니다. Slug는 없으면 자동 생성됩니다."
[msg.admin.tenants.members]
desc = "조직에 소속된 사용자 목록을 확인합니다."
empty = "소속된 사용자가 없습니다."
limit_notice = "하위 조직이 많아 상위 10개 조직의 멤버만 표시됩니다."
[msg.admin.tenants.owners]
add_success = "소유자가 추가되었습니다."
empty = "등록된 소유자가 없습니다."
remove_confirm = "소유자를 삭제하시겠습니까?"
remove_last = "마지막 소유자는 회수할 수 없습니다."
remove_self = "본인의 권한은 회수할 수 없습니다."
remove_success = "소유자 권한이 회수되었습니다."
subtitle = "이 테넌트의 최상위 권한을 가진 소유자(조직장) 목록입니다."
[msg.admin.tenants.registry]
count = "총 {{count}}개 테넌트"
[msg.admin.tenants.schema]
empty = "등록된 커스텀 필드가 없습니다. 필드 추가를 눌러 시작하세요."
forbidden_desc = "사용자 스키마 설정은 관리자만 접근할 수 있습니다."
missing_id = "테넌트 ID가 없습니다."
subtitle = "이 테넌트의 사용자에게 적용할 커스텀 속성을 정의합니다."
update_error = "스키마 업데이트에 실패했습니다."
update_success = "스키마가 성공적으로 업데이트되었습니다."
[msg.admin.tenants.sub]
empty = "하위 테넌트가 없습니다."
subtitle = "현재 테넌트 하위에 생성된 조직입니다."
[msg.admin.users]
[msg.admin.users.bulk]
delete_confirm = "선택한 {{count}}명의 사용자를 정말로 삭제하시겠습니까?"
delete_success = "{{count}}명의 사용자가 삭제되었습니다."
description = "CSV 파일을 통해 사용자를 일괄 등록하거나 관리합니다."
move_description = "선택한 사용자를 다른 테넌트로 일괄 이동합니다."
move_error = "사용자 이동 중 오류가 발생했습니다."
move_success = "{{count}}명의 사용자가 성공적으로 이동되었습니다."
parsed_count = "{{count}}행의 데이터가 파싱되었습니다."
schema_incompatible = "대상 테넌트 스키마에 없는 필드는 유실될 수 있습니다:"
schema_missing = "대상 테넌트의 필수 필드가 누락되어 있습니다:"
update_success = "사용자 정보가 일괄 업데이트되었습니다."
[msg.admin.users.create]
error = "사용자 생성에 실패했습니다."
password_required = "비밀번호를 입력하거나 자동 생성을 사용해 주세요."
success = "사용자가 성공적으로 생성되었습니다."
[msg.admin.users.create.account]
subtitle = "새로운 사용자를 시스템에 등록합니다."
[msg.admin.users.create.form]
email_required = "이메일은 필수입니다."
field_invalid = "{{label}} 형식이 올바르지 않습니다."
field_required = "{{label}}은(는) 필수입니다."
login_id_help = "msg.admin.users.create.form.login_id_help"
name_required = "이름은 필수입니다."
password_auto_help = "비워두면 시스템이 초기 비밀번호를 자동 생성합니다."
password_manual_help = "초기 비밀번호를 직접 설정합니다."
role_help = "시스템 접근 권한을 결정합니다."
[msg.admin.users.create.password_generated]
default = "초기 비밀번호가 생성되었습니다."
with_email = "{{email}} 계정의 초기 비밀번호입니다."
[msg.admin.users.detail]
delete_confirm = "삭제하시겠습니까?"
delete_error = "msg.admin.users.detail.delete_error"
delete_success = "사용자가 삭제되었습니다."
edit_subtitle = "{{email}} 계정의 정보를 수정합니다."
history_desc = "최근 로그인한 연동 서비스(RP) 목록입니다."
no_history = "아직 이용한 서비스가 없습니다."
no_tenants = "소속된 테넌트 정보가 없습니다."
not_found = "사용자를 찾을 수 없습니다."
password_generated = "안전한 비밀번호가 생성되었습니다."
password_generated_help = "보안 기준에 맞는 임시 비밀번호를 자동 생성해 즉시 적용합니다."
password_manual_required = "비밀번호를 입력해 주세요."
reset_auto_desc = "해킹이 어려운 복잡한 임시 비밀번호를 시스템이 즉시 생성합니다."
reset_password_confirm = "msg.admin.users.detail.reset_password_confirm"
reset_password_help = "사용자의 비밀번호를 강제로 재설정하고 자동 생성하거나 직접 입력한 비밀번호를 적용합니다."
security_desc = "비밀번호 초기화 및 보안 설정을 관리합니다."
self_password_reset_blocked = "본인 계정의 비밀번호는 사용자 포털(UserFront) 설정에서 변경해 주세요."
tenant_slug_help = "사용자의 주된 정체성을 결정하는 대표 조직을 지정합니다."
tenants_desc = "각 테넌트별로 정의된 커스텀 스키마 정보를 관리합니다."
update_error = "사용자 수정에 실패했습니다."
update_success = "사용자 정보가 수정되었습니다."
[msg.admin.users.detail.form]
field_required = "필수입니다."
invalid_format = "형식이 올바르지 않습니다."
name_required = "이름은 필수입니다."
[msg.admin.users.detail.security]
password_hint = "비밀번호를 변경하려면 입력하세요. 비워두면 현재 비밀번호가 유지됩니다."
[msg.admin.users.list]
delete_confirm = "사용자 \\\\\\\"{{name}}\\\\\\\"을(를) 정말 삭제하시겠습니까?"
empty = "검색 결과가 없습니다."
fetch_error = "사용자 목록 조회에 실패했습니다."
subtitle = "시스템 사용자를 조회하고 관리합니다. (Local DB)"
[msg.admin.users.list.columns]
description = "테이블에 표시할 컬럼을 선택합니다."
no_custom = "이 테넌트에 정의된 커스텀 필드가 없습니다."
[msg.admin.users.list.registry]
count = "총 {{count}}명의 사용자가 등록되어 있습니다."
[msg.common]
copied = "복사되었습니다."
copied_to_clipboard = "클립보드에 복사되었습니다."
error = "오류가 발생했습니다."
forbidden = "접근 권한이 없습니다."
loading = "로딩 중..."
no_description = "설명이 없습니다."
parsing = "데이터 파싱 중..."
requesting = "요청 중..."
saving = "저장 중..."
unknown_error = "알 수 없는 오류"
[msg.dev]
logout_confirm = "로그아웃 하시겠습니까?"
[msg.dev.audit]
empty = "조회된 감사 로그가 없습니다."
forbidden = "감사 로그를 조회할 권한이 없습니다. 관리자에게 권한을 요청해주세요."
load_error = "감사 로그 조회 실패: {{error}}"
loaded_count = "로드된 로그 {{count}}건"
loading = "감사 로그를 불러오는 중..."
subtitle = "현재 테넌트/앱 범위의 DevFront 작업 이력을 조회합니다."
[msg.dev.auth]
access_denied_description = "DevFront는 관리자 전용 화면입니다. 권한이 필요하면 관리자에게 요청해 주세요."
access_denied_title = "접근 권한이 없습니다."
[msg.dev.clients]
delete_confirm = "정말로 이 앱을 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다."
delete_error = "삭제 실패: {{error}}"
deleted = "앱이 삭제되었습니다."
load_error = "앱 정보를 불러오지 못했습니다: {{error}}"
loading = "앱 정보를 불러오는 중..."
showing = "전체 {{total}}개 중 {{shown}}개를 표시하는 중입니다."
[msg.dev.clients.consents]
empty = "등록된 동의 내역이 없습니다."
load_error = "동의 내역을 불러오지 못했습니다: {{error}}"
loading = "동의 내역을 불러오는 중..."
revoke_confirm = "정말로 이 사용자의 권한을 철회하시겠습니까? 철회 시 사용자는 다음 접속 시 다시 동의해야 합니다."
showing = "전체 {{total}}명 중 {{from}}번째부터 {{to}}번째 사용자를 표시합니다."
subtitle = "OIDC Relying Party 사용자 권한을 검토·관리합니다."
[msg.dev.clients.details]
copy_client_id = "Client ID가 복사되었습니다."
copy_client_secret = "Client Secret이 복사되었습니다."
copy_endpoint = "{{label}}가 복사되었습니다."
load_error = "앱 상세 정보를 불러오지 못했습니다: {{error}}"
loading = "앱 상세 정보를 불러오는 중..."
missing_id = "Client ID가 필요합니다."
redirect_saved = "Redirect URIs가 저장되었습니다."
rotate_confirm = "경고: Client Secret을 재발급하면 기존 시크릿은 즉시 무효화됩니다.\\\\n연동된 애플리케이션이 중단될 수 있습니다. 계속하시겠습니까?"
rotate_error = "재발급 실패: {{error}}"
save_error = "저장 실패: {{error}}"
secret_rotated = "Client Secret이 재발급되었습니다."
secret_unavailable = "SECRET_NOT_AVAILABLE"
subtitle = "OIDC 자격 증명과 엔드포인트를 관리합니다."
[msg.dev.clients.details.redirect]
description = "인증 성공 후 사용자를 리다이렉트할 허용된 URL 목록입니다. 콤마(,)로 구분하여 여러 개 입력할 수 있습니다."
[msg.dev.clients.details.security]
footer = "비밀키 재발행 작업에는 관리자 세션 TTL 확인과 레이트리밋, 알림 연동을 권장합니다."
note = "엔드포인트는 읽기 전용으로 유지하고, 비밀키 재발행/복사는 감사 로그와 연계하세요."
[msg.dev.clients.federation]
add_subtitle = "외부 OIDC 제공자를 연결합니다."
empty = "등록된 IdP 설정이 없습니다."
subtitle = "이 애플리케이션의 외부 IdP 설정을 관리합니다."
[msg.dev.clients.general]
load_error = "앱 설정을 불러오지 못했습니다: {{error}}"
loading = "앱 설정을 불러오는 중..."
save_error = "저장 실패: {{error}}"
saved = "설정이 저장되었습니다."
status_changed = "상태가 {{status}}로 변경되었습니다."
[msg.dev.clients.general.identity]
logo_help = "인증 화면에 표시될 PNG/SVG URL입니다."
subtitle = "앱 이름과 설명, 로고를 설정합니다."
[msg.dev.clients.general.public_key]
allowed_algorithms_tooltip = "허용 알고리즘: {{algorithms}}"
auth_method_client_secret_basic_help = "일반적인 서버 사이드 앱 인증 방식입니다."
auth_method_none_help = "PKCE 기반 public client에 사용하는 방식입니다."
auth_method_private_key_jwt_help = "Trusted RP bootstrap과 JAR 검증에 필요한 서명 키 기반 인증 방식입니다."
cache_empty = "아직 캐시된 JWKS가 없습니다. Refresh를 눌러 백엔드 캐시 상태를 조회하세요."
cache_help = "백엔드가 마지막으로 검증한 공개키 캐시 상태입니다."
cache_refresh_failed = "JWKS 캐시 새로고침에 실패했습니다: {{error}}"
cache_refreshed = "JWKS 캐시를 새로 고쳤습니다."
cache_revoke_confirm = "JWKS 캐시를 삭제하면 다음 검증 전에 다시 갱신해야 합니다. 계속할까요?"
cache_revoke_failed = "JWKS 캐시 삭제에 실패했습니다: {{error}}"
cache_revoked = "JWKS 캐시를 삭제했습니다."
guide_example = "권장 예시: https://rp.example.com/.well-known/jwks.json"
guide_intro = "JWKS URI는 Baron이 만드는 값이 아니라 RP backend가 공개키를 노출하는 URL입니다."
guide_step_1 = "RP 서버에서 key pair를 생성하고 private key는 RP backend에만 보관합니다."
guide_step_2 = "RP backend가 public key를 JWKS(JSON Web Key Set) 형태로 제공하는 endpoint를 준비합니다."
guide_step_3 = "예: https://rp.example.com/.well-known/jwks.json 같은 URL을 DevFront에 입력합니다."
headless_help = "애플리케이션 고유의 디자인으로 로그인 화면을 구성할 수 있습니다. 실제 아이디/비밀번호 확인 및 보안 검증 로직은 Baron API를 통해 백그라운드에서 처리됩니다."
jwks_inline_help = "SSH-RSA 공개키 형식을 우선 권장합니다. 'ssh-rsa AAA...' 형식으로 입력하면 Baron이 OIDC 표준인 JWKS(JSON)로 자동 변환하여 저장합니다."
jwks_uri_help = "RP backend가 제공하는 공개키 endpoint URL을 입력하세요. 예: https://rp.example.com/.well-known/jwks.json"
request_object_alg_help = "Headless Login을 사용할 때 JAR(Request Object) 서명 알고리즘을 명시합니다."
source_help = "애플리케이션의 공개키(SSH-RSA)를 직접 등록하거나, 운영 환경이라면 JWKS URI를 통해 자동으로 검증할 수 있습니다."
subtitle = "Trusted RP 판정에 필요한 공개키와 headless login 관련 설정을 관리합니다."
[msg.dev.clients.general.public_key.cache]
missing_algorithm_badge = "알고리즘 미선언"
missing_algorithm_reason = "이 키는 `alg`가 비어 있어서 저장할 수 없습니다."
missing_algorithms_help = "저장 전 JWKS 각 키에 `alg`를 명시해 주세요: {{details}}"
missing_algorithms_title = "알고리즘이 선언되지 않았습니다."
parsed_keys_empty = "No parsed JWKS keys are available yet."
parsed_keys_help = "Raw JWKS stays hidden. Only parsed key metadata is shown here."
unsupported_algorithm_reason = "이 알고리즘은 Headless Login에서 지원되지 않습니다."
unsupported_algorithms_help = "저장 전 JWKS를 수정해 주세요: {{details}}"
unsupported_algorithms_title = "지원하지 않는 알고리즘이 감지되었습니다."
[msg.dev.clients.general.public_key.validation]
headless_requires_alg = "Headless Login을 사용하려면 Request Object Signing Algorithm을 입력해야 합니다."
headless_requires_private_key_jwt = "Headless Login을 사용하려면 token endpoint auth method가 private_key_jwt여야 합니다."
headless_requires_public_key = "Headless Login을 사용하려면 JWKS URI가 필요합니다."
invalid_jwks_inline = "입력값이 유효한 JSON(JWKS) 형식이 아닙니다. SSH-RSA의 경우 'ssh-rsa'로 시작해야 합니다."
invalid_jwks_uri = "JWKS URI 형식이 올바르지 않습니다."
missing_jwks_inline = "공개키(SSH-RSA 또는 JWKS)를 입력해야 합니다."
missing_jwks_uri = "JWKS URI를 입력해야 합니다."
missing_parsed_algorithms = "JWKS에 알고리즘(`alg`)이 선언되지 않은 키가 있습니다: {{details}}"
private_key_jwt_requires_public_key = "서명 키 기반 인증을 사용하려면 JWKS URI가 필요합니다."
unsupported_parsed_algorithms = "JWKS에 지원하지 않는 알고리즘이 있습니다: {{details}}"
[msg.dev.clients.general.redirect]
help = "인증 후 리다이렉트될 URI를 입력하세요. 생성 후 연동 설정 탭에서 수정 가능합니다."
[msg.dev.clients.general.scopes]
empty = "등록된 스코프가 없습니다."
subtitle = "이 앱이 요청할 수 있는 권한 범위를 정의합니다."
[msg.dev.clients.general.security]
pkce_help = "PKCE 앱 (SPA/모바일): 브라우저나 앱처럼 비밀키를 보관하기 어려운 경우 사용하며, PKCE가 강제됩니다."
private_help = "Server side App (서버 사이드 앱): Node.js, Java 등 비밀키를 안전하게 보관 가능한 경우 사용합니다."
subtitle = "앱 유형을 선택하세요. 보안 수준에 따라 인증 방식이 달라집니다."
[msg.dev.clients.help]
docs_body = "Includes PKCE, client_secret_basic, redirect URI validation tips."
subtitle = "Developer guides for Confidential/Public clients, redirect URIs, and auth methods."
[msg.dev.clients.registry]
description = "OIDC 앱, 인증 방식, 리다이렉트 URI, 비밀키 재발행을 감사 로그와 함께 관리합니다."
[msg.dev.clients.scopes]
email = "이메일 주소 접근"
openid = "OIDC 인증 필수 스코프"
profile = "기본 프로필 정보 접근"
[msg.dev.dashboard]
[msg.dev.dashboard.hero]
body = "Hydra Admin API와 동기화된 RP 목록, 상태 토글, Consent 회수까지 devfront에서 처리하도록 준비합니다."
title_emphasis = " 하나의 화면"
title_prefix = "RP 등록 현황과 Consent 상태를"
title_suffix = "에서 관리합니다."
[msg.dev.dashboard.notice]
consent_audit = "Consent 회수는 감사 로그와 연계"
dev_scope = "RP 정책은 dev scope에서만 적용"
hydra_health = "Hydra Admin 상태 체크 준비"
[msg.dev.forbidden]
default = "해당 리소스에 접근할 권한이 없습니다. 관리자에게 문의하세요."
rp_admin = "RP 관리자는 담당 앱의 리소스만 조회할 수 있습니다."
tenant_admin = "테넌트 관리자 권한이 올바르게 설정되지 않았거나 만료되었습니다."
title = "{{resource}} 접근 권한 없음"
user = "일반 사용자는 관리자 화면에 접근할 수 없습니다."
[msg.dev.sidebar]
notice = "개발자 전용 콘솔입니다."
notice_detail = "연동 앱 등록 및 관리를 수행할 수 있습니다."
[msg.info]
saved_success = "저장이 완료되었습니다."
[msg.userfront]
greeting = "안녕하세요, {{name}}님"
[msg.userfront.audit]
browser = "브라우저: {{value}}"
date = "접속일자: {{value}}"
device = "접속환경: {{value}}"
end = "더 이상 항목이 없습니다."
filtered_empty = "활성 세션으로 필터링된 접속 이력이 없습니다."
ip = "접속 IP: {{value}}"
load_more_error = "더 불러오지 못했습니다."
result = "인증결과: {{value}}"
session_id = "Session ID: {{value}}"
status = "현황: (준비중)"
[msg.userfront.consent]
accept_error = "동의 처리에 실패했습니다: {{error}}"
client_id = "클라이언트 ID: {{id}}"
client_unknown = "알 수 없는 앱"
description = "아래 서비스가 회원님의 계정 정보에 접근하려고 합니다.\\\\n계속 진행하려면 동의 여부를 선택해 주세요."
load_error = "동의 정보를 불러오는데 실패했습니다: {{error}}"
missing_redirect = "동의가 처리되었으나 리다이렉트 URL을 받지 못했습니다."
redirect_notice = "동의 후 자동으로 서비스로 이동합니다."
scope_count = "총 {{count}}개"
[msg.userfront.consent.cancel]
confirm = "권한 동의를 취소하면 해당 서비스를 이용할 수 없습니다. 취소하시겠습니까?"
error = "취소 처리 중 오류가 발생했습니다: {{error}}"
[msg.userfront.consent.scope]
email = "이메일 주소 (계정 식별 및 알림 용도)"
offline_access = "오프라인 접근 (로그인 유지)"
openid = "OpenID 인증 정보 (로그인 상태 확인)"
phone = "휴대폰 번호 (본인 인증 및 알림)"
profile = "기본 프로필 정보 (이름, 사용자 식별자)"
[msg.userfront.dashboard]
approved_device = "승인 기기: {{device}}"
approved_ip = "승인 IP: {{ip}}"
audit_empty = "최근 접속 이력이 없습니다."
audit_load_error = "접속이력을 불러오지 못했습니다."
auth_method = "인증수단: {{method}}"
client_id = "Client ID: {{id}}"
client_id_missing = "Client ID 없음"
current_status = "현재 상태: {{status}}"
last_auth = "최근 인증: {{value}}"
link_missing = "이동할 페이지 주소(Client URI)가 설정되지 않았습니다."
link_open_error = "해당 링크를 열 수 없습니다."
render_error = "대시보드 렌더링 오류: {{error}}"
session_id_copied = "세션 ID가 복사되었습니다."
[msg.userfront.dashboard.activities]
empty = "연동된 앱이 없습니다."
empty_detail = "앱을 연동하면 최근 활동과 상태가 표시됩니다."
error = "연동 정보를 불러오지 못했습니다."
[msg.userfront.dashboard.sessions]
browser = "브라우저: {{value}}"
empty = "활성 세션이 없습니다."
empty_detail = "같은 계정으로 로그인한 기기가 여기에 표시됩니다."
error = "세션 정보를 불러오지 못했습니다."
os = "OS: {{value}}"
recent_app = "최근 접속 앱: {{app}}"
session_id = "세션 ID: {{id}}"
[msg.userfront.dashboard.sessions.revoke]
confirm = "{{target}} 세션을 종료하시겠습니까?\n대상 기기에서는 다시 로그인이 필요합니다."
error = "세션 종료 실패: {{error}}"
success = "세션이 종료되었습니다."
[msg.userfront.dashboard.approved_session]
copy_click = "{{label}}: {{id}}\\\\n클릭하면 복사됩니다."
copy_tap = "{{label}}: {{id}}\\\\n탭하면 복사됩니다."
none = "{{label}} 없음"
[msg.userfront.dashboard.revoke]
confirm = "{{app}} 앱과의 연동을 해지하시겠습니까?\\\\n해지하면 다음 로그인 시 다시 동의가 필요합니다."
error = "해지 실패: {{error}}"
success = "{{app}} 연동이 해지되었습니다."
[msg.userfront.dashboard.scopes]
empty = "요청된 권한이 없습니다."
[msg.userfront.dashboard.timeline]
load_error = "접속이력을 불러오지 못했습니다."
[msg.userfront.error]
detail_contact = "관리자에게 문의해 주세요."
detail_generic = "오류가 발생했습니다."
detail_request = "요청을 처리하는 중 문제가 발생했습니다."
id = "오류 ID: {{id}}"
title = "인증 과정에서 오류가 발생했습니다"
title_generic = "오류가 발생했습니다"
title_with_code = "오류: {{code}}"
type = "오류 종류: {{type}}"
[msg.userfront.error.ory]
"$normalizedCode" = "{{error}}"
access_denied = "사용자가 동의를 거부했습니다."
consent_required = "앱 접근 동의가 필요합니다."
interaction_required = "추가 상호작용이 필요합니다. 다시 시도해 주세요."
invalid_client = "클라이언트 인증 정보가 유효하지 않습니다."
invalid_grant = "인증 요청이 만료되었거나 유효하지 않습니다."
invalid_request = "잘못된 요청입니다."
invalid_scope = "요청한 권한 범위가 유효하지 않습니다."
login_required = "로그인이 필요합니다."
request_forbidden = "요청이 거부되었습니다."
server_error = "인증 서버 오류가 발생했습니다."
temporarily_unavailable = "인증 서버를 일시적으로 사용할 수 없습니다."
unauthorized_client = "해당 클라이언트는 이 요청을 수행할 수 없습니다."
unsupported_response_type = "지원하지 않는 응답 타입입니다."
[msg.userfront.error.whitelist]
"$normalizedCode" = "{{error}}"
bad_request = "입력값을 확인해 주세요."
invalid_session = "세션이 만료되었습니다. 다시 로그인해 주세요."
not_found = "요청한 페이지를 찾을 수 없습니다."
password_or_email_mismatch = "이메일 혹은 비밀번호가 일치하지 않습니다."
rate_limited = "요청이 많습니다. 잠시 후 다시 시도해 주세요."
recovery_expired = "재설정 링크가 만료되었습니다. 다시 요청해 주세요."
recovery_invalid = "재설정 링크가 유효하지 않습니다."
settings_disabled = "현재 계정 설정 화면은 준비 중입니다."
verification_required = "추가 인증이 필요합니다. 안내에 따라 진행해 주세요."
[msg.userfront.forgot]
description = "계정과 연결된 이메일 주소 또는 휴대폰 번호를 입력하시면, 비밀번호를 재설정할 수 있는 링크를 보내드립니다."
dry_send = "drySend 모드: 실제 이메일/SMS는 발송되지 않습니다."
error = "전송에 실패했습니다: {{error}}"
input_required = "이메일 또는 휴대폰 번호를 입력해주세요."
sent = "비밀번호 재설정 링크가 전송되었습니다. 이메일 또는 SMS를 확인해주세요."
[msg.userfront.login]
cookie_check_failed = "로그인 확인 실패: {{error}}"
dry_send = "drySend 모드: 실제 이메일/SMS는 발송되지 않습니다."
link_failed = "오류: {{error}}"
link_send_failed = "전송 실패: {{error}}"
link_sent_email = "입력하신 이메일로 로그인 링크를 보냈습니다."
link_sent_phone = "입력하신 번호로 로그인 링크를 보냈습니다."
link_timeout = "시간이 경과되었습니다."
no_account = "계정이 없으신가요?"
oidc_failed = "OIDC 로그인 처리에 실패했습니다. 다시 시도해 주세요."
qr_expired = "시간이 경과되었습니다."
qr_init_failed = "QR 초기화에 실패했습니다: {{error}}"
qr_login_required = "로그인 한 상태여야 QR 스캔으로 로그인 할 수 있습니다"
token_missing = "로그인 토큰을 확인할 수 없습니다."
verification_failed = "승인 처리에 실패했습니다: {{error}}"
[msg.userfront.login.link]
approved = "msg.userfront.login.link.approved"
helper = "입력하신 정보로 로그인 링크를 전송합니다."
missing_login_id = "이메일 또는 휴대폰 번호를 입력해 주세요."
missing_phone = "휴대폰 번호를 입력해 주세요."
resend_wait = "재발송은 {{time}} 후 가능합니다."
short_code_help = "링크로 받은 값의 뒤 문자 2개와 숫자 6자리를 입력하셔도 로그인 할 수 있습니다."
[msg.userfront.login.password]
failed = "로그인 실패: {{error}}"
missing_credentials = "이메일(또는 전화번호)와 비밀번호를 모두 입력해주세요."
[msg.userfront.login.qr]
load_failed = "QR 코드를 불러오지 못했습니다."
scan_hint = "모바일 앱으로 스캔하세요"
[msg.userfront.login.short_code]
invalid = "문자 2개와 숫자 6자리를 입력해 주세요."
[msg.userfront.login.unregistered]
body = "가입되지 않은 정보입니다.\\\\n회원가입 후 이용해 주세요."
[msg.userfront.login.verification]
approved = "승인되었습니다. 로그인은 요청하신 창에서 완료됩니다."
approved_local = "승인 되었습니다. 이 기기는 로그인되어 있는 상태입니다. 원격 창도 로그인이 될 예정입니다"
success = "로그인 승인에 성공했습니다."
[msg.userfront.login_success]
subtitle = "성공적으로 로그인되었습니다."
[msg.userfront.profile]
department_missing = "소속 정보 없음"
department_required = "소속을 입력해주세요."
email_missing = "이메일 없음"
greeting = "안녕하세요, {{name}}님"
load_failed = "정보를 불러올 수 없습니다."
name_missing = "이름 없음"
name_required = "이름을 입력해주세요."
phone_required = "휴대폰 번호를 입력해주세요."
phone_verify_required = "휴대폰 번호 인증이 필요합니다."
update_failed = "수정 실패: {{error}}"
update_success = "정보가 수정되었습니다."
[msg.userfront.profile.password]
change_failed = "비밀번호 변경 실패: {{error}}"
changed = "비밀번호가 변경되었습니다."
current_required = "현재 비밀번호를 입력해 주세요."
mismatch = "새 비밀번호가 일치하지 않습니다."
new_required = "새 비밀번호를 입력해 주세요."
subtitle = "현재 비밀번호 확인 후 새 비밀번호로 변경합니다."
[msg.userfront.profile.phone]
code_sent = "인증번호가 전송되었습니다."
send_failed = "전송 실패: {{error}}"
verified = "인증되었습니다."
verify_failed = "인증 실패: {{error}}"
verify_notice = "휴대폰 번호를 변경하려면 SMS 인증이 필요합니다."
[msg.userfront.profile.section]
basic = "계정 기본 정보를 관리합니다."
organization = "소속 및 구분 정보입니다."
security = "비밀번호를 안전하게 관리합니다."
[msg.userfront.qr]
approve_error = "msg.userfront.qr.approve_error"
approve_success = "msg.userfront.qr.approve_success"
camera_error = "카메라 오류: {{error}}"
permission_error = "카메라 권한 요청에 실패했습니다. 브라우저/OS 설정을 확인해주세요."
permission_required = "카메라 권한이 필요합니다."
[msg.userfront.reset]
invalid_body = "비밀번호 재설정 링크가 만료되었거나 잘못되었습니다. 다시 시도해주세요."
invalid_link = "유효하지 않은 재설정 링크입니다. (loginId/token 누락)"
invalid_title = "유효하지 않은 링크입니다."
policy_loading = "비밀번호 정책을 불러오는 중입니다..."
success = "비밀번호가 성공적으로 변경되었습니다. 다시 로그인해주세요."
[msg.userfront.reset.error]
empty_password = "비밀번호를 입력해주세요."
generic = "비밀번호 변경에 실패했습니다: {{error}}"
lowercase = "최소 1개 이상의 소문자를 포함해야 합니다."
min_length = "비밀번호는 최소 {{count}}자 이상이어야 합니다."
min_types = "비밀번호는 영문 대/소문자/숫자/특수문자 중 {{count}}가지 이상 포함해야 합니다."
mismatch = "비밀번호가 일치하지 않습니다."
number = "최소 1개 이상의 숫자를 포함해야 합니다."
symbol = "최소 1개 이상의 특수문자를 포함해야 합니다."
uppercase = "최소 1개 이상의 대문자를 포함해야 합니다."
[msg.userfront.reset.policy]
lowercase = "소문자 1개 이상"
min_length = "최소 {{count}}자 이상"
min_types = "영문 대/소문자/숫자/특수문자 중 {{count}}가지 이상"
number = "숫자 1개 이상"
symbol = "특수문자 1개 이상"
uppercase = "대문자 1개 이상"
[msg.userfront.sections]
apps_subtitle = "현재 연결된 앱과 최근 인증 상태입니다."
audit_subtitle = "Baron 로그인 기준의 최근 접근 기록입니다."
[msg.userfront.settings]
disabled = "현재 계정 설정 화면은 준비 중입니다."
[msg.userfront.signup]
failed = "가입 실패: {{error}}"
privacy_full = "개인정보 수집 및 이용 동의 전문..."
tos_full = "서비스 이용약관 전문..."
[msg.userfront.signup.agreement]
all_hint = "필수 약관 2개를 모두 확인하고 동의하면 다음 단계로 진행할 수 있습니다."
description = "계속 진행하려면 서비스 이용 조건과 개인정보 수집·이용 항목을 확인한 뒤 동의해주세요."
privacy_summary = "개인정보 수집 항목, 이용 목적, 보관 기준을 안내합니다."
progress = "필수 약관 {{total}}개 중 {{count}}개 동의 완료"
title = "서비스 이용을 위해\\\\n약관에 동의해주세요"
tos_summary = "서비스 이용 조건과 책임 범위를 확인할 수 있습니다."
[msg.userfront.signup.auth]
affiliate_notice = "가족사 회원의 경우 반드시 회사 공식 이메일을 입력해주세요."
title = "본인 확인을 위해\\\\n인증을 진행해주세요"
[msg.userfront.signup.email]
code_mismatch = "인증코드가 일치하지 않습니다."
duplicate = "이미 가입된 이메일입니다."
invalid = "유효한 이메일 형식이 아닙니다."
send_failed = "발송 실패: {{error}}"
verified = "✅ 이메일 인증 완료"
verify_failed = "인증 실패: {{error}}"
[msg.userfront.signup.password]
length_required = "비밀번호는 최소 12자 이상이어야 합니다."
lowercase_required = "소문자가 최소 1개 이상 포함되어야 합니다."
mismatch = "비밀번호가 일치하지 않습니다."
number_required = "숫자가 최소 1개 이상 포함되어야 합니다."
symbol_required = "특수문자가 최소 1개 이상 포함되어야 합니다."
title = "마지막으로\\\\n비밀번호를 설정해주세요"
uppercase_required = "대문자가 최소 1개 이상 포함되어야 합니다."
[msg.userfront.signup.password.rule]
lowercase = "소문자"
min_length = "{{count}}자 이상"
min_types = "문자 유형 {{count}}가지 이상"
number = "숫자"
symbol = "특수문자"
uppercase = "대문자"
[msg.userfront.signup.phone]
code_mismatch = "인증코드가 일치하지 않습니다."
send_failed = "발송 실패: {{error}}"
verified = "✅ 휴대폰 인증 완료"
verify_failed = "인증 실패: {{error}}"
[msg.userfront.signup.policy]
loading = "비밀번호 정책을 불러오는 중입니다..."
lowercase = "소문자"
min_length = "최소 {{count}}자 이상"
min_types = "영문 대/소문자/숫자/특수문자 중 {{count}}가지 이상"
number = "숫자"
summary = "보안 정책: {{rules}}"
symbol = "특수문자"
uppercase = "대문자"
[msg.userfront.signup.profile]
affiliate_hint = "가족사 이메일 사용 시 자동으로 선택됩니다."
title = "회원님의\\\\n소속 정보를 알려주세요"
[msg.userfront.signup.success]
body = "성공적으로 가입되었습니다."
title = "회원가입 완료"
[non]
[non.existent]
key = "존재하지 않는 키"
[test]
key = "테스트"
[ui]
[ui.admin]
brand = "Baron 로그인"
dev_role_switcher = "🛠 DEV Role Switcher"
dev_role_switcher_real = "실제 역할 사용"
title = "Admin Control"
[ui.admin.api_keys]
[ui.admin.api_keys.create]
name_label = "서비스 또는 목적 식별 이름"
name_placeholder = "예: Jenkins-CI, Grafana-Dashboard"
section_name = "키 이름 지정"
section_scopes = "권한 범위(Scopes) 선택"
submit = "API 키 발급하기"
title = "새 API 키 생성"
[ui.admin.api_keys.create.success]
copy_secret = "보안 시크릿 복사"
go_list = "저장했습니다. 목록으로 이동"
title = "API 키 생성 완료"
[ui.admin.api_keys.list]
add = "API 키 생성"
title = "API 키 관리 (M2M)"
[ui.admin.api_keys.list.breadcrumb]
list = "List"
section = "API Keys"
[ui.admin.api_keys.list.registry]
title = "API Key Registry"
[ui.admin.api_keys.list.table]
actions = "ACTIONS"
client_id = "CLIENT ID"
last_used = "LAST USED"
name = "NAME"
scopes = "SCOPES"
[ui.admin.audit]
export_csv = "Export CSV"
load_more = "Load more"
target = "Target · {{target}}"
title = "감사 로그"
[ui.admin.audit.breadcrumb]
logs = "Logs"
section = "Audit"
[ui.admin.audit.copy]
actor_id = "Copy actor id"
request_id = "Copy request id"
target = "Copy target"
[ui.admin.audit.details]
actor = "Actor"
actor_id = "Actor ID · {{value}}"
after = "After · {{value}}"
before = "Before · {{value}}"
device = "Device · {{value}}"
error = "Error · {{value}}"
event_id = "Event ID · {{value}}"
ip = "IP · {{value}}"
latency = "Latency · {{value}}"
request = "Request"
request_id = "Request ID · {{value}}"
result = "Result"
tenant = "Tenant · {{value}}"
[ui.admin.audit.filters]
placeholder = "필터 추가 (예: status:failure)"
remove = "{{filter}} 필터 제거"
[ui.admin.audit.registry]
title = "Audit registry"
[ui.admin.audit.table]
action_target = "Action / Target"
actor = "ACTOR (ID)"
path = "PATH"
request = "REQUEST"
status = "STATUS"
time = "TIME"
[ui.admin.groups]
import_csv = "CSV 임포트"
[ui.admin.groups.create]
description = "부서나 팀과 같은 새로운 조직 단위를 추가합니다."
title = "새 그룹 생성"
[ui.admin.groups.detail]
breadcrumb_org = "조직 관리 목록으로 돌아가기"
breadcrumb_tenant = "테넌트 상세"
breadcrumb_unit = "조직 단위"
members_subtitle = "이 조직에 소속된 사용자를 관리합니다."
members_title = "구성원 관리"
permissions_subtitle = "이 조직이 다른 테넌트에 가지는 역할을 정의합니다."
permissions_title = "권한 관리"
[ui.admin.groups.form]
desc_label = "설명"
desc_placeholder = "그룹 용도 설명"
name_label = "그룹 이름"
name_placeholder = "예: 개발팀, 인사팀"
parent_label = "상위 조직"
submit = "생성하기"
unit_level_label = "조직 레벨"
unit_level_placeholder = "예: 본부, 팀"
[ui.admin.groups.list]
title = "User Groups"
[ui.admin.groups.members]
[ui.admin.groups.members.table]
email = "이메일"
name = "이름"
remove = "제거"
[ui.admin.groups.table]
actions = "ACTIONS"
members = "MEMBERS"
name = "NAME"
[ui.admin.header]
plane = "Admin Plane"
subtitle = "관리 및 정책 운영"
[ui.admin.nav]
org_chart = "조직도"
api_keys = "API 키"
audit_logs = "감사 로그"
auth_guard = "인증 가드"
logout = "로그아웃"
overview = "개요"
relying_parties = "애플리케이션(RP)"
tenant_dashboard = "테넌트 대시보드"
tenants = "테넌트"
user_groups = "유저 그룹"
users = "사용자"
[ui.admin.org]
download_template = "템플릿 다운로드"
import_btn = "임포트"
import_title = "조직도 대량 등록"
start_import = "임포트 시작"
[ui.admin.overview]
kicker = "Global Overview"
title = "통합 대시보드"
[ui.admin.overview.playbook]
title = "Admin playbook"
[ui.admin.overview.quick_links]
add_tenant = "테넌트 추가"
api_key_management = "API 키 관리"
title = "빠른 이동"
user_management = "사용자 관리"
view_audit_logs = "감사 로그 보기"
[ui.admin.overview.summary]
audit_events_24h = "24시간 이벤트"
oidc_clients = "OIDC 클라이언트"
policy_gate = "정책 게이트"
total_tenants = "전체 테넌트 수"
[ui.admin.profile]
manageable_tenants = "관리 가능한 테넌트"
[ui.admin.role]
rp_admin = "RP ADMIN"
super_admin = "SUPER ADMIN"
tenant_admin = "TENANT ADMIN"
user = "TENANT MEMBER"
[ui.admin.tenants]
add = "테넌트 추가"
delete_selected = "선택 삭제"
title = "테넌트 목록"
view_org_chart = "전체 조직도 보기"
[ui.admin.tenants.admins]
add_button = "관리자 추가"
already_admin = "이미 관리자"
dialog_description = "이름 또는 이메일로 사용자를 검색하세요."
dialog_no_results = "검색 결과가 없습니다."
dialog_search_hint = "검색어를 입력해 주세요."
dialog_search_placeholder = "사용자 검색 (최소 2자)..."
dialog_title = "새 관리자 추가"
remove_title = "관리자 권한 회수"
table_actions = "액션"
table_email = "이메일"
table_name = "이름"
title = "테넌트 관리자"
[ui.admin.tenants.breadcrumb]
list = "List"
section = "Tenants"
[ui.admin.tenants.create]
title = "테넌트 추가"
[ui.admin.tenants.create.breadcrumb]
action = "Create"
section = "Tenants"
[ui.admin.tenants.create.form]
description = "설명"
domains_label = "Allowed Domains (Comma separated)"
domains_placeholder = "example.com, example.kr"
name = "테넌트 이름"
name_placeholder = "테넌트 이름을 입력하세요"
parent = "상위 테넌트"
slug = "Slug"
slug_placeholder = "tenant-slug"
status = "상태"
type = "유형"
[ui.admin.tenants.create.memo]
title = "정책 메모"
[ui.admin.tenants.create.profile]
title = "Tenant Profile"
[ui.admin.tenants.detail]
breadcrumb_list = "테넌트 목록"
header_subtitle = "테넌트 정보를 수정하거나 연동 설정을 관리합니다."
loading = "불러오는 중..."
tab_federation = "외부 연동"
tab_organization = "조직 관리"
tab_permissions = "권한"
tab_profile = "프로필"
tab_schema = "사용자 스키마"
title = "상세"
[ui.admin.tenants.list]
search_placeholder = "테넌트 이름 또는 슬러그 검색..."
select_placeholder = "테넌트를 선택하세요"
[ui.admin.tenants.members]
descendants = "하위 조직 멤버"
direct = "소속 멤버"
direct_label = "직속"
list_title = "구성원 관리"
title = "테넌트 구성원 ({{count}})"
total = "전체"
total_label = "전체"
[msg.admin.apikeys.registry]
count = "총 {{count}}개의 활성 키가 등록되어 있습니다."
[msg.admin.org]
import_partial_success = "일부 조직 정보를 가져왔습니다."
[msg.admin.tenants]
delete_bulk_confirm = "선택한 {{count}}개 테넌트를 삭제할까요?"
[msg.admin.users]
self_delete_blocked = "자신의 계정은 삭제할 수 없습니다."
[ui.admin.apikeys.registry]
title = "API Key Registry"
[ui.admin.tenants.members]
delete_selected = "선택 삭제"
view_org_chart = "전체 조직도 보기"
direct_label = "직속"
list_title = "구성원 관리"
title = "테넌트 구성원 ({{count}})"
total = "전체"
total_label = "전체"
[ui.admin.tenants.members.table]
email = "EMAIL"
name = "NAME"
role = "ROLE"
status = "STATUS"
[ui.admin.tenants.owners]
add_button = "소유자 추가"
already_owner = "이미 소유자"
dialog_description = "이름 또는 이메일로 사용자를 검색하세요."
dialog_title = "새 소유자 추가"
remove_title = "소유자 권한 회수"
table_actions = "액션"
table_email = "이메일"
table_name = "이름"
title = "테넌트 소유자"
[ui.admin.tenants.profile]
allowed_domains = "허용된 도메인 (콤마로 구분)"
allowed_domains_help = "이 도메인을 가진 이메일로 가입한 사용자는 자동으로 이 테넌트에 배정됩니다."
approve_button = "테넌트 승인"
description = "설명"
name = "테넌트 이름"
slug = "슬러그 (Slug)"
status = "상태"
subtitle = "슬러그 및 상태 변경은 즉시 적용됩니다."
title = "테넌트 프로필"
type = "테넌트 유형"
[ui.admin.tenants.profile.form]
parent = "상위 테넌트 (선택)"
parent_help = "가족사 테넌트나 하위 조직을 종속시킬 경우 상위 테넌트를 선택해주세요."
[ui.admin.tenants.registry]
title = "Tenant registry"
[ui.admin.tenants.schema]
add_field = "필드 추가"
save = "스키마 저장"
title = "User Schema Extension"
[ui.admin.tenants.schema.field]
admin_only = "관리자 전용"
is_login_id = "로그인 ID로 사용"
key = "Field Key (ID)"
key_placeholder = "e.g. employee_id"
label = "표시 레이블"
label_placeholder = "예: 사번"
required = "필수 여부"
type = "타입"
type_boolean = "Boolean"
type_date = "Date"
type_datetime = "일시 (DateTime)"
type_float = "실수 (Float)"
type_number = "Number"
type_text = "텍스트"
unsigned = "음수 불가"
validation_placeholder = "정규표현식 (선택 사항)"
[ui.admin.tenants.sub]
add = "하위 테넌트 추가"
add_dialog_desc = "하위 테넌트로 추가할 테넌트를 선택하세요."
add_dialog_title = "하위 테넌트 추가"
add_existing = "기존 테넌트 추가"
manage = "관리"
no_candidates = "추가 가능한 테넌트가 없습니다."
search_placeholder = "검색..."
title = "하위 테넌트 ({{count}})"
tree_search_placeholder = "트리에서 검색..."
[ui.admin.tenants.sub.table]
action = "ACTION"
name = "NAME"
slug = "SLUG"
status = "STATUS"
[ui.admin.tenants.table]
actions = "ACTIONS"
members = "멤버수"
name = "NAME"
slug = "SLUG"
status = "STATUS"
type = "유형"
updated = "UPDATED"
[ui.admin.users]
[ui.admin.users.bulk]
acknowledge_warning = "경고를 확인했으며 계속 진행합니다."
do_move = "이동 실행"
download_template = "템플릿 받기"
move_group = "테넌트 일괄 이동"
move_title = "사용자 일괄 이동"
no_department = "부서 없음"
schema_warning = "스키마 호환성 경고"
select_group = "대상 테넌트 선택"
selected_count = "{{count}}명 선택됨"
start_upload = "업로드 시작"
title = "일괄 작업"
[ui.admin.users.create]
back = "목록으로 돌아가기"
go_list = "목록으로 이동"
submit = "사용자 생성"
title = "사용자 추가"
[ui.admin.users.create.account]
title = "계정 정보"
[ui.admin.users.create.breadcrumb]
new = "New"
section = "Users"
[ui.admin.users.create.custom_fields]
title = "테넌트 확장 정보 (Custom Fields)"
[ui.admin.users.create.form]
auto_password = "자동 생성"
department = "부서"
department_placeholder = "개발팀"
email = "이메일"
email_placeholder = "user@example.com"
is_login_id = "로그인 ID"
job_title = "직무"
job_title_placeholder = "프론트엔드 개발"
login_id = "로그인 ID (선택)"
login_id_placeholder = "사번 또는 아이디"
name = "이름"
name_placeholder = "홍길동"
password = "비밀번호"
password_placeholder = "********"
phone = "전화번호"
phone_placeholder = "010-1234-5678"
position = "직급"
position_placeholder = "수석/책임/선임"
role = "역할"
tenant = "테넌트"
tenant_global = "시스템 전역"
[ui.admin.users.create.password_generated]
title = "초기 비밀번호 생성 완료"
[ui.admin.users.detail]
back = "목록으로 돌아가기"
contact_title = "ui.admin.users.detail.contact_title"
created_at = "가입일"
delete = "사용자 삭제"
edit_title = "정보 수정"
generate_button = "랜덤 비밀번호 생성"
generate_password = "자동 생성"
go_list = "목록으로 이동"
history_title = "서비스 이용 내역"
manual_confirm = "비밀번호 확인"
manual_password = "새 비밀번호"
password_done = "성공적으로 초기화됨"
password_mode_generated = "자동 생성"
password_mode_manual = "수동 입력"
password_result_title = "Reset Password"
password_title = "비밀번호 관리"
reset_auto = "자동 생성"
reset_execute = "재설정 완료"
reset_manual = "직접 입력"
reset_password = "초기화 도구"
reset_password_apply = "비밀번호 적용"
reset_password_label = "비밀번호 초기화"
save = "저장하기"
save_tenants = "모든 테넌트 프로필 저장"
status_title = "ui.admin.users.detail.status_title"
title = "사용자 상세"
toggle_password_visibility = "비밀번호 표시 전환"
updated_at = "최근 수정"
[ui.admin.users.detail.breadcrumb]
section = "Users"
[ui.admin.users.detail.custom_fields]
multi_title = "테넌트별 프로필 관리"
[ui.admin.users.detail.form]
department = "부서"
department_placeholder = "개발팀"
email = "이메일"
is_login_id = "로그인 ID"
job_title = "직무"
job_title_placeholder = "ui.admin.users.detail.form.job_title_placeholder"
login_id = "로그인 ID"
login_id_placeholder = "사번 또는 아이디"
name = "이름"
name_placeholder = "홍길동"
phone = "전화번호"
phone_placeholder = "010-1234-5678"
position = "직급"
position_placeholder = "ui.admin.users.detail.form.position_placeholder"
role = "역할"
role_rp_admin = "RP 관리자"
role_super_admin = "시스템 전역 관리자"
role_tenant_admin = "테넌트 관리자"
role_user = "사용자"
status = "상태"
status_active = "ui.admin.users.detail.form.status_active"
status_inactive = "ui.admin.users.detail.form.status_inactive"
tenant = "대표 소속 테넌트"
tenant_global = "시스템 전역"
tenant_slug = "대표 소속 (Tenant Slug)"
[ui.admin.users.detail.form.- ui]
[ui.admin.users.detail.form.- ui.admin]
[ui.admin.users.detail.form.- ui.admin.users]
[ui.admin.users.detail.form.- ui.admin.users.list]
[ui.admin.users.detail.form.- ui.admin.users.list.table]
[ui.admin.users.detail.form.- ui.admin.users.list.table.ui]
[ui.admin.users.detail.form.- ui.admin.users.list.table.ui.dev]
[ui.admin.users.detail.form.- ui.admin.users.list.table.ui.dev.clients]
[ui.admin.users.detail.form.- ui.admin.users.list.table.ui.dev.clients.general]
[ui.admin.users.detail.form.- ui.admin.users.list.table.ui.dev.clients.general.public_key]
revoke_cache = "ui.admin.users.detail.form.- ui.admin.users.list.table.ui.dev.clients.general.public_key.revoke_cache"
[ui.admin.users.detail.form.msg]
[ui.admin.users.detail.form.msg.admin]
[ui.admin.users.detail.form.msg.admin.users]
[ui.admin.users.detail.form.msg.admin.users.detail]
history_desc = "ui.admin.users.detail.form.msg.admin.users.detail.history_desc"
no_history = "ui.admin.users.detail.form.msg.admin.users.detail.no_history"
no_tenants = "ui.admin.users.detail.form.msg.admin.users.detail.no_tenants"
reset_auto_desc = "ui.admin.users.detail.form.msg.admin.users.detail.reset_auto_desc"
security_desc = "ui.admin.users.detail.form.msg.admin.users.detail.security_desc"
tenant_slug_help = "ui.admin.users.detail.form.msg.admin.users.detail.tenant_slug_help"
tenants_desc = "ui.admin.users.detail.form.msg.admin.users.detail.tenants_desc"
[ui.admin.users.detail.form.msg.common]
copied = "ui.admin.users.detail.form.msg.common.copied"
[ui.admin.users.detail.form.msg.dev]
[ui.admin.users.detail.form.msg.dev.clients]
[ui.admin.users.detail.form.msg.dev.clients.general]
[ui.admin.users.detail.form.msg.dev.clients.general.public_key]
allowed_algorithms_tooltip = "ui.admin.users.detail.form.msg.dev.clients.general.public_key.allowed_algorithms_tooltip"
cache_empty = "ui.admin.users.detail.form.msg.dev.clients.general.public_key.cache_empty"
cache_help = "ui.admin.users.detail.form.msg.dev.clients.general.public_key.cache_help"
cache_refresh_failed = "ui.admin.users.detail.form.msg.dev.clients.general.public_key.cache_refresh_failed"
cache_refreshed = "ui.admin.users.detail.form.msg.dev.clients.general.public_key.cache_refreshed"
cache_revoke_confirm = "ui.admin.users.detail.form.msg.dev.clients.general.public_key.cache_revoke_confirm"
cache_revoke_failed = "ui.admin.users.detail.form.msg.dev.clients.general.public_key.cache_revoke_failed"
cache_revoked = "ui.admin.users.detail.form.msg.dev.clients.general.public_key.cache_revoked"
[ui.admin.users.detail.form.msg.dev.clients.general.public_key.cache]
missing_algorithm_badge = "ui.admin.users.detail.form.msg.dev.clients.general.public_key.cache.missing_algorithm_badge"
missing_algorithm_reason = "ui.admin.users.detail.form.msg.dev.clients.general.public_key.cache.missing_algorithm_reason"
missing_algorithms_help = "ui.admin.users.detail.form.msg.dev.clients.general.public_key.cache.missing_algorithms_help"
missing_algorithms_title = "ui.admin.users.detail.form.msg.dev.clients.general.public_key.cache.missing_algorithms_title"
parsed_keys_empty = "ui.admin.users.detail.form.msg.dev.clients.general.public_key.cache.parsed_keys_empty"
parsed_keys_help = "ui.admin.users.detail.form.msg.dev.clients.general.public_key.cache.parsed_keys_help"
unsupported_algorithm_reason = "ui.admin.users.detail.form.msg.dev.clients.general.public_key.cache.unsupported_algorithm_reason"
unsupported_algorithms_help = "ui.admin.users.detail.form.msg.dev.clients.general.public_key.cache.unsupported_algorithms_help"
unsupported_algorithms_title = "ui.admin.users.detail.form.msg.dev.clients.general.public_key.cache.unsupported_algorithms_title"
[ui.admin.users.detail.form.msg.dev.clients.general.public_key.validation]
missing_parsed_algorithms = "ui.admin.users.detail.form.msg.dev.clients.general.public_key.validation.missing_parsed_algorithms"
unsupported_parsed_algorithms = "ui.admin.users.detail.form.msg.dev.clients.general.public_key.validation.unsupported_parsed_algorithms"
[ui.admin.users.detail.form.ui]
[ui.admin.users.detail.form.ui.admin]
[ui.admin.users.detail.form.ui.admin.users]
[ui.admin.users.detail.form.ui.admin.users.create]
[ui.admin.users.detail.form.ui.admin.users.create.form]
is_login_id = "ui.admin.users.detail.form.ui.admin.users.create.form.is_login_id"
[ui.admin.users.detail.form.ui.admin.users.detail]
generate_button = "ui.admin.users.detail.form.ui.admin.users.detail.generate_button"
history_title = "ui.admin.users.detail.form.ui.admin.users.detail.history_title"
manual_confirm = "ui.admin.users.detail.form.ui.admin.users.detail.manual_confirm"
manual_password = "ui.admin.users.detail.form.ui.admin.users.detail.manual_password"
password_done = "ui.admin.users.detail.form.ui.admin.users.detail.password_done"
reset_auto = "ui.admin.users.detail.form.ui.admin.users.detail.reset_auto"
reset_execute = "ui.admin.users.detail.form.ui.admin.users.detail.reset_execute"
reset_manual = "ui.admin.users.detail.form.ui.admin.users.detail.reset_manual"
save_tenants = "ui.admin.users.detail.form.ui.admin.users.detail.save_tenants"
updated_at = "ui.admin.users.detail.form.ui.admin.users.detail.updated_at"
[ui.admin.users.detail.form.ui.admin.users.detail.form]
email = "ui.admin.users.detail.form.ui.admin.users.detail.form.email"
is_login_id = "ui.admin.users.detail.form.ui.admin.users.detail.form.is_login_id"
role_rp_admin = "ui.admin.users.detail.form.ui.admin.users.detail.form.role_rp_admin"
tenant_slug = "ui.admin.users.detail.form.ui.admin.users.detail.form.tenant_slug"
[ui.admin.users.detail.form.ui.admin.users.detail.tabs]
info = "ui.admin.users.detail.form.ui.admin.users.detail.tabs.info"
security = "ui.admin.users.detail.form.ui.admin.users.detail.tabs.security"
tenants = "ui.admin.users.detail.form.ui.admin.users.detail.tabs.tenants"
[ui.admin.users.detail.form.ui.common]
generate = "ui.admin.users.detail.form.ui.common.generate"
[ui.admin.users.detail.form.ui.common.status]
blocked = "ui.admin.users.detail.form.ui.common.status.blocked"
[ui.admin.users.detail.form.ui.dev]
[ui.admin.users.detail.form.ui.dev.clients]
[ui.admin.users.detail.form.ui.dev.clients.general]
[ui.admin.users.detail.form.ui.dev.clients.general.public_key]
allowed_algorithms_info = "ui.admin.users.detail.form.ui.dev.clients.general.public_key.allowed_algorithms_info"
auth_method = "ui.admin.users.detail.form.ui.dev.clients.general.public_key.auth_method"
auth_method_client_secret_basic = "ui.admin.users.detail.form.ui.dev.clients.general.public_key.auth_method_client_secret_basic"
auth_method_none = "ui.admin.users.detail.form.ui.dev.clients.general.public_key.auth_method_none"
auth_method_private_key_jwt = "ui.admin.users.detail.form.ui.dev.clients.general.public_key.auth_method_private_key_jwt"
guide_toggle = "ui.admin.users.detail.form.ui.dev.clients.general.public_key.guide_toggle"
headless_disabled = "ui.admin.users.detail.form.ui.dev.clients.general.public_key.headless_disabled"
headless_enabled = "ui.admin.users.detail.form.ui.dev.clients.general.public_key.headless_enabled"
jwks_inline = "ui.admin.users.detail.form.ui.dev.clients.general.public_key.jwks_inline"
jwks_inline_placeholder = "ui.admin.users.detail.form.ui.dev.clients.general.public_key.jwks_inline_placeholder"
request_object_alg = "ui.admin.users.detail.form.ui.dev.clients.general.public_key.request_object_alg"
request_object_alg_placeholder = "ui.admin.users.detail.form.ui.dev.clients.general.public_key.request_object_alg_placeholder"
revoke_cache = "ui.admin.users.detail.form.ui.dev.clients.general.public_key.revoke_cache"
source = "ui.admin.users.detail.form.ui.dev.clients.general.public_key.source"
source_uri = "ui.admin.users.detail.form.ui.dev.clients.general.public_key.source_uri"
[ui.admin.users.detail.form.ui.dev.clients.general.public_key.cache]
cached_at = "ui.admin.users.detail.form.ui.dev.clients.general.public_key.cache.cached_at"
error = "ui.admin.users.detail.form.ui.dev.clients.general.public_key.cache.error"
expires_at = "ui.admin.users.detail.form.ui.dev.clients.general.public_key.cache.expires_at"
failures = "ui.admin.users.detail.form.ui.dev.clients.general.public_key.cache.failures"
kids = "ui.admin.users.detail.form.ui.dev.clients.general.public_key.cache.kids"
last_checked_at = "ui.admin.users.detail.form.ui.dev.clients.general.public_key.cache.last_checked_at"
last_success = "ui.admin.users.detail.form.ui.dev.clients.general.public_key.cache.last_success"
parsed_key_n = "ui.admin.users.detail.form.ui.dev.clients.general.public_key.cache.parsed_key_n"
parsed_keys = "ui.admin.users.detail.form.ui.dev.clients.general.public_key.cache.parsed_keys"
status = "ui.admin.users.detail.form.ui.dev.clients.general.public_key.cache.status"
title = "ui.admin.users.detail.form.ui.dev.clients.general.public_key.cache.title"
uri = "ui.admin.users.detail.form.ui.dev.clients.general.public_key.cache.uri"
[ui.admin.users.detail.form.ui.dev.clients.general.security]
trusted_rp_enable = "ui.admin.users.detail.form.ui.dev.clients.general.security.trusted_rp_enable"
trusted_rp_enable_help = "ui.admin.users.detail.form.ui.dev.clients.general.security.trusted_rp_enable_help"
[ui.admin.users.detail.form.ui.dev.clients.help]
docs_body = "ui.admin.users.detail.form.ui.dev.clients.help.docs_body"
subtitle = "ui.admin.users.detail.form.ui.dev.clients.help.subtitle"
[ui.admin.users.detail.form.ui.dev.clients.registry]
description = "ui.admin.users.detail.form.ui.dev.clients.registry.description"
[ui.admin.users.detail.form.ui.dev.clients.scopes]
email = "ui.admin.users.detail.form.ui.dev.clients.scopes.email"
openid = "ui.admin.users.detail.form.ui.dev.clients.scopes.openid"
profile = "ui.admin.users.detail.form.ui.dev.clients.scopes.profile"
[ui.admin.users.detail.form.ui.dev.session]
refresh = "ui.admin.users.detail.form.ui.dev.session.refresh"
refreshing = "ui.admin.users.detail.form.ui.dev.session.refreshing"
[ui.admin.users.detail.security]
password = "비밀번호 변경"
password_placeholder = "변경할 경우에만 입력"
title = "보안 설정"
[ui.admin.users.detail.tabs]
info = "기본 정보"
security = "보안 & 활동"
tenants = "테넌트 프로필"
[ui.admin.users.detail.tenants_section]
additional = "추가 소속/관리 테넌트"
primary = "대표 소속 테넌트"
title = "소속 및 조직 정보"
[ui.admin.users.list]
add = "사용자 추가"
bulk_import = "일괄 임포트"
empty = "검색 결과가 없습니다."
fetch_error = "사용자 목록 조회에 실패했습니다."
search_placeholder = "이름 또는 이메일 검색..."
subtitle = "시스템 사용자를 조회하고 관리합니다."
title = "사용자 관리"
[ui.admin.users.list.breadcrumb]
list = "List"
section = "Users"
[ui.admin.users.list.columns]
title = "컬럼 설정"
[ui.admin.users.list.filter]
tenant = "테넌트 필터"
[ui.admin.users.list.registry]
count = "총 {{count}}명의 사용자가 등록되어 있습니다."
title = "사용자 레지스트리"
[ui.admin.users.list.table]
actions = "ACTIONS"
created = "CREATED"
login_id = "LOGIN ID"
name_email = "NAME / EMAIL"
role = "ROLE"
status = "STATUS"
tenant_dept = "TENANT / DEPT"
[ui.admin.users.list.table.msg]
[ui.admin.users.list.table.msg.admin]
[ui.admin.users.list.table.msg.admin.users]
[ui.admin.users.list.table.msg.admin.users.detail]
history_desc = "ui.admin.users.list.table.msg.admin.users.detail.history_desc"
no_history = "ui.admin.users.list.table.msg.admin.users.detail.no_history"
no_tenants = "ui.admin.users.list.table.msg.admin.users.detail.no_tenants"
reset_auto_desc = "ui.admin.users.list.table.msg.admin.users.detail.reset_auto_desc"
security_desc = "ui.admin.users.list.table.msg.admin.users.detail.security_desc"
tenant_slug_help = "ui.admin.users.list.table.msg.admin.users.detail.tenant_slug_help"
tenants_desc = "ui.admin.users.list.table.msg.admin.users.detail.tenants_desc"
[ui.admin.users.list.table.msg.common]
copied = "ui.admin.users.list.table.msg.common.copied"
[ui.admin.users.list.table.msg.dev]
[ui.admin.users.list.table.msg.dev.clients]
[ui.admin.users.list.table.msg.dev.clients.general]
[ui.admin.users.list.table.msg.dev.clients.general.public_key]
allowed_algorithms_tooltip = "ui.admin.users.list.table.msg.dev.clients.general.public_key.allowed_algorithms_tooltip"
cache_empty = "ui.admin.users.list.table.msg.dev.clients.general.public_key.cache_empty"
cache_help = "ui.admin.users.list.table.msg.dev.clients.general.public_key.cache_help"
cache_refresh_failed = "ui.admin.users.list.table.msg.dev.clients.general.public_key.cache_refresh_failed"
cache_refreshed = "ui.admin.users.list.table.msg.dev.clients.general.public_key.cache_refreshed"
cache_revoke_confirm = "ui.admin.users.list.table.msg.dev.clients.general.public_key.cache_revoke_confirm"
cache_revoke_failed = "ui.admin.users.list.table.msg.dev.clients.general.public_key.cache_revoke_failed"
cache_revoked = "ui.admin.users.list.table.msg.dev.clients.general.public_key.cache_revoked"
[ui.admin.users.list.table.msg.dev.clients.general.public_key.cache]
missing_algorithm_badge = "ui.admin.users.list.table.msg.dev.clients.general.public_key.cache.missing_algorithm_badge"
missing_algorithm_reason = "ui.admin.users.list.table.msg.dev.clients.general.public_key.cache.missing_algorithm_reason"
missing_algorithms_help = "ui.admin.users.list.table.msg.dev.clients.general.public_key.cache.missing_algorithms_help"
missing_algorithms_title = "ui.admin.users.list.table.msg.dev.clients.general.public_key.cache.missing_algorithms_title"
parsed_keys_empty = "ui.admin.users.list.table.msg.dev.clients.general.public_key.cache.parsed_keys_empty"
parsed_keys_help = "ui.admin.users.list.table.msg.dev.clients.general.public_key.cache.parsed_keys_help"
unsupported_algorithm_reason = "ui.admin.users.list.table.msg.dev.clients.general.public_key.cache.unsupported_algorithm_reason"
unsupported_algorithms_help = "ui.admin.users.list.table.msg.dev.clients.general.public_key.cache.unsupported_algorithms_help"
unsupported_algorithms_title = "ui.admin.users.list.table.msg.dev.clients.general.public_key.cache.unsupported_algorithms_title"
[ui.admin.users.list.table.msg.dev.clients.general.public_key.validation]
missing_parsed_algorithms = "ui.admin.users.list.table.msg.dev.clients.general.public_key.validation.missing_parsed_algorithms"
unsupported_parsed_algorithms = "ui.admin.users.list.table.msg.dev.clients.general.public_key.validation.unsupported_parsed_algorithms"
[ui.admin.users.list.table.ui]
[ui.admin.users.list.table.ui.admin]
[ui.admin.users.list.table.ui.admin.users]
[ui.admin.users.list.table.ui.admin.users.create]
[ui.admin.users.list.table.ui.admin.users.create.form]
is_login_id = "ui.admin.users.list.table.ui.admin.users.create.form.is_login_id"
[ui.admin.users.list.table.ui.admin.users.detail]
generate_button = "ui.admin.users.list.table.ui.admin.users.detail.generate_button"
history_title = "ui.admin.users.list.table.ui.admin.users.detail.history_title"
manual_confirm = "ui.admin.users.list.table.ui.admin.users.detail.manual_confirm"
manual_password = "ui.admin.users.list.table.ui.admin.users.detail.manual_password"
password_done = "ui.admin.users.list.table.ui.admin.users.detail.password_done"
reset_auto = "ui.admin.users.list.table.ui.admin.users.detail.reset_auto"
reset_execute = "ui.admin.users.list.table.ui.admin.users.detail.reset_execute"
reset_manual = "ui.admin.users.list.table.ui.admin.users.detail.reset_manual"
save_tenants = "ui.admin.users.list.table.ui.admin.users.detail.save_tenants"
updated_at = "ui.admin.users.list.table.ui.admin.users.detail.updated_at"
[ui.admin.users.list.table.ui.admin.users.detail.form]
email = "ui.admin.users.list.table.ui.admin.users.detail.form.email"
is_login_id = "ui.admin.users.list.table.ui.admin.users.detail.form.is_login_id"
role_rp_admin = "ui.admin.users.list.table.ui.admin.users.detail.form.role_rp_admin"
tenant_slug = "ui.admin.users.list.table.ui.admin.users.detail.form.tenant_slug"
[ui.admin.users.list.table.ui.admin.users.detail.tabs]
info = "ui.admin.users.list.table.ui.admin.users.detail.tabs.info"
security = "ui.admin.users.list.table.ui.admin.users.detail.tabs.security"
tenants = "ui.admin.users.list.table.ui.admin.users.detail.tabs.tenants"
[ui.admin.users.list.table.ui.common]
generate = "ui.admin.users.list.table.ui.common.generate"
[ui.admin.users.list.table.ui.common.status]
blocked = "ui.admin.users.list.table.ui.common.status.blocked"
[ui.admin.users.list.table.ui.dev]
[ui.admin.users.list.table.ui.dev.clients]
[ui.admin.users.list.table.ui.dev.clients.general]
[ui.admin.users.list.table.ui.dev.clients.general.public_key]
allowed_algorithms_info = "ui.admin.users.list.table.ui.dev.clients.general.public_key.allowed_algorithms_info"
auth_method = "ui.admin.users.list.table.ui.dev.clients.general.public_key.auth_method"
auth_method_client_secret_basic = "ui.admin.users.list.table.ui.dev.clients.general.public_key.auth_method_client_secret_basic"
auth_method_none = "ui.admin.users.list.table.ui.dev.clients.general.public_key.auth_method_none"
auth_method_private_key_jwt = "ui.admin.users.list.table.ui.dev.clients.general.public_key.auth_method_private_key_jwt"
guide_toggle = "ui.admin.users.list.table.ui.dev.clients.general.public_key.guide_toggle"
headless_disabled = "ui.admin.users.list.table.ui.dev.clients.general.public_key.headless_disabled"
headless_enabled = "ui.admin.users.list.table.ui.dev.clients.general.public_key.headless_enabled"
jwks_inline = "ui.admin.users.list.table.ui.dev.clients.general.public_key.jwks_inline"
jwks_inline_placeholder = "ui.admin.users.list.table.ui.dev.clients.general.public_key.jwks_inline_placeholder"
request_object_alg = "ui.admin.users.list.table.ui.dev.clients.general.public_key.request_object_alg"
request_object_alg_placeholder = "ui.admin.users.list.table.ui.dev.clients.general.public_key.request_object_alg_placeholder"
revoke_cache = "ui.admin.users.list.table.ui.dev.clients.general.public_key.revoke_cache"
source = "ui.admin.users.list.table.ui.dev.clients.general.public_key.source"
source_uri = "ui.admin.users.list.table.ui.dev.clients.general.public_key.source_uri"
[ui.admin.users.list.table.ui.dev.clients.general.public_key.cache]
cached_at = "ui.admin.users.list.table.ui.dev.clients.general.public_key.cache.cached_at"
error = "ui.admin.users.list.table.ui.dev.clients.general.public_key.cache.error"
expires_at = "ui.admin.users.list.table.ui.dev.clients.general.public_key.cache.expires_at"
failures = "ui.admin.users.list.table.ui.dev.clients.general.public_key.cache.failures"
kids = "ui.admin.users.list.table.ui.dev.clients.general.public_key.cache.kids"
last_checked_at = "ui.admin.users.list.table.ui.dev.clients.general.public_key.cache.last_checked_at"
last_success = "ui.admin.users.list.table.ui.dev.clients.general.public_key.cache.last_success"
parsed_key_n = "ui.admin.users.list.table.ui.dev.clients.general.public_key.cache.parsed_key_n"
parsed_keys = "ui.admin.users.list.table.ui.dev.clients.general.public_key.cache.parsed_keys"
status = "ui.admin.users.list.table.ui.dev.clients.general.public_key.cache.status"
title = "ui.admin.users.list.table.ui.dev.clients.general.public_key.cache.title"
uri = "ui.admin.users.list.table.ui.dev.clients.general.public_key.cache.uri"
[ui.admin.users.list.table.ui.dev.clients.general.security]
trusted_rp_enable = "ui.admin.users.list.table.ui.dev.clients.general.security.trusted_rp_enable"
trusted_rp_enable_help = "ui.admin.users.list.table.ui.dev.clients.general.security.trusted_rp_enable_help"
[ui.admin.users.list.table.ui.dev.clients.help]
docs_body = "ui.admin.users.list.table.ui.dev.clients.help.docs_body"
subtitle = "ui.admin.users.list.table.ui.dev.clients.help.subtitle"
[ui.admin.users.list.table.ui.dev.clients.registry]
description = "ui.admin.users.list.table.ui.dev.clients.registry.description"
[ui.admin.users.list.table.ui.dev.clients.scopes]
email = "ui.admin.users.list.table.ui.dev.clients.scopes.email"
openid = "ui.admin.users.list.table.ui.dev.clients.scopes.openid"
profile = "ui.admin.users.list.table.ui.dev.clients.scopes.profile"
[ui.admin.users.list.table.ui.dev.session]
refresh = "ui.admin.users.list.table.ui.dev.session.refresh"
refreshing = "ui.admin.users.list.table.ui.dev.session.refreshing"
[ui.admin.users.table]
email = "이메일"
name = "이름"
role = "역할"
[ui.common]
add = "추가"
admin_only = "관리자 전용"
all = "전체"
assign = "할당"
back = "돌아가기"
back_to_login = "로그인으로 돌아가기"
cancel = "취소"
change_file = "파일 변경"
clear_search = "검색 초기화"
close = "닫기"
collapse = "접기"
confirm = "확인"
copy = "복사"
create = "생성"
delete = "삭제"
details = "상세정보"
edit = "편집"
enabled = "사용"
export = "내보내기"
fail = "실패"
generate = "ui.common.generate"
go_home = "홈으로"
hyphen = "-"
language = "언어"
language_en = "English"
language_ko = "한국어"
manage = "관리"
na = "N/A"
never = "Never"
next = "다음"
none = "없음"
page_of = "Page {{page}} of {{total}}"
prev = "이전"
previous = "이전"
qr = "QR"
read_only = "읽기 전용"
refresh = "새로고침"
remove = "제외"
resend = "재발송"
reset = "초기화"
retry = "다시 시도"
save = "저장"
search = "검색"
select = "선택"
select_file = "파일 선택"
select_placeholder = "선택하세요"
show_more = "+ 더보기"
success = "성공"
theme_dark = "Dark"
theme_light = "Light"
theme_toggle = "테마 전환"
unknown = "Unknown"
view = "보기"
[ui.common.badge]
admin_only = "Admin only"
command_only = "Command only"
system = "System"
[ui.common.status]
active = "활성"
blocked = "ui.common.status.blocked"
failure = "실패"
inactive = "비활성"
ok = "정상"
pending = "준비 중"
success = "성공"
[ui.dev]
brand = "Baron 로그인"
console_title = "Developer Console"
env_badge = "Env: dev"
scope_badge = "Scoped to /dev"
[ui.dev.audit]
load_more = "더 보기"
title = "감사 로그"
[ui.dev.audit.filter]
action = "액션으로 필터 (예: ROTATE_SECRET)"
client_id = "Client ID로 필터"
status_all = "모든 상태"
[ui.dev.audit.registry]
title = "Audit registry"
[ui.dev.audit.table]
action = "액션"
actor = "수행자"
status = "상태"
target = "대상"
time = "시간"
[ui.dev.clients]
new = "연동 앱 추가"
search_placeholder = "연동 앱 이름/ID로 검색..."
tenant_scoped = "Tenant-scoped"
untitled = "Untitled"
[ui.dev.clients.badge]
admin_session = "관리자 세션"
tenant_selected = "테넌트: 선택됨"
[ui.dev.clients.consents]
export_csv = "Export CSV"
revoke = "Revoke"
revoked_at = "철회일: "
scope_label = "권한:"
search_placeholder = "사용자 ID, 이름, 이메일로 검색"
status_all = "ui.dev.clients.consents.status_all"
status_label = "Status:"
status_revoked = "Revoked"
subject = "Subject"
title = "User Consent Grants"
[ui.dev.clients.consents.breadcrumb]
clients = "Clients"
current = "User Consent Grants"
home = "Home"
[ui.dev.clients.consents.filters]
advanced = "고급 필터"
[ui.dev.clients.consents.stats]
active_grants = "활성 동의 건수"
avg_scopes = "사용자당 평균 스코프"
total_scopes = "총 발급 스코프 수"
[ui.dev.clients.consents.table]
action = "동작"
first_granted = "최초 동의 시각"
last_auth = "마지막 인증 시각"
scopes = "승인된 스코프"
status = "상태"
tenant = "테넌트"
user = "사용자"
[ui.dev.clients.details]
[ui.dev.clients.details.credentials]
client_id = "클라이언트 ID"
client_secret = "클라이언트 시크릿"
title = "앱 자격 증명"
[ui.dev.clients.details.endpoints]
read_only = "읽기 전용"
title = "OIDC 엔드포인트"
[ui.dev.clients.details.redirect]
callback_label = "인증 콜백 URL"
label = "리디렉션 URI"
placeholder = "https://your-app.com/callback, http://localhost:3000/auth/callback"
save = "Redirect URIs 저장"
title = "리디렉션 URI 설정"
[ui.dev.clients.details.secret]
hide = "비밀키 숨기기"
rotate = "비밀키 재발급 (Rotate)"
show = "비밀키 보기"
[ui.dev.clients.details.security]
title = "보안 메모"
[ui.dev.clients.details.tab]
connection = "연동 설정"
consents = "동의 및 사용자"
settings = "설정"
[ui.dev.clients.federation]
add_btn = "Add Provider"
add_title = "Add Identity Provider"
title = "Identity Federation"
[ui.dev.clients.filter]
status_all = "모든 상태"
type_all = "모든 유형"
type_label = "유형:"
[ui.dev.clients.general]
create = "앱 생성"
display_new = "연동 앱 추가"
subtitle = "앱 설정과 보안 구성을 관리합니다."
title_create = "연동 앱 생성"
title_edit = "연동 앱 설정"
[ui.dev.clients.general.identity]
description = "설명"
description_placeholder = "앱에 대한 간단한 설명을 입력하세요."
logo = "앱 로고 URL"
logo_placeholder = "https://example.com/logo.png"
logo_preview = "로고 미리보기"
name = "앱 이름"
name_placeholder = "예: 멋진 애플리케이션"
title = "애플리케이션 정보"
[ui.dev.clients.general.public_key]
allowed_algorithms_info = "Headless Login 허용 알고리즘 정보"
auth_method = "ui.dev.clients.general.public_key.auth_method"
auth_method_client_secret_basic = "ui.dev.clients.general.public_key.auth_method_client_secret_basic"
auth_method_none = "ui.dev.clients.general.public_key.auth_method_none"
auth_method_private_key_jwt = "ui.dev.clients.general.public_key.auth_method_private_key_jwt"
guide_toggle = "ui.dev.clients.general.public_key.guide_toggle"
headless_disabled = "ui.dev.clients.general.public_key.headless_disabled"
headless_enabled = "ui.dev.clients.general.public_key.headless_enabled"
headless_toggle = "Headless Login"
jwks_inline = "ui.dev.clients.general.public_key.jwks_inline"
jwks_inline_placeholder = "ui.dev.clients.general.public_key.jwks_inline_placeholder"
jwks_uri = "JWKS URI"
jwks_uri_placeholder = "https://rp.example.com/.well-known/jwks.json"
request_object_alg = "ui.dev.clients.general.public_key.request_object_alg"
request_object_alg_placeholder = "ui.dev.clients.general.public_key.request_object_alg_placeholder"
revoke_cache = "Revoke Cache"
source = "ui.dev.clients.general.public_key.source"
source_uri = "ui.dev.clients.general.public_key.source_uri"
title = "공개키 등록"
validation_title = "저장 전 확인 필요"
[ui.dev.clients.general.public_key.cache]
cached_at = "Cached At"
error = "Last Error"
expires_at = "Expires At"
failures = "Consecutive Failures"
kids = "Cached KIDs"
last_checked_at = "Last Checked"
last_success = "Last Successful Verification"
parsed_key_n = "N"
parsed_keys = "Parsed Keys"
status = "상태"
title = "JWKS Cache"
uri = "JWKS URI"
[ui.dev.clients.general.redirect]
label = "리디렉션 URI"
placeholder = "https://app.example.com/callback, http://localhost:3000/auth/callback (콤마로 구분)"
[ui.dev.clients.general.scopes]
add = "Scope 추가"
description_placeholder = "권한에 대한 설명"
name_placeholder = "e.g. profile"
title = "스코프"
[ui.dev.clients.general.scopes.table]
contact_title = "ui.dev.clients.general.scopes.table.contact_title"
delete = "삭제"
description = "설명"
invalid_format = "ui.dev.clients.general.scopes.table.invalid_format"
login_id_help = "ui.dev.clients.general.scopes.table.login_id_help"
mandatory = "필수"
name = "스코프 이름"
password_title = "ui.dev.clients.general.scopes.table.password_title"
reset_password = "ui.dev.clients.general.scopes.table.reset_password"
reset_password_confirm = "ui.dev.clients.general.scopes.table.reset_password_confirm"
reset_password_label = "ui.dev.clients.general.scopes.table.reset_password_label"
role_super_admin = "ui.dev.clients.general.scopes.table.role_super_admin"
role_tenant_admin = "ui.dev.clients.general.scopes.table.role_tenant_admin"
role_user = "ui.dev.clients.general.scopes.table.role_user"
status_active = "ui.dev.clients.general.scopes.table.status_active"
status_inactive = "ui.dev.clients.general.scopes.table.status_inactive"
status_title = "ui.dev.clients.general.scopes.table.status_title"
[ui.dev.clients.general.security]
headless_login_enable = "Headless Login (자체 로그인 UI 사용)"
headless_login_enable_help = "Baron SSO 로그인 창을 거치지 않고 애플리케이션 내의 자체 로그인 화면을 직접 구현하고 싶은 경우 활성화합니다."
pkce = "PKCE"
private = "Server side App"
title = "보안 설정"
trusted_rp_enable = "ui.dev.clients.general.security.trusted_rp_enable"
trusted_rp_enable_help = "ui.dev.clients.general.security.trusted_rp_enable_help"
[ui.dev.clients.help]
docs_body = "ui.dev.clients.help.docs_body"
docs_title = "Docs & Examples"
subtitle = "ui.dev.clients.help.subtitle"
title = "Need help with OIDC configuration?"
view_guides = "View guides"
[ui.dev.clients.list]
title = "연동 앱 목록"
[ui.dev.clients.owner]
avatar_alt = "ops user"
email = "admin@brsw.kr"
name = "AI Admin Bot"
role = "Role: Tenant Admin"
scope = "Scope: TENANT-12"
subtitle = "Tenant admin on-call"
title = "Owner"
[ui.dev.clients.registry]
description = "ui.dev.clients.registry.description"
subtitle = "연동 앱"
title = "RP registry"
[ui.dev.clients.scopes]
email = "ui.dev.clients.scopes.email"
openid = "ui.dev.clients.scopes.openid"
profile = "ui.dev.clients.scopes.profile"
[ui.dev.clients.table]
actions = "액션"
application = "애플리케이션"
client_id = "클라이언트 ID"
created_at = "생성일"
status = "상태"
type = "유형"
[ui.dev.clients.type]
pkce = "PKCE"
pkce_headless = "Headless PKCE"
private = "Server side App"
[ui.dev.dashboard]
ready_badge = "devfront ready"
[ui.dev.dashboard.badge]
consent_guard = "Consent guard ready"
policy_toggle = "Policy toggle enabled"
rp_synced = "RP registry synced"
[ui.dev.dashboard.next]
subtitle = "Ship the RP controls"
title = "Next actions"
[ui.dev.dashboard.ops]
subtitle = "현재 관측"
title = "Ops board"
[ui.dev.dashboard.ops.card]
consent_revoked = "Consent 회수 건수"
hydra_status = "Hydra 상태"
rp_requests = "RP 요청 추이"
[ui.dev.dashboard.ops.tag]
consent = "Consent grants"
rp_status = "RP status"
[ui.dev.dashboard.stack]
notes = "Setup notes"
subtitle = "Devfront baseline"
title = "Stack readiness"
[ui.dev.header]
plane = "Dev Plane"
subtitle = "Manage your applications"
[ui.dev.nav]
clients = "연동 앱"
logout = "로그아웃"
[ui.dev.profile]
error = "프로필 정보를 불러오지 못했습니다."
loading = "프로필 정보를 불러오는 중..."
menu_aria = "계정 메뉴 열기"
menu_title = "계정"
subtitle = "사용자 상세 정보 및 할당된 역할(Role)을 확인합니다."
title = "내 정보"
unknown_email = "unknown@example.com"
unknown_name = "Unknown User"
[ui.dev.profile.basic]
email = "이메일"
id = "사용자 ID"
name = "이름"
phone = "전화번호"
title = "사용자 정보"
[ui.dev.profile.org]
company_code = "회사 코드"
tenant = "테넌트"
title = "조직 정보"
[ui.dev.profile.role]
current = "현재 역할"
description = "현재 계정에 부여된 권한 등급입니다."
title = "시스템 역할"
[ui.dev.profile.tab]
basic = "기본 정보"
role = "권한 및 역할"
[ui.dev.session]
active = "세션 활성"
auto_extend = "세션 만료 관리"
disabled = "자동 연장 비활성화"
expired = "세션 만료"
expiring = "만료 임박: {{minutes}}분 {{seconds}}초 남음"
refresh = "ui.dev.session.refresh"
refreshing = "ui.dev.session.refreshing"
remaining = "만료 예정: {{minutes}}분 {{seconds}}초 남음"
unknown = "알 수 없음"
[ui.dev.tenant]
single_notice = "단일 테넌트에 소속되어 전환할 필요가 없습니다."
switch_success = "테넌트 전환 완료"
workspace = "작업 테넌트 (컨텍스트)"
workspace_desc = "현재 작업 중인 테넌트를 선택하고 저장하여 API 요청 컨텍스트를 변경합니다."
[ui.userfront]
app_title = "Baron SW 포탈"
[ui.userfront.app_label]
admin_console = "Admin Console"
baron = "Baron 로그인"
dev_console = "Dev Console"
[ui.userfront.audit]
[ui.userfront.audit.table]
action = "관리"
app = "애플리케이션"
auth_method = "인증수단"
browser = "브라우저"
date = "접속일자"
device = "접속환경"
ip = "IP"
pending = "(준비중)"
result = "인증결과"
session_id = "Session ID"
status = "현황"
[ui.userfront.auth_method]
ory = "Ory 세션"
session = "세션"
[ui.userfront.consent]
accept = "동의하고 계속하기"
requested_scopes = "요청된 권한"
title = "접근 권한 요청"
[ui.userfront.consent.cancel]
confirm_button = "예, 취소합니다"
title = "동의 취소"
[ui.userfront.dashboard]
last_auth_label = "최근 인증"
status_history = "상태 이력"
[ui.userfront.dashboard.activity]
linked = "연동됨"
[ui.userfront.dashboard.sessions]
active_badge = "활성화"
current_badge = "접속중"
current_disabled = "현재 세션"
unknown_device = "알 수 없는 기기"
unknown_session = "세션 정보"
[ui.userfront.dashboard.sessions.revoke]
action = "세션 종료"
title = "세션 종료"
[ui.userfront.dashboard.approved_session]
default = "승인한 세션 ID"
userfront = "승인한 Userfront 세션 ID"
[ui.userfront.dashboard.revoke]
confirm_button = "해지하기"
title = "연동 해지"
[ui.userfront.dashboard.scopes]
title = "동의 범위"
[ui.userfront.dashboard.status]
revoked = "해지됨"
[ui.userfront.device]
android = "Mobile(Android)"
ios = "Mobile(iOS)"
linux = "Desktop(Linux)"
macos = "Desktop(macOS)"
windows = "Desktop(Windows)"
[ui.userfront.error]
go_home = "홈으로 이동"
go_login = "로그인으로 이동"
[ui.userfront.forgot]
heading = "비밀번호를 잊으셨나요?"
input_label = "이메일 또는 휴대폰 번호"
submit = "재설정 링크 전송"
title = "비밀번호 재설정"
[ui.userfront.login]
forgot_password = "비밀번호를 잊으셨나요?"
signup = "회원가입"
[ui.userfront.login.action]
submit = "로그인"
[ui.userfront.login.field]
login_id = "이메일 또는 휴대폰 번호"
password = "비밀번호"
[ui.userfront.login.link]
action_label = "ui.userfront.login.link.action_label"
code_only = "코드만 받기({{time}})"
page_title = "ui.userfront.login.link.page_title"
resend_with_time = "재발송 ({{time}})"
send = "로그인 링크 전송"
title = "ui.userfront.login.link.title"
[ui.userfront.login.qr]
expired = "QR 코드 만료됨"
refresh = "QR 코드 새로고침"
remaining = "남은 시간: {{time}}"
[ui.userfront.login.short_code]
digits = "숫자 6자리"
expire_time = "유효시간 {{time}}"
prefix = "영문 2자리"
submit = "코드로 로그인"
[ui.userfront.login.tabs]
link = "로그인 링크"
password = "비밀번호"
qr = "QR 코드"
[ui.userfront.login.unregistered]
action = "회원가입 하기"
title = "미등록 회원"
[ui.userfront.login.verification]
action_label = "확인"
page_title = "로그인 승인"
title = "승인 완료"
[ui.userfront.login_success]
later = "나중에 하기 (대시보드로 이동)"
qr = "QR 인증 (카메라 켜기)"
title = "로그인 완료"
[ui.userfront.nav]
dashboard = "대시보드"
logout = "로그아웃"
profile = "내 정보"
qr_scan = "QR 스캔"
[ui.userfront.profile]
department_empty = "소속 정보 없음"
manage = "프로필 관리"
user_fallback = "사용자"
[ui.userfront.profile.field]
affiliation = "구분"
company_code = "회사코드"
department = "소속"
email = "이메일"
name = "이름"
tenant = "소속 테넌트"
[ui.userfront.profile.password]
change = "비밀번호 변경"
confirm = "새 비밀번호 확인"
current = "현재 비밀번호"
forgot = "비밀번호를 잊으셨나요?"
new = "새 비밀번호"
title = "비밀번호 변경"
[ui.userfront.profile.phone]
code_hint = "인증번호 6자리"
request_code = "인증요청"
title = "전화번호"
[ui.userfront.profile.section]
basic = "기본 정보"
organization = "조직 정보"
security = "보안"
[ui.userfront.qr]
request_permission = "ui.userfront.qr.request_permission"
rescan = "다시 스캔"
result_failure = "ui.userfront.qr.result_failure"
result_success = "승인 완료"
title = "Scan QR Code"
[ui.userfront.reset]
confirm_password = "새 비밀번호 확인"
new_password = "새 비밀번호"
submit = "비밀번호 변경"
subtitle = "새로운 비밀번호 설정"
title = "새 비밀번호 설정"
[ui.userfront.sections]
apps = "나의 App 현황"
audit = "접속이력"
[ui.userfront.session]
active = "세션 활성"
unknown = "알 수 없음"
[ui.userfront.signup]
complete = "가입 완료"
next_step = "다음 단계"
title = "회원가입"
[ui.userfront.signup.agreement]
all = "모두 동의합니다"
privacy_title = "개인정보 수집 및 이용 동의 (필수)"
required = "필수"
tos_title = "바론 소프트웨어 이용약관 (필수)"
[ui.userfront.signup.auth]
code_label = "인증코드 6자리"
request_code = "인증요청"
[ui.userfront.signup.auth.email]
label = "이메일 주소"
title = "이메일 인증"
[ui.userfront.signup.password]
confirm_label = "비밀번호 확인"
label = "비밀번호"
[ui.userfront.signup.phone]
label = "휴대폰 번호 (-없이)"
title = "휴대폰 인증"
[ui.userfront.signup.profile]
affiliation_type = "소속 유형"
company = "가족사 선택"
department = "부서명"
department_optional = "소속 정보 (선택)"
name = "이름"
[ui.userfront.signup.steps]
agreement = "약관동의"
password = "비밀번호"
profile = "정보입력"
verify = "본인인증"
[ui.userfront.signup.success]
action = "로그인하기"
[ui.userfront.audit.filter]
title = "내 활동 관리"
toggle_label = "활성 세션만 보기"
[msg.userfront.audit.filter]
description = "활성화된 세션만 보려면 토글을 켜주세요."