M14: clarify Korean redaction and PDF terminology

Correct 28 context-sensitive Korean labels in the incoming translation, distinguish redaction marking, clearing, and permanent removal, and add a regression test. Document code evidence and outstanding runtime QA.
This commit is contained in:
Si Hyeong Lee
2026-10-13 15:22:56 -07:00
parent 49f3125e9e
commit 05179596b8
3 changed files with 127 additions and 28 deletions
+28 -28
View File
@@ -197,7 +197,7 @@
Compare files… 파일 비교…
Detect form fields 양식 필드 감지
Merge data files into spreadsheet… 데이터 파일을 스프레드시트로 병합…
Flatten form fields 양식 필드 병합
Flatten form fields 양식 필드 평탄화
Prepare a form 양식 준비
Tab order: by rows 탭 순서: 행 기준
Tab order: by columns 탭 순서: 열 기준
@@ -212,14 +212,14 @@
Removed {n} links 링크 {n}개를 제거했습니다
Add Bates numbering… Bates 번호 매기기 추가…
Add image… 이미지 추가…
Redact text and images 텍스트 및 이미지 검열
Redact pages… 페이지 검열…
Find text and redact… 텍스트 찾아 검열…
Redaction properties… 검열 속성…
Apply redactions… 검열 적용…
Clear redaction marks 검열 표시 지우기
Redact text and images 텍스트·이미지 제거 대상 표시
Redact pages… 페이지 내용 제거 대상 표시…
Find text and redact… 텍스트를 찾아 제거 대상으로 표시…
Redaction properties… 민감 정보 제거 속성…
Apply redactions… 표시된 정보 영구 제거…
Clear redaction marks 제거 대상 표시 지우기
Remove hidden information… 숨겨진 정보 제거…
Sanitize document… 문서 정리…
Sanitize document… 문서에서 숨겨진 정보 제거…
Field properties… 필드 속성…
Add a text field 텍스트 필드 추가
Add a checkbox 확인란 추가
@@ -380,10 +380,10 @@
Advanced options 고급 옵션
Encrypt with certificate 인증서로 암호화
Security properties 보안 속성
Redact a PDF PDF 검열
Redact 검열
Redact pages 페이지 검열
Find text and redact 텍스트 찾아 검열
Redact a PDF PDF 민감 정보 제거
Redact 민감 정보 제거
Redact pages 페이지 내용 제거 대상 표시
Find text and redact 텍스트를 찾아 제거 대상으로 표시
Set properties 속성 설정
Sanitize document 문서 정리
Compress a PDF PDF 압축
@@ -417,7 +417,7 @@
Output preview 출력 미리 보기
Preflight 프리플라이트
Convert colors 색상 변환
Add printer marks 프린터 표시 추가
Add printer marks 인쇄용 표시 추가
Fix hairlines 헤어라인 수정
Measure objects 개체 측정
Measure 측정
@@ -467,7 +467,7 @@
Preview 미리 보기
Edit fields 필드 편집
Try the form as people filling it in will see it 양식을 작성하는 사용자에게 보이는 그대로 양식을 사용해 보세요
Redact all 모두 검열
Redact all 표시된 정보 모두 영구 제거
Clear all 모두 지우기
Rotate page 페이지 회전
Delete page 페이지 삭제
@@ -1109,27 +1109,27 @@
Text in images isn't found; recognise text (OCR) first. 이미지 속 텍스트는 찾을 수 없습니다. 먼저 텍스트 인식(OCR)을 실행하세요.
No matches. 일치하는 항목이 없습니다.
Some bookmarks are not shown here: the panel lists a limited number, nested a limited depth. 일부 책갈피는 여기에 표시되지 않습니다. 패널에 나열되는 개수와 중첩 깊이가 제한되어 있습니다.
{n} match(es) marked for redaction. 검열하도록 표시된 일치 항목 {n}개입니다.
{n} match(es) marked for redaction. 검색 결과 {n}건을 제거 대상으로 표시했습니다.
Multiple words or phrases 여러 단어 또는 구문
One word or phrase per line 한 줄에 단어 또는 구문 하나
Import list… 목록 가져오기…
{n} word(s) or phrase(s) 단어 또는 구문 {n}개
{name} is too large for a word list (at most 1 MB). {name}은(는) 단어 목록으로 사용하기에 너무 큽니다(최대 1 MB).
Redaction Tool Properties 검열 도구 속성
Redacted area fill colour: 검열 영역 채우기 색:
Redaction Tool Properties 민감 정보 제거 도구 속성
Redacted area fill colour: 제거 영역 채우기 색:
Use overlay text 오버레이 텍스트 사용
Custom text: 사용자 지정 텍스트:
Redaction code: 검열 코드:
Redaction code: 제거 사유 코드:
Font: 글꼴:
Font size: 글꼴 크기:
Auto-size text to fit redaction region 검열 영역에 맞게 텍스트 크기 자동 조정
Auto-size text to fit redaction region 제거 영역에 맞춰 표시 문구 크기 자동 조정
Font colour: 글꼴 색:
Repeat overlay text 오버레이 텍스트 반복
Text alignment: 텍스트 정렬:
Center 가운데
Apply redactions 검열 적용
You are about to apply 1 redaction mark. Text, images and drawings under the marks, and comments and form fields that overlap them, are removed permanently. 검열 표시 1개를 적용하려고 합니다. 표시 아래의 텍스트, 이미지, 그림과 표시와 겹치는 주석 및 양식 필드가 영구적으로 제거됩니다.
You are about to apply {n} redaction marks. Text, images and drawings under the marks, and comments and form fields that overlap them, are removed permanently. 검열 표시 {n}개를 적용하려고 합니다. 표시 아래의 텍스트, 이미지, 그림과 표시와 겹치는 주석 및 양식 필드가 영구적으로 제거됩니다.
Apply redactions 표시된 정보 영구 제거
You are about to apply 1 redaction mark. Text, images and drawings under the marks, and comments and form fields that overlap them, are removed permanently. 제거 대상 표시 1개를 적용하려고 합니다. 표시된 영역의 텍스트, 이미지, 그림과 겹치는 주석 및 양식 필드가 영구적으로 제거됩니다.
You are about to apply {n} redaction marks. Text, images and drawings under the marks, and comments and form fields that overlap them, are removed permanently. 제거 대상 표시 {n}개를 적용하려고 합니다. 표시된 영역의 텍스트, 이미지, 그림과 겹치는 주석 및 양식 필드가 영구적으로 제거됩니다.
Save the document afterwards: saving rewrites the whole file so no trace of the removed content stays in it. 그 후 문서를 저장하세요. 저장하면 파일 전체가 다시 쓰여져 제거된 콘텐츠의 흔적이 남지 않습니다.
Select the items to remove from this document. 이 문서에서 제거할 항목을 선택하세요.
Metadata 메타데이터
@@ -1799,7 +1799,7 @@
a bookmark cannot be moved inside itself 책갈피를 자기 자신 안으로 이동할 수 없음
the title must not be empty 제목은 비워 둘 수 없음
the document has no form fields 문서에 양식 필드가 없음
there are no redaction marks to apply 적용할 검열 표시가 없음
there are no redaction marks to apply 적용할 제거 대상 표시가 없음
there are no pages to print 인쇄할 페이지가 없음
the document has no tags 문서에 태그가 없음
{0}: {1} {0}: {1}
@@ -1905,7 +1905,7 @@
Add image 이미지 추가
Edit content 콘텐츠 편집
Delete content 콘텐츠 삭제
Remove redaction marks 검열 표시 제거
Remove redaction marks 제거 대상 표시 삭제
Add link 링크 추가
Change link properties 링크 속성 변경
Delete link 링크 삭제
@@ -1926,7 +1926,7 @@
Add cross X 표시 추가
Add dot 점 추가
Add signature 서명 추가
Add redaction mark 검열 표시 추가
Add redaction mark 제거 대상 표시 추가
Add cloud 구름 추가
Add polygon 다각형 추가
Add connected lines 연결선 추가
@@ -2135,8 +2135,8 @@ calendar date December 12월
Align fields 필드 정렬
Distribute fields 필드 분배
Match field sizes 필드 크기 맞춤
Mark for redaction 검열 표시
Mark pages for redaction 페이지 검열 표시
Mark for redaction 제거할 영역 표시
Mark pages for redaction 페이지 내용 제거 대상으로 표시
Change document properties 문서 속성 변경
Mark differences 차이점 표시
Run form script 양식 스크립트 실행
@@ -2165,7 +2165,7 @@ calendar date December 12월
Larger pages 더 큰 페이지
Smaller pages 더 작은 페이지
Reset page size 페이지 크기 재설정
Flatten Fill & Sign when saving 저장할 때 채우기 및 서명 병합
Flatten Fill & Sign when saving 저장 시 입력 내용과 서명을 페이지에 고정
Text, marks and signatures become part of the page. Other comments stay editable. 텍스트, 표시 및 서명이 페이지의 일부가 됩니다. 다른 주석은 계속 편집할 수 있습니다.
Date format 날짜 형식
Fill & Sign dates 채우기 및 서명 날짜
Can't render this file because it contains an unexpected character in line 852 and column 12.
+30
View File
@@ -2558,6 +2558,36 @@ mod tests {
}
}
/// Redaction first marks a region; applying it irreversibly removes marked content.
/// Korean must not present either stage as censorship ("검열") or imply that
/// clearing un-applied marks deletes PDF content.
#[test]
fn korean_redaction_labels_distinguish_marks_and_permanent_removal() {
let ko = Lang::from_code("ko").expect("ko registered");
for english in [
"Redact",
"Redact a PDF",
"Redact text and images",
"Redact pages…",
"Mark for redaction",
"Apply redactions",
"Apply redactions…",
"Clear redaction marks",
"Redact all",
] {
assert!(!tr(ko, english).contains("검열"), "Korean label misstates redaction: {english}");
}
assert_eq!(tr(ko, "Mark for redaction"), "제거할 영역 표시");
assert_eq!(tr(ko, "Apply redactions"), "표시된 정보 영구 제거");
assert_eq!(tr(ko, "Clear redaction marks"), "제거 대상 표시 지우기");
let warning = concat!(
"You are about to apply 1 redaction mark. ",
"Text, images and drawings under the marks, and comments ",
"and form fields that overlap them, are removed permanently."
);
assert!(tr(ko, warning).contains("영구적으로 제거됩니다"));
}
/// Hindi and Korean translate every registered command and every All tools group, section
/// and item.
#[test]
+69
View File
@@ -0,0 +1,69 @@
# Korean UI terminology review — draft follow-up to #1976
This is a code-grounded review draft, NOT evidence of completed native-speaker or runtime QA. Only
Korean UI labels change; English lookup keys, stable command IDs, PDF contents and automation
protocols remain unchanged.
## Redaction has three separate operations
The initial Korean catalog used the word "검열" (censorship) for all redaction actions.
The project source has three distinct stages:
| Stage | Relevant code | Korean meaning |
| --- | --- | --- |
| Mark | crates/ui-egui/src/redact_ui.rs (RedactPrefs::mark), crates/engine/src/commands.rs (redact.mark/pages/search) | Mark a future removal area; content is not yet permanently removed |
| Apply | crates/ui-egui/src/commands.rs (redact.apply), crates/ui-egui/src/redact_ui.rs (confirmation), crates/redact/src/lib.rs (apply) | Confirm and remove covered content permanently |
| Clear | crates/ui-egui/src/commands.rs (redact.clear -> Edit::ClearRedactions) | Clear pending marks WITHOUT deleting the underlying content |
Terminology chosen from these behaviors:
- Tool (Redact): 민감 정보 제거
- Mark for redaction: 제거할 영역 표시
- Apply redactions: 표시된 정보 영구 제거
- Clear redaction marks: 제거 대상 표시 지우기
- Redaction code: 제거 사유 코드 (reason/exemption code sets: crates/redact/src/codes.rs)
"Clear all" is a generic English lookup key used in other contexts and intentionally
is NOT changed to "clear redaction marks" globally.
## Additional terminology improvements
| English | Previous | Proposed | Source |
| --- | --- | --- | --- |
| Sanitize document… | 문서 정리… | 문서에서 숨겨진 정보 제거… | crates/redact/src/sanitize.rs |
| Flatten form fields | 양식 필드 병합 | 양식 필드 평탄화 | crates/ui-egui/src/optimize_ui.rs |
| Flatten Fill & Sign when saving | 저장할 때 채우기 및 서명 병합 | 저장 시 입력 내용과 서명을 페이지에 고정 | crates/ui-egui/src/editing.rs |
| Add printer marks | 프린터 표시 추가 | 인쇄용 표시 추가 | printer marks are printed on pages, not on devices |
This review does not change acceptable variations such as 확인란/체크박스 or
Bates/베이츠 simply for stylistic reasons. Certificate and digital-signature
language requires separate code-context review.
## Verification and remaining gates
- Tested: catalog key coverage, TSV structural rules, placeholder preservation,
ellipsis preservation, old-vs-new textual regression assertions.
- Added a Rust regression test for the distinct redaction stage labels. This test
had failing baseline strings before the terminology changes.
- NOT YET EXECUTED: cargo fmt, Rust unit tests, real Windows UI, font glyph coverage,
PDF save/reopen, OCR, permanent-redaction behavior on a synthetic PDF.
These gates are necessary before calling the translation production-ready.
## UI acceptance test matrix (synthetic data only)
1. With an English UI, open a sample PDF called 한글_검수.pdf containing Hangul bookmark
and comment text. Verify that tab, bookmark, search and dialogs render Hangul rather
than replacement boxes, regardless of interface language.
2. Select 한국어 under Preferences and check persistence; separately test Auto on ko-KR.
3. Draw a redaction mark on TEST-REDACT-UNIQUE. Before Apply, the UI must say
"marked" rather than implying permanent removal. Clear must remove only marks.
4. On a separate synthetic document, Apply redactions, save and reopen; inspect
extracted text and rendered output for the removed token (source-byte/fidelity
checks belong in the engine suite as well).
5. Flatten an AcroForm field and reopen: the visible value should remain on the
page without the interactive field being editable as before.
6. Test 100/125/150% Windows display scaling for Korean text overflow and truncation.
7. Test web build font delivery separately once Hangul font PR #1484 lands.
The translations were written from intended source-code behavior. Do not copy other
products' localization files, proprietary Adobe assets, fonts or real users' PDFs.