fix(i18n): add missing translation keys for signatures and email import

Fixes 25 failing tests across translations and eml-import test suites:

- Add 141 missing i18n keys to en/common.json for P2.1 (extended signatures
  feature) and P2.5 (email import feature). Keys cover:
  - signatures.* (signature editor, toolbar labels, per-identity settings)
  - settings.importer.* (mail import UI labels and messages)
  - settings.tabs.signatures, settings.{loading,refresh}
  - email_composer.{insert_signature,no_signature,select_signature}
  - identities.form.{signature_store_*,use_global_default}
  - calendar.{edit,delete,duplicate}, contacts.{edit,delete,send_email}
  - contacts.import.csv_* (CSV column mapping labels)
  - Other related keys for sharing, mailbox context menu, file operations

- Propagate new keys to all 23 other locale files:
  - ar, ca, cs, da, de, es, fa, fr, he, hu, it, ja, ko, lv, nl, pl, pt, ro,
    ru, sk, tr, uk, zh
  - 19 locales with real, idiomatic translations matching existing tone
  - 4 locales (da, es, fa, zh) with English placeholders pending native
    translation

- Fix eml-import test: update accept-string expectation to match actual
  EML_IMPORT_ACCEPT constant (now includes .tgz, .tar.gz, application/gzip
  support added in P2.5)

