Discourse 한국어 번역과 Gitea 배포 구성 완료

일반 화면과 관리자 화면 및 활성 플러그인의 최종 한국어 번역을 반영했다.

기능별 검수 원본과 보드 화면 패치 원본을 저장소에 포함했다. yarn test와 yarn deploy 및 yarn verify:deployment 명령을 추가했다.

활성 플러그인 29개의 번역 키 6,005개에서 누락 0개를 확인했다. PC와 390픽셀 모바일 화면을 확인했다. 운영 app 컨테이너에 재배포하고 HTTP 200 응답을 확인했다.

데이터베이스 구조 변경과 데이터 이전은 없다. 사용자 요청이 없어 백업은 만들지 않았다.
This commit is contained in:
2026-09-27 03:28:42 +00:00
parent cc5042a0a6
commit e0cd349f58
24 changed files with 16518 additions and 25 deletions
+378
View File
@@ -0,0 +1,378 @@
ko:
admin_js:
admin:
site_settings:
categories:
discourse_rss_polling: "RSS 자동 수집"
chat_integration: "외부 채팅 연동"
js:
rss_polling:
title: "RSS 자동 수집"
admin:
logs:
staff_actions:
actions:
create_rss_polling_feed: "RSS 피드 등록"
update_rss_polling_feed: "RSS 피드 수정"
destroy_rss_polling_feed: "RSS 피드 삭제"
enable_rss_polling_feed: "RSS 피드 사용"
disable_rss_polling_feed: "RSS 피드 사용 중지"
poll_rss_polling_feed: "RSS 피드 지금 수집"
rss_polling:
feed_settings: "피드 설정"
discourse_settings: "포럼 등록 설정"
author: "작성자"
feed_url: "피드 주소"
feed_url_must_be_http: "http:// 또는 https://로 시작하는 올바른 피드 주소를 입력하세요."
discourse_category: "등록할 카테고리"
discourse_tags: "등록할 태그"
required_tags_hint: "이 카테고리에 필요한 태그가 있습니다. 다음 태그 중 하나를 추가하지 않으면 글을 가져올 수 없습니다."
required_tag_error: "'%{tag_group}' 그룹의 태그를 %{count}개 이상 추가하세요. 추가하지 않으면 글을 가져올 수 없습니다."
feed_category_filter: "피드 카테고리 필터"
feed_category_filter_description: "피드 카테고리에 이 문구가 포함된 항목만 가져옵니다. 대소문자는 구분하지 않습니다. 비워 두면 모두 가져옵니다."
showing: "전체 %{total}개 중 앞의 %{count}개를 표시합니다."
feeds:
title: "피드"
nav_description: "포럼으로 가져올 RSS와 Atom 피드를 관리합니다."
description: "정기적으로 확인해 포럼 글로 등록할 RSS와 Atom 피드를 설정합니다."
add: "피드 추가"
add_header: "피드 추가"
edit_header: "피드 편집"
empty: "등록된 피드가 없습니다."
edit: "편집"
delete: "삭제"
enable: "피드 사용"
disable: "피드 사용 중지"
back: "피드 목록으로"
save: "저장"
confirm_delete: "이 피드를 삭제하시겠습니까?"
delete_success: "피드를 삭제했습니다"
save_success: "피드를 저장했습니다"
enable_success: "피드를 사용하도록 설정했습니다"
disable_success: "피드 사용을 중지했습니다"
test:
button: "피드 시험"
title: "가져오기 미리보기"
empty: "이 피드에서 가져올 항목을 찾지 못했습니다."
dismiss: "닫기"
would_import: "가져올 항목"
summary:
would_import: "%{count}개 가져오기 가능"
already_imported: "%{count}개 이미 가져옴"
skipped: "%{count}개 제외됨"
already_imported: "이미 가져온 항목입니다. 수집하면 <a href='%{topic_url}' target='_blank' rel='noopener noreferrer'>기존 글</a>을 갱신합니다."
already_imported_plain: "이미 가져온 항목입니다. 수집하면 기존 글을 갱신합니다."
skip_reasons:
missing_content: "내용이 없어 제외했습니다."
missing_title: "제목이 없어 제외했습니다."
invalid_url: "가져올 수 있는 주소가 없어 제외했습니다."
category_filter_mismatch: "피드 카테고리가 조건과 맞지 않아 제외했습니다: %{categories}"
category_filter_mismatch_none: "피드 카테고리가 없어 제외했습니다."
errors:
fetch_failed: "피드를 불러오지 못했습니다. 주소가 올바르고 접속 가능한지 확인하세요."
parse_failed: "응답이 올바른 RSS 또는 Atom 피드 형식이 아닙니다."
invalid_feed: "피드 형식이 잘못되어 읽을 수 없습니다."
blank_feed_url: "시험할 피드 주소를 입력하세요."
category_deleted: "글을 등록할 카테고리가 삭제됐습니다. 피드를 편집해 새 카테고리를 선택하세요."
unknown: "피드를 읽지 못했습니다. 일시적인 장애이거나 예상하지 못한 응답일 수 있습니다. 피드 시험과 서버 기록을 확인하세요."
status:
enabled: "사용 중"
disabled: "사용 중지"
disabled_note: "예약 수집을 실행하지 않습니다"
history:
recent: "최근 수집 기록"
show_older: "이전 기록 %{count}개 보기"
poll_now: "지금 수집"
poll_now_dirty: "수집하기 전에 변경 사항을 저장하세요."
poll_now_disabled: "수집하려면 피드를 사용하도록 설정하세요."
poll_confirm: "지금 피드를 확인해 새 글을 가져오거나 기존 글을 갱신하시겠습니까?"
poll_started: "수집을 시작했습니다. 잠시 후 최근 실행 결과가 표시됩니다."
empty: "아직 이 피드를 수집한 기록이 없습니다."
no_items: "이번 수집에서 처리한 항목이 없습니다."
no_changes: "변경 없음"
imported_count: "%{count}개 가져옴"
updated_count: "%{count}개 갱신"
skipped_count: "%{count}개 제외"
failed_count: "%{count}개 실패"
imported: "새 <a href='%{topic_url}' target='_blank' rel='noopener noreferrer'>글</a>로 가져왔습니다."
imported_plain: "새 글로 가져왔습니다."
updated: "<a href='%{topic_url}' target='_blank' rel='noopener noreferrer'>기존 글</a>을 갱신했습니다."
updated_plain: "기존 글을 갱신했습니다."
failed: "가져오지 못했습니다."
failed_reasons:
import_rejected: "가져올 수 있는 주소가 없어 등록하지 못했습니다."
import_error: "가져오지 못했습니다: %{error}"
chat_integration:
menu_title: "외부 채팅 연동"
settings: "설정"
nav:
providers: "연결 서비스"
providers_description: "외부 채팅 서비스를 연결하고 관리합니다"
add_provider: "서비스 연결"
view_provider_settings: "서비스 설정 보기"
more_providers: "더 보기"
confirm_setup_provider: "%{provider} 서비스를 사용하도록 설정하시겠습니까? 나중에 설정에서 다시 끌 수 있습니다."
setup_provider_modal:
title: "%{provider} 연결 설정"
setup_instructions: "%{provider} 연결에 필요한 정보를 입력하세요. %{additionalInstructions}"
confirm_setup: "연결 설정"
success: "%{provider} 연결 설정을 마쳤습니다"
slack:
instructions: "접근 토큰이나 보내는 웹훅 주소 중 하나가 필요합니다."
at_least_one_required: "접근 토큰이나 보내는 웹훅 주소를 입력하세요."
access_token:
title: "접근 토큰"
description: "Slack 봇 OAuth 접근 토큰"
outbound_webhook_url:
title: "보내는 웹훅 주소"
description: "Slack 보내는 웹훅 주소"
telegram:
instructions: "저장할 때 접근 토큰이 올바른지 확인합니다."
access_token:
title: "접근 토큰"
description: "BotFather에서 발급한 Telegram 봇 접근 토큰"
empty_state:
title: "외부 채팅 서비스를 연결하세요"
body: "포럼 알림을 팀 채팅으로 보낼 수 있습니다. 연결할 서비스를 선택하세요."
channels_title: "알림 채널"
channels_description: "%{provider}에서 알림을 보낼 채널을 설정합니다."
no_channels: "설정된 채널이 없습니다."
channel_actions: "채널 작업"
add_first_channel: "첫 %{provider} 채널 추가"
channels_with_errors: "이 서비스의 일부 채널에서 최근 알림 전송이 실패했습니다. 오류 아이콘을 눌러 내용을 확인하세요."
channel_exception: "이 채널로 알림을 보내던 중 알 수 없는 오류가 발생했습니다."
group_mention_template: "다음 그룹을 언급한 글: @%{name}"
group_message_template: "다음 그룹에 보낸 메시지: @%{name}"
choose_group: "그룹 선택"
all_categories: "모든 카테고리"
all_tags: "모든 태그"
create_rule: "알림 규칙 만들기"
add_channel: "채널 추가"
delete_channel: "삭제"
test_channel: "시험 전송"
edit_channel: "편집"
channel_delete_confirm: "이 채널을 삭제하시겠습니까? 연결된 알림 규칙도 모두 삭제됩니다."
test_modal:
title: "시험 메시지 보내기"
topic: "시험할 글"
send: "시험 메시지 보내기"
close: "닫기"
error: "메시지를 보내던 중 알 수 없는 오류가 발생했습니다. 자세한 내용은 서버 기록을 확인하세요."
success: "메시지를 보냈습니다"
type:
normal: "일반 알림"
group_message: "그룹 메시지"
group_mention: "그룹 언급"
filter:
mute: "알림 끄기"
follow: "첫 글만"
watch: "모든 글과 댓글"
thread: "모든 글과 연결된 댓글"
rule_table:
filter: "알림 수준"
category: "카테고리"
tags: "태그"
edit_rule: "편집"
delete_rule: "삭제"
edit_channel_modal:
title: "채널 편집"
save: "채널 저장"
cancel: "취소"
provider: "연결 서비스"
channel_validation:
ok: "사용 가능"
fail: "형식이 올바르지 않음"
edit_rule_modal:
edit_title: "알림 규칙 편집"
create_title: "알림 규칙 만들기"
save: "규칙 저장"
cancel: "취소"
provider: "연결 서비스"
type: "알림 종류"
channel: "채널"
filter: "알림 수준"
category: "카테고리"
group: "그룹"
tags: "태그"
instructions:
type: "그룹 메시지나 그룹 언급 알림을 받으려면 알림 종류를 변경하세요."
filter: "알림 수준을 정합니다. 알림 끄기 규칙은 다른 규칙보다 우선합니다."
category: "지정한 카테고리의 글에만 이 규칙을 적용합니다."
group: "지정한 그룹을 언급한 글에 이 규칙을 적용합니다."
tags: "태그를 지정하면 이 태그 중 하나 이상이 있는 글에만 규칙을 적용합니다."
provider:
slack:
title: "Slack"
param:
identifier:
title: "채널"
help: "예: #channel 또는 @username"
errors:
at_least_one_required: "접근 토큰이나 보내는 웹훅 주소를 입력하세요."
invalid_webhook_url: "보내는 웹훅 주소는 https://hooks.slack.com/services/... 형식이어야 합니다."
auth_error: "인증 토큰이 올바르지 않습니다"
action_prohibited: "봇에 이 채널로 글을 보낼 권한이 없습니다"
channel_not_found: "Slack에서 지정한 채널을 찾을 수 없습니다"
telegram:
title: "Telegram"
param:
name:
title: "이름"
help: "채널을 구분할 이름입니다. Telegram 연결에는 사용하지 않습니다."
chat_id:
title: "채팅 번호"
help: "봇이 알려 준 숫자나 @channelname 형식의 방송 채널 이름을 입력하세요."
errors:
access_token_required: "봇 접근 토큰이 필요합니다."
webhook_setup_failed: "Telegram 웹훅을 등록하지 못했습니다. 토큰을 확인한 뒤 다시 시도하세요."
channel_not_found: "Telegram에서 지정한 채널을 찾을 수 없습니다"
forbidden: "봇에 이 채널로 글을 보낼 권한이 없습니다"
invalid_api_base_url: "Telegram API 기본 주소가 올바른 HTTPS 주소가 아닙니다."
api_base_url_blocked: "Telegram API 기본 주소로 보내는 요청이 차단됐습니다. 사설망 주소는 허용된 내부 호스트 설정에 추가해야 합니다."
discord:
title: "Discord"
param:
name:
title: "이름"
help: "채널을 구분할 이름입니다. Discord 연결에는 사용하지 않습니다."
webhook_url:
title: "웹훅 주소"
help: "Discord 서버 설정에서 만든 웹훅 주소를 입력하세요."
guilded:
title: "Guilded"
param:
name:
title: "이름"
help: "채널을 구분할 이름입니다. Guilded 연결에는 사용하지 않습니다."
webhook_url:
title: "웹훅 주소"
help: "Guilded 서버 설정에서 만든 웹훅 주소를 입력하세요."
mattermost:
title: "Mattermost"
param:
identifier:
title: "채널"
help: "예: #channel 또는 @username"
errors:
channel_not_found: "Mattermost에서 지정한 채널을 찾을 수 없습니다"
matrix:
title: "Matrix"
param:
name:
title: "이름"
help: "채널을 구분할 이름입니다. Matrix 연결에는 사용하지 않습니다."
room_id:
title: "대화방 번호"
help: "대화방의 비공개 식별자를 입력하세요. 예: !abcdefghijkl"
errors:
unknown_token: "접근 토큰이 올바르지 않습니다"
unknown_room: "대화방 번호가 올바르지 않습니다"
zulip:
title: "Zulip"
param:
stream:
title: "스트림"
help: "메시지를 보낼 Zulip 스트림 이름을 입력하세요. 예: general"
subject:
title: "주제"
help: "봇이 보내는 메시지에 붙일 주제를 입력하세요."
errors:
does_not_exist: "Zulip에서 지정한 스트림을 찾을 수 없습니다"
rocketchat:
title: "Rocket.Chat"
param:
identifier:
title: "채널"
help: "예: #channel 또는 @username"
errors:
invalid_channel: "Rocket.Chat에서 지정한 채널을 찾을 수 없습니다"
gitter:
title: "Gitter"
param:
name:
title: "이름"
help: "Gitter 대화방 이름을 입력하세요. 예: gitterHQ/services"
webhook_url:
title: "웹훅 주소"
help: "Gitter 대화방에서 연동을 만들 때 발급된 주소를 입력하세요."
groupme:
title: "GroupMe"
param:
groupme_instance_name:
title: "GroupMe 연결 이름"
help: "사이트 설정에 등록된 GroupMe 연결 이름을 입력하세요. 모든 연결에 보내려면 all을 사용합니다."
errors:
not_found: "메시지를 보낼 경로를 찾지 못했습니다. 사이트 설정의 봇 번호를 확인하세요."
teams:
title: "Microsoft Teams"
param:
name:
title: "이름"
help: "Teams 채널 이름을 입력하세요. 예: discourse"
webhook_url:
title: "웹훅 주소"
help: "받는 웹훅을 만들 때 발급된 주소를 입력하세요."
errors:
invalid_channel: "Microsoft Teams에서 지정한 채널을 찾을 수 없습니다"
powerautomate:
title: "Microsoft Power Automate"
param:
name:
title: "이름"
help: "관리자 화면에서 채널을 구분할 이름입니다."
webhook_url:
title: "웹훅 주소"
help: "받는 웹훅을 만들 때 발급된 주소를 입력하세요."
errors:
invalid_webhook: "웹훅 주소가 올바르지 않습니다."
webex:
title: "Webex Teams"
param:
name:
title: "이름"
help: "Webex 공간 이름을 입력하세요. 예: discourse"
webhook_url:
title: "웹훅 주소"
help: "받는 웹훅을 만들 때 발급된 주소를 입력하세요."
errors:
invalid_channel: "Webex에서 지정한 채널을 찾을 수 없습니다"
google:
title: "Google Chat"
param:
name:
title: "이름"
help: "관리자 화면에서 채널을 구분할 이름입니다."
webhook_url:
title: "웹훅 주소"
help: "새 웹훅을 만들 때 발급된 주소를 입력하세요."
discourse_automation:
scriptables:
send_slack_message:
title: "Slack 메시지 보내기"
fields:
message:
label: "메시지"
description: "글 이름에는 ${TOPIC}을 사용하고 주소에는 ${URL}을 사용하세요. 제거된 태그에는 ${REMOVED_TAGS}를 사용하고 추가된 태그에는 ${ADDED_TAGS}를 사용하세요. 기본 문구에는 ${ADDED_AND_REMOVED}를 사용합니다. 실행 조건이 글 태그 변경일 때만 사용할 수 있습니다."
url:
label: "주소"
channel:
label: "채널"
send_chat_integration_message:
title: "외부 채팅 메시지 보내기"
fields:
channel_name:
label: "채널 이름"
description: "외부 채팅 연동 설정에서 채널 이름을 확인할 수 있습니다"
provider:
label: "연결 서비스"
discourse_workflows:
node_unavailable:
requires_chat_integration: "외부 채팅 연동 기능을 켜야 합니다"
nodes:
"action:send_chat_integration_message": "외부 채팅 메시지 보내기"
node_descriptions:
"action:send_chat_integration_message": "Slack과 Discord 및 Telegram 같은 외부 채팅 채널로 알림을 보냅니다"
send_chat_integration_message:
channel_id: "채널"
configure: "설정"
message: "메시지"