Files
discourse-korean-localization/scripts/verify_web.rb
T
syskiller 5bad207526 포럼 한국어 번역 플러그인을 복구하고 배포 검사를 보강
비어 있던 운영 플러그인 경로를 전용 서비스 원본으로 복구했다.
음성 입장 안내와 주변 메뉴 및 관리자 번역을 실제 화면에서 확인했다.
관리자 주소용 내부 이름을 보존하고 보드 메뉴 두 곳의 제목을 복구했다.

검사: Ruby 문법과 YAML 11개 통과. 활성 번역 6004개와 음성 번역 561개 누락 0개.
일반 화면과 관리자 번역 및 보드 자산의 제공 해시를 확인했다.
PC와 390픽셀 모바일 안내창 및 관리자 메뉴 주소를 확인했다.
운영: app 컨테이너만 갱신. DB 구조 변경과 데이터 이전 없음.
백업: /var/discourse/shared/standalone/backups/forum-korean-20261015-1150
설정 백업은 별도 비밀 디렉터리의 권한 600 파일로 보관했다.
제한: DB 복원 시험과 다음 컨테이너 재생성은 이번 검사에 포함하지 않았다.
Trilium: Ubuntu 서버 운영 아래 Discourse 한국어 배포에 기록했다.
2026-10-14 22:44:52 +00:00

22 lines
876 B
Ruby

# frozen_string_literal: true
require "json"
require "digest"
require "net/http"
require "uri"
base, report_path = ARGV
report = JSON.parse(File.read(report_path))
site = URI(base)
home = Net::HTTP.get_response(site)
abort "포럼 응답 확인 실패: HTTP #{home.code}" unless home.is_a?(Net::HTTPSuccess)
report.fetch("bundles").each do |bundle, expected|
uri = URI.join(base, expected.fetch("url"))
abort "예상하지 않은 번역 서버 주소" unless uri.host == site.host
response = Net::HTTP.get_response(uri)
abort "#{bundle} 번역 요청 실패: HTTP #{response.code}" unless response.is_a?(Net::HTTPSuccess)
abort "#{bundle} 웹 번역이 실행 원본과 다릅니다." unless Digest::SHA256.hexdigest(response.body) == expected.fetch("sha256")
end
puts "포럼 HTTP 200과 실제 사용자 화면 및 관리자 화면 번역 묶음 확인 완료"