All 53 tests now pass:
  - 48 translation completeness tests
  - 5 eml-import tests

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Bernd Rodler
2026-08-07 15:15:17 +02:00
co-authored by Claude Sonnet 5
parent a0bffa9467
commit 1189b146ef
26 changed files with 4123 additions and 253 deletions
+168 -11
View File
@@ -567,7 +567,8 @@
"copied": "복사됨!",
"copy_failed": "복사하지 못했습니다"
},
"send_now": "지금 보내기"
"send_now": "지금 보내기",
"create_appointment": "일정 만들기"
},
"email_composer": {
"read_receipt_on": "읽음 확인 요청됨 (클릭하여 해제)",
@@ -712,7 +713,10 @@
"delete_table": "표 삭제",
"pick_size": "크기 선택"
},
"send_filing_warning": "보냈지만 전송 후 정리에 실패했습니다. 오래된 임시 보관 메일이 남아 있을 수 있습니다."
"send_filing_warning": "보냈지만 전송 후 정리에 실패했습니다. 오래된 임시 보관 메일이 남아 있을 수 있습니다.",
"insert_signature": "서명 삽입",
"no_signature": "서명 없음",
"select_signature": "서명 선택"
},
"confirm_dialog": {
"confirm": "확인",
@@ -888,7 +892,10 @@
"downloads": "다운로드",
"content_senders": "콘텐츠 및 발신자",
"about_data": "정보 및 데이터",
"debug": "디버그"
"debug": "디버그",
"import": "가져오기",
"sharing": "공유",
"signatures": "서명"
},
"tab_groups": {
"general": "일반",
@@ -2007,7 +2014,39 @@
"scoped": {
"back": "내 계정으로 돌아가기",
"managing": "관리 중: {name}"
}
},
"importer": {
"action_label": "가져오기",
"cancel": "취소",
"choose_files": "파일 선택",
"conflict_copy": "둘 다 유지",
"conflict_description": "가져올 메시지가 이미 있을 때 어떻게 처리할지 선택해 주세요.",
"conflict_label": "중복 처리",
"conflict_replace": "중복 항목 바꾸기",
"conflict_skip": "중복 항목 건너뛰기",
"description": ".eml 파일에서 이메일 메시지를 폴더로 가져와요.",
"error_details": "{count, plural, one {오류 1개} other {오류 #개}}",
"fail": "가져오기 실패",
"file_description": "가져올 .eml 파일을 하나 이상 선택해 주세요.",
"file_label": "파일",
"files_selected": "{count, plural, one {파일 1개 선택됨} other {파일 #개 선택됨}}",
"folder_description": "메시지를 가져올 폴더를 선택해 주세요.",
"folder_label": "대상 폴더",
"import_complete": "가져오기 완료",
"import_more": "더 가져오기",
"importing": "가져오는 중...",
"progress_failed": "{count}개 실패",
"progress_imported": "{count}개 가져옴",
"progress_skipped": "{count}개 건너뜀",
"start_import": "{count, plural, one {파일 1개 가져오기} other {파일 #개 가져오기}}",
"success": "{count, plural, one {메시지 1개 가져옴} other {메시지 #개 가져옴}}",
"summary_failed": "{count, plural, one {메시지 1개 실패} other {메시지 #개 실패}}",
"summary_imported": "{count, plural, one {메시지 1개 가져옴} other {메시지 #개 가져옴}}",
"summary_skipped": "{count, plural, one {메시지 1개 건너뜀} other {메시지 #개 건너뜀}}",
"title": "메일 가져오기"
},
"loading": "불러오는 중...",
"refresh": "새로고침"
},
"errors": {
"page_error_title": "문제가 발생했어요",
@@ -2085,7 +2124,8 @@
"toast_error_delete_has_email": "폴더가 비어 있지 않습니다. 먼저 비우세요.",
"placeholder_folder_name": "폴더 이름",
"create": "만들기",
"rename_confirm": "이름 바꾸기"
"rename_confirm": "이름 바꾸기",
"share_folder": "폴더 공유..."
},
"shortcuts": {
"title": "단축키",
@@ -2184,7 +2224,11 @@
"save": "저장",
"cancel": "취소",
"creating": "만드는 중...",
"updating": "업데이트 중..."
"updating": "업데이트 중...",
"signature_store_default": "기본 서명",
"signature_store_mapping": "서명 매핑",
"signature_store_reply": "답장 서명",
"use_global_default": "전역 기본값 사용"
},
"sub_address": {
"button_tooltip": "서브 어드레스 사용",
@@ -2510,7 +2554,29 @@
"success": "{count}개의 연락처를 성공적으로 가져왔어요",
"failed": "가져오기 실패",
"close": "닫기",
"file_too_large": "파일이 너무 커요 (최대 5MB)"
"file_too_large": "파일이 너무 커요 (최대 5MB)",
"csv_address": "주소",
"csv_address_book": "주소록",
"csv_back": "뒤로",
"csv_city": "도시",
"csv_company": "회사",
"csv_country": "국가",
"csv_email": "이메일",
"csv_first_name": "이름",
"csv_ignore": "이 열 무시",
"csv_job_title": "직책",
"csv_last_name": "성",
"csv_load_all": "전체 불러오기",
"csv_map_columns": "열 매핑",
"csv_nickname": "별명",
"csv_note": "메모",
"csv_phone": "전화번호",
"csv_postcode": "우편번호",
"csv_preview": "미리보기",
"csv_preview_title": "미리보기 ({count, plural, one {1행} other {#행}})",
"csv_region": "주/지역",
"csv_website": "웹사이트",
"file_types_csv": ".csv 파일"
},
"export": {
"title": "연락처 내보내기",
@@ -2569,7 +2635,10 @@
"has_phone": "전화번호 있음",
"has_photo": "사진 있음"
},
"open_categories": "카테고리 열기"
"open_categories": "카테고리 열기",
"delete": "삭제",
"edit": "수정",
"send_email": "이메일 보내기"
},
"calendar": {
"title": "캘린더",
@@ -2988,7 +3057,37 @@
"bah": "Bahman",
"esf": "Esfand"
},
"nav_open_menu": "메뉴 열기"
"nav_open_menu": "메뉴 열기",
"delete": "삭제",
"duplicate": "복제",
"edit": "수정",
"freeBusy": {
"busy": "바쁨",
"check": "가능 여부 확인",
"click_to_select": "빈 시간을 클릭해서 이 시간을 선택하세요.",
"free": "한가함",
"hide": "가능 여부 숨기기",
"loading": "불러오는 중...",
"no_participants": "참석자를 추가하면 가능 여부를 확인할 수 있어요.",
"tentative": "미정",
"timezone": "시간대",
"title": "가능 여부",
"unavailable": "부재중",
"unknown": "정보 없음"
},
"resources": {
"clear_all": "모두 지우기",
"filter_all": "전체",
"hide": "리소스 숨기기",
"no_resources": "사용 가능한 리소스가 없어요",
"remove": "{name} 제거",
"search_placeholder": "리소스 검색...",
"title": "리소스",
"type_equipment": "장비",
"type_other": "기타",
"type_room": "회의실",
"type_vehicle": "차량"
}
},
"advanced_search": {
"title": "상세 검색",
@@ -3153,7 +3252,8 @@
"open_folder_tree": "폴더 트리 열기",
"other_accounts": "다른 계정",
"migration_title": "파일 업데이트 중…",
"migration_description": "폴더와 파일을 올바른 구조로 정리하고 있습니다. 이 작업은 한 번만 수행됩니다."
"migration_description": "폴더와 파일을 올바른 구조로 정리하고 있습니다. 이 작업은 한 번만 수행됩니다.",
"send_as_attachment": "첨부 파일로 보내기"
},
"smime": {
"your_certificates": "내 인증서",
@@ -3308,7 +3408,14 @@
"readWrite": "읽기 및 쓰기",
"manager": "관리자",
"custom": "사용자 지정"
}
},
"accept": "수락",
"decline": "거절",
"no_shares_by_me": "아직 공유한 항목이 없습니다.",
"no_shares_with_me": "아직 공유받은 폴더가 없습니다.",
"shared_by": "공유한 사람",
"tab_shared_by_me": "내가 공유함",
"tab_shared_with_me": "나와 공유됨"
},
"quote_header": {
"reply_line": "{date}에 {from}님이 작성:",
@@ -3324,5 +3431,55 @@
"install": "설치",
"dont_remind": "다시 알리지 않음",
"dismiss_aria": "설치 프롬프트 닫기"
},
"signatures": {
"add_signature": "서명 추가",
"default": "기본",
"default_signature": {
"description": "발신자별로 다르게 설정하지 않으면 새 메시지에 사용돼요.",
"label": "기본 서명"
},
"delete_message": "정말 \"{name}\"을(를) 삭제할까요? 이 작업은 되돌릴 수 없어요.",
"delete_title": "서명을 삭제할까요?",
"description": "메일을 작성하거나 답장할 때 사용할 서명을 만들고 관리해 보세요.",
"duplicate": "복제",
"edit_signature": "서명 수정",
"editor_label": "서명",
"html_preview_label": "HTML 미리보기",
"name_label": "이름",
"name_placeholder": "예: 업무, 개인",
"name_required": "이름을 입력해 주세요",
"new_signature": "새 서명",
"no_signature": "서명 없음",
"no_signatures": "아직 서명이 없어요",
"per_identity_signatures": {
"description": "발신자별로 기본 서명과 답장 서명을 다르게 설정할 수 있어요.",
"label": "발신자별 서명"
},
"plain_text_preview_label": "일반 텍스트 미리보기",
"reply": "답장",
"reply_signature": {
"description": "발신자별로 다르게 설정하지 않으면 답장하거나 전달할 때 사용돼요.",
"label": "답장 서명"
},
"show_editor": "편집기 표시",
"show_preview": "미리보기 표시",
"title": "서명",
"toolbar": {
"align_center": "가운데 정렬",
"align_left": "왼쪽 정렬",
"align_right": "오른쪽 정렬",
"bold": "굵게",
"bullet_list": "글머리 기호 목록",
"italic": "기울임꼴",
"link": "링크",
"ordered_list": "번호 매기기 목록",
"remove_color": "색 제거",
"strikethrough": "취소선",
"text_color": "글자 색",
"underline": "밑줄"
},
"use_global_default": "전역 기본값 사용",
"your_signatures": "내 서명 ({count})"
}
}