301 lines
14 KiB
TypeScript
301 lines
14 KiB
TypeScript
|
|
import demoKo from "./demo-ko"
|
||
|
|
import { Translations } from "./en"
|
||
|
|
|
||
|
|
const ko: Translations = {
|
||
|
|
common: {
|
||
|
|
ok: "확인!",
|
||
|
|
cancel: "취소",
|
||
|
|
save: "저장",
|
||
|
|
back: "뒤로",
|
||
|
|
logOut: "로그아웃",
|
||
|
|
copied: "복사됨",
|
||
|
|
},
|
||
|
|
welcomeScreen: {
|
||
|
|
postscript:
|
||
|
|
"잠깐! — 지금 보시는 것은 아마도 당신의 앱의 모양새가 아닐겁니다. (디자이너분이 이렇게 건내주셨다면 모를까요. 만약에 그렇다면, 이대로 가져갑시다!) ",
|
||
|
|
readyForLaunch: "출시 준비가 거의 끝난 나만의 앱!",
|
||
|
|
exciting: "(오, 이거 신나는데요!)",
|
||
|
|
letsGo: "가보자구요!",
|
||
|
|
},
|
||
|
|
errorScreen: {
|
||
|
|
title: "뭔가 잘못되었습니다!",
|
||
|
|
friendlySubtitle:
|
||
|
|
"이 화면은 오류가 발생할 때 프로덕션에서 사용자에게 표시됩니다. 이 메시지를 커스터마이징 할 수 있고(해당 파일은 `app/i18n/ko.ts` 에 있습니다) 레이아웃도 마찬가지로 수정할 수 있습니다(`app/screens/error`). 만약 이 오류화면을 완전히 없에버리고 싶다면 `app/app.tsx` 파일에서 <ErrorBoundary> 컴포넌트를 확인하기 바랍니다.",
|
||
|
|
reset: "초기화",
|
||
|
|
traceTitle: "%{name} 스택에서의 오류",
|
||
|
|
},
|
||
|
|
emptyStateComponent: {
|
||
|
|
generic: {
|
||
|
|
heading: "너무 텅 비어서.. 너무 슬퍼요..",
|
||
|
|
content: "데이터가 없습니다. 버튼을 눌러서 리프레쉬 하시거나 앱을 리로드하세요.",
|
||
|
|
button: "다시 시도해봅시다",
|
||
|
|
},
|
||
|
|
},
|
||
|
|
|
||
|
|
errors: {
|
||
|
|
invalidEmail: "잘못된 이메일 주소 입니다.",
|
||
|
|
},
|
||
|
|
authErrors: {
|
||
|
|
timeout: "요청 시간이 초과되었습니다. 다시 시도해주세요.",
|
||
|
|
cannotConnect: "서버에 연결할 수 없습니다. 네트워크를 확인해주세요.",
|
||
|
|
serverError: "서버 오류가 발생했습니다. 잠시 후 다시 시도해주세요.",
|
||
|
|
badData: "서버 응답이 올바르지 않습니다.",
|
||
|
|
unknownError: "알 수 없는 오류가 발생했습니다.",
|
||
|
|
E001: "이미 사용 중인 사용자명입니다.",
|
||
|
|
E002: "이미 등록된 이메일입니다.",
|
||
|
|
E003: "유효하지 않은 추천 코드입니다.",
|
||
|
|
E004: "대기 중인 가입 요청이 없습니다.",
|
||
|
|
E005: "잘못된 인증 코드입니다.",
|
||
|
|
E006: "이미 추천 코드가 등록되어 있습니다.",
|
||
|
|
E007: "자신의 추천 코드는 사용할 수 없습니다.",
|
||
|
|
E011: "이메일 또는 비밀번호가 올바르지 않습니다.",
|
||
|
|
E012: "계정이 일시적으로 잠겼습니다. 잠시 후 다시 시도해주세요.",
|
||
|
|
E013: "대기 중인 로그인 요청이 없습니다.",
|
||
|
|
E014: "존재하지 않거나 비활성화된 사용자입니다.",
|
||
|
|
E015: "잘못된 인증 코드입니다.",
|
||
|
|
E016: "유효하지 않은 Telegram 인증입니다.",
|
||
|
|
E017: "Telegram 데이터 형식이 올바르지 않습니다.",
|
||
|
|
E018: "Google 인증에 실패했습니다.",
|
||
|
|
E019: "Google 토큰을 입력해주세요.",
|
||
|
|
E021: "현재 비밀번호가 올바르지 않습니다.",
|
||
|
|
E022: "새 비밀번호는 현재 비밀번호와 같을 수 없습니다.",
|
||
|
|
E023: "등록되지 않은 이메일입니다.",
|
||
|
|
E024: "계정이 비활성화되었습니다.",
|
||
|
|
E025: "대기 중인 비밀번호 재설정 요청이 없습니다.",
|
||
|
|
E026: "비밀번호 재설정 코드가 만료되었습니다.",
|
||
|
|
E027: "잘못된 비밀번호 재설정 코드입니다.",
|
||
|
|
E028: "존재하지 않는 사용자입니다.",
|
||
|
|
E029: "수정할 필드가 제공되지 않았습니다.",
|
||
|
|
E041: "인증 코드 전송이 너무 빈번합니다. 잠시 기다려주세요.",
|
||
|
|
E042: "이메일 인증 코드가 만료되었습니다.",
|
||
|
|
E043: "잘못된 이메일 인증 코드입니다.",
|
||
|
|
E044: "이미 인증된 이메일입니다.",
|
||
|
|
E045: "이미 다른 사용자가 사용 중인 이메일입니다.",
|
||
|
|
E046: "인증된 이메일이 없습니다.",
|
||
|
|
E047: "먼저 현재 이메일로 인증 코드를 전송해주세요.",
|
||
|
|
E048: "먼저 현재 이메일을 인증해주세요.",
|
||
|
|
E049: "먼저 새 이메일로 인증 코드를 전송해주세요.",
|
||
|
|
E050: "잘못된 action 매개변수입니다.",
|
||
|
|
},
|
||
|
|
loginScreen: {
|
||
|
|
logIn: "로그인",
|
||
|
|
enterDetails:
|
||
|
|
"일급비밀 정보를 해제하기 위해 상세 정보를 입력하세요. 무엇이 기다리고 있는지 절대 모를겁니다. 혹은 알 수 있을지도 모르겠군요. 엄청 복잡한 뭔가는 아닙니다.",
|
||
|
|
emailFieldLabel: "이메일",
|
||
|
|
passwordFieldLabel: "비밀번호",
|
||
|
|
emailFieldPlaceholder: "이메일을 입력하세요",
|
||
|
|
passwordFieldPlaceholder: "엄청 비밀스러운 암호를 입력하세요",
|
||
|
|
tapToLogIn: "눌러서 로그인 하기!",
|
||
|
|
hint: "힌트: 가장 좋아하는 암호와 아무런 아무 이메일 주소나 사용할 수 있어요 :)",
|
||
|
|
},
|
||
|
|
navigator: {
|
||
|
|
componentsTab: "컴포넌트",
|
||
|
|
debugTab: "디버그",
|
||
|
|
communityTab: "커뮤니티",
|
||
|
|
podcastListTab: "팟캐스트",
|
||
|
|
profileTab: "프로필",
|
||
|
|
},
|
||
|
|
profileScreen: {
|
||
|
|
title: "프로필",
|
||
|
|
guest: "게스트",
|
||
|
|
uid: "UID",
|
||
|
|
username: "사용자 이름",
|
||
|
|
referralCode: "추천 코드",
|
||
|
|
settings: "설정",
|
||
|
|
darkMode: "다크 모드",
|
||
|
|
notifications: "알림",
|
||
|
|
security: "보안",
|
||
|
|
account: "계정",
|
||
|
|
accountStatus: "계정 상태",
|
||
|
|
active: "활성",
|
||
|
|
inactive: "비활성",
|
||
|
|
regular: "일반",
|
||
|
|
emailVerified: "이메일 인증",
|
||
|
|
verified: "인증됨",
|
||
|
|
unverified: "미인증",
|
||
|
|
loginMethods: "로그인 방법",
|
||
|
|
version: "버전",
|
||
|
|
changePassword: "비밀번호 변경",
|
||
|
|
changeEmail: "이메일 변경",
|
||
|
|
editNickname: "닉네임 수정",
|
||
|
|
editProfile: "프로필 수정",
|
||
|
|
nicknamePlaceholder: "닉네임을 입력하세요",
|
||
|
|
nickname: "닉네임",
|
||
|
|
tapToChangeAvatar: "아바타 변경하려면 탭하세요",
|
||
|
|
about: "정보",
|
||
|
|
},
|
||
|
|
changePasswordScreen: {
|
||
|
|
title: "비밀번호 변경",
|
||
|
|
description: "현재 비밀번호를 입력하고 새 비밀번호를 선택하세요.",
|
||
|
|
oldPassword: "현재 비밀번호",
|
||
|
|
newPassword: "새 비밀번호",
|
||
|
|
confirmPassword: "새 비밀번호 확인",
|
||
|
|
logoutOtherDevices: "다른 기기에서 로그아웃",
|
||
|
|
submit: "비밀번호 변경",
|
||
|
|
success: "성공",
|
||
|
|
successMessage: "비밀번호가 성공적으로 변경되었습니다.",
|
||
|
|
oldPasswordRequired: "현재 비밀번호가 필요합니다.",
|
||
|
|
newPasswordRequired: "새 비밀번호가 필요합니다.",
|
||
|
|
passwordTooShort: "비밀번호는 최소 6자 이상이어야 합니다.",
|
||
|
|
passwordMismatch: "비밀번호가 일치하지 않습니다.",
|
||
|
|
samePassword: "새 비밀번호는 현재 비밀번호와 같을 수 없습니다.",
|
||
|
|
},
|
||
|
|
changeEmailScreen: {
|
||
|
|
title: "이메일 변경",
|
||
|
|
step1Label: "이메일 인증",
|
||
|
|
step2Label: "새 이메일 연결",
|
||
|
|
step1Title: "1단계: 현재 이메일 확인",
|
||
|
|
step1Description: "현재 이메일 주소로 인증 코드를 보내드립니다.",
|
||
|
|
step2Title: "2단계: 새 이메일 연결",
|
||
|
|
step2Description: "새 이메일 주소를 입력하고 인증하세요.",
|
||
|
|
currentEmail: "현재 이메일",
|
||
|
|
newEmail: "새 이메일 주소",
|
||
|
|
verificationCode: "인증 코드",
|
||
|
|
sendCode: "인증 코드 보내기",
|
||
|
|
sendCodeToNewEmail: "새 이메일로 코드 보내기",
|
||
|
|
verify: "확인",
|
||
|
|
confirmNewEmail: "새 이메일 확인",
|
||
|
|
resendCode: "코드 재전송",
|
||
|
|
success: "성공",
|
||
|
|
successMessage: "이메일이 성공적으로 변경되었습니다.",
|
||
|
|
codeRequired: "인증 코드가 필요합니다.",
|
||
|
|
codeInvalid: "인증 코드는 6자리여야 합니다.",
|
||
|
|
newEmailRequired: "새 이메일 주소가 필요합니다.",
|
||
|
|
emailInvalid: "올바른 이메일 주소를 입력하세요.",
|
||
|
|
sameEmail: "새 이메일은 현재 이메일과 같을 수 없습니다.",
|
||
|
|
},
|
||
|
|
settingsScreen: {
|
||
|
|
title: "설정",
|
||
|
|
appearance: "외관",
|
||
|
|
theme: "테마",
|
||
|
|
darkMode: "다크 모드",
|
||
|
|
language: "언어",
|
||
|
|
currentLanguage: "언어",
|
||
|
|
},
|
||
|
|
languageScreen: {
|
||
|
|
title: "언어",
|
||
|
|
selectHint: "원하는 언어를 선택하세요",
|
||
|
|
},
|
||
|
|
themeScreen: {
|
||
|
|
title: "테마",
|
||
|
|
selectHint: "원하는 테마를 선택하세요",
|
||
|
|
system: "시스템",
|
||
|
|
light: "라이트",
|
||
|
|
dark: "다크",
|
||
|
|
},
|
||
|
|
securityScreen: {
|
||
|
|
title: "보안",
|
||
|
|
description: "계정 보안 설정을 관리합니다.",
|
||
|
|
changePassword: "비밀번호 변경",
|
||
|
|
changeEmail: "이메일 변경",
|
||
|
|
// Session management
|
||
|
|
activeSessions: "Active Sessions",
|
||
|
|
activeSessionsDescription: "Devices currently logged into your account",
|
||
|
|
currentDevice: "Current Device",
|
||
|
|
lastActive: "Last active",
|
||
|
|
loginMethod: "Login via",
|
||
|
|
logoutDevice: "Logout",
|
||
|
|
logoutAllOther: "Logout All Other Devices",
|
||
|
|
logoutAllOtherDescription: "This will log out all devices except the current one.",
|
||
|
|
noOtherSessions: "No other active sessions",
|
||
|
|
sessionRevoked: "Device has been logged out",
|
||
|
|
sessionsRevoked: "{{count}} devices have been logged out",
|
||
|
|
confirmLogout: "Confirm Logout",
|
||
|
|
confirmLogoutMessage: "Are you sure you want to log out this device?",
|
||
|
|
confirmLogoutAllMessage: "Are you sure you want to log out all other devices?",
|
||
|
|
deviceTypes: {
|
||
|
|
desktop: "Desktop",
|
||
|
|
mobile: "Mobile",
|
||
|
|
tablet: "Tablet",
|
||
|
|
unknown: "Unknown Device",
|
||
|
|
},
|
||
|
|
},
|
||
|
|
aboutScreen: {
|
||
|
|
title: "정보",
|
||
|
|
appInfo: "앱 정보",
|
||
|
|
appName: "앱 이름",
|
||
|
|
version: "버전",
|
||
|
|
buildVersion: "빌드 버전",
|
||
|
|
appId: "앱 ID",
|
||
|
|
appVersion: "앱 버전",
|
||
|
|
legal: "법률",
|
||
|
|
privacyPolicy: "개인정보처리방침",
|
||
|
|
termsOfService: "서비스 이용약관",
|
||
|
|
},
|
||
|
|
communityScreen: {
|
||
|
|
title: "커뮤니티와 함께해요",
|
||
|
|
tagLine:
|
||
|
|
"전문적인 React Native 엔지니어들로 구성된 Infinite Red 커뮤니티에 접속해서 함께 개발 실력을 향상시켜 보세요!",
|
||
|
|
joinUsOnSlackTitle: "Slack 에 참여하세요",
|
||
|
|
joinUsOnSlack:
|
||
|
|
"전 세계 React Native 엔지니어들과 함께할 수 있는 곳이 있었으면 좋겠죠? Infinite Red Community Slack 에서 대화에 참여하세요! 우리의 성장하는 커뮤니티는 질문을 던지고, 다른 사람들로부터 배우고, 네트워크를 확장할 수 있는 안전한 공간입니다. ",
|
||
|
|
joinSlackLink: "Slack 에 참여하기",
|
||
|
|
makeIgniteEvenBetterTitle: "Ignite 을 향상시켜요",
|
||
|
|
makeIgniteEvenBetter:
|
||
|
|
"Ignite 을 더 좋게 만들 아이디어가 있나요? 기쁜 소식이네요. 우리는 항상 최고의 React Native 도구를 구축하는데 도움을 줄 수 있는 분들을 찾고 있습니다. GitHub 에서 Ignite 의 미래를 만들어 가는것에 함께해 주세요.",
|
||
|
|
contributeToIgniteLink: "Ignite 에 기여하기",
|
||
|
|
theLatestInReactNativeTitle: "React Native 의 최신정보",
|
||
|
|
theLatestInReactNative: "React Native 가 제공하는 모든 최신 정보를 알려드립니다.",
|
||
|
|
reactNativeRadioLink: "React Native 라디오",
|
||
|
|
reactNativeNewsletterLink: "React Native 뉴스레터",
|
||
|
|
reactNativeLiveLink: "React Native 라이브 스트리밍",
|
||
|
|
chainReactConferenceLink: "Chain React 컨퍼런스",
|
||
|
|
hireUsTitle: "다음 프로젝트에 Infinite Red 를 고용하세요",
|
||
|
|
hireUs:
|
||
|
|
"프로젝트 전체를 수행하든, 실무 교육을 통해 팀의 개발 속도에 박차를 가하든 상관없이, Infinite Red 는 React Native 프로젝트의 모든 분야의 에서 도움을 드릴 수 있습니다.",
|
||
|
|
hireUsLink: "메세지 보내기",
|
||
|
|
},
|
||
|
|
showroomScreen: {
|
||
|
|
jumpStart: "프로젝트를 바로 시작할 수 있는 컴포넌트들!",
|
||
|
|
lorem2Sentences:
|
||
|
|
"별 하나에 추억과, 별 하나에 사랑과, 별 하나에 쓸쓸함과, 별 하나에 동경(憧憬)과, 별 하나에 시와, 별 하나에 어머니, 어머니",
|
||
|
|
demoHeaderTxExample: "야호",
|
||
|
|
demoViaTxProp: "`tx` Prop 을 통해",
|
||
|
|
demoViaSpecifiedTxProp: "`{{prop}}Tx` Prop 을 통해",
|
||
|
|
},
|
||
|
|
demoDebugScreen: {
|
||
|
|
howTo: "사용방법",
|
||
|
|
title: "디버그",
|
||
|
|
tagLine:
|
||
|
|
"축하합니다. 여기 아주 고급스러운 React Native 앱 템플릿이 있습니다. 이 보일러 플레이트를 사용해보세요!",
|
||
|
|
reactotron: "Reactotron 으로 보내기",
|
||
|
|
reportBugs: "버그 보고하기",
|
||
|
|
demoList: "데모 목록",
|
||
|
|
demoPodcastList: "데모 팟캐스트 목록",
|
||
|
|
androidReactotronHint:
|
||
|
|
"만약에 동작하지 않는 경우, Reactotron 데스크탑 앱이 실행중인지 확인 후, 터미널에서 adb reverse tcp:9090 tcp:9090 을 실행한 다음 앱을 다시 실행해보세요.",
|
||
|
|
iosReactotronHint:
|
||
|
|
"만약에 동작하지 않는 경우, Reactotron 데스크탑 앱이 실행중인지 확인 후 앱을 다시 실행해보세요.",
|
||
|
|
macosReactotronHint:
|
||
|
|
"만약에 동작하지 않는 경우, Reactotron 데스크탑 앱이 실행중인지 확인 후 앱을 다시 실행해보세요.",
|
||
|
|
webReactotronHint:
|
||
|
|
"만약에 동작하지 않는 경우, Reactotron 데스크탑 앱이 실행중인지 확인 후 앱을 다시 실행해보세요.",
|
||
|
|
windowsReactotronHint:
|
||
|
|
"만약에 동작하지 않는 경우, Reactotron 데스크탑 앱이 실행중인지 확인 후 앱을 다시 실행해보세요.",
|
||
|
|
},
|
||
|
|
demoPodcastListScreen: {
|
||
|
|
title: "React Native 라디오 에피소드",
|
||
|
|
onlyFavorites: "즐겨찾기만 보기",
|
||
|
|
favoriteButton: "즐겨찾기",
|
||
|
|
unfavoriteButton: "즐겨찾기 해제",
|
||
|
|
accessibility: {
|
||
|
|
cardHint:
|
||
|
|
"에피소드를 들으려면 두 번 탭하세요. 이 에피소드를 좋아하거나 싫어하려면 두 번 탭하고 길게 누르세요.",
|
||
|
|
switch: "즐겨찾기를 사용하려면 스위치를 사용하세요.",
|
||
|
|
favoriteAction: "즐겨찾기 토글",
|
||
|
|
favoriteIcon: "좋아하는 에피소드",
|
||
|
|
unfavoriteIcon: "즐겨찾기하지 않은 에피소드",
|
||
|
|
publishLabel: "{{date}} 에 발행됨",
|
||
|
|
durationLabel: "소요시간: {{hours}}시간 {{minutes}}분 {{seconds}}초",
|
||
|
|
},
|
||
|
|
noFavoritesEmptyState: {
|
||
|
|
heading: "조금 텅 비어 있네요.",
|
||
|
|
content: "즐겨찾기가 없습니다. 에피소드에 있는 하트를 눌러서 즐겨찾기에 추가하세요.",
|
||
|
|
},
|
||
|
|
},
|
||
|
|
|
||
|
|
...demoKo,
|
||
|
|
}
|
||
|
|
|
||
|
|
export default ko
|