번역: 문자열 속 번역 글자도 사전에 (보통 · 대기 · 화면 언어 등), 화면 크기 → Size

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
main
RyuJongJin 2026-10-04 15:44:03 +09:00
parent 1410dad2aa
commit 26b7b7ac13
4 changed files with 26 additions and 4 deletions

View File

@ -6,6 +6,7 @@
" (결과물 {0}개 함께)": " ({0} results moved too)", " (결과물 {0}개 함께)": " ({0} results moved too)",
" (대기열)": " (queued)", " (대기열)": " (queued)",
" (동영상 {0}개)": " ({0} videos)", " (동영상 {0}개)": " ({0} videos)",
" (보통)": " (normal)",
" (사용 불가)": " (unavailable)", " (사용 불가)": " (unavailable)",
" (자막 {0}개 함께)": " ({0} subtitles moved too)", " (자막 {0}개 함께)": " ({0} subtitles moved too)",
" (지금: 내림차순 · 다시 누르면 오름차순)": " (now: descending · press again for ascending)", " (지금: 내림차순 · 다시 누르면 오름차순)": " (now: descending · press again for ascending)",
@ -13,6 +14,7 @@
" / 전체 {0}": " / total {0}", " / 전체 {0}": " / total {0}",
" · ⚠ {0}개는 원본보다 커서 화질 향상 없이 용량만 늘어납니다": " · ⚠ {0} are larger than the original: the file grows without better quality", " · ⚠ {0}개는 원본보다 커서 화질 향상 없이 용량만 늘어납니다": " · ⚠ {0} are larger than the original: the file grows without better quality",
" · 다시 시작해야 Chrome 으로 바뀝니다": " · Restart to switch to Chrome", " · 다시 시작해야 Chrome 으로 바뀝니다": " · Restart to switch to Chrome",
" · 대기 {0}": " · {0} waiting",
" · 대기 {0}개": " · {0} waiting", " · 대기 {0}개": " · {0} waiting",
" → MKV 만들기": " → Make MKV", " → MKV 만들기": " → Make MKV",
" ⚠ 사용할 수 없는 코덱: {0}": " ⚠ Unavailable codec: {0}", " ⚠ 사용할 수 없는 코덱: {0}": " ⚠ Unavailable codec: {0}",
@ -208,6 +210,7 @@
"기기": "device", "기기": "device",
"기본 연결 프로그램": "Default app", "기본 연결 프로그램": "Default app",
"기본 크기 ({0}%) 로 · 기본 크기는 환경 설정 > 화면 에서": "Back to the default size ({0}%) · set the default size in Settings > Display", "기본 크기 ({0}%) 로 · 기본 크기는 환경 설정 > 화면 에서": "Back to the default size ({0}%) · set the default size in Settings > Display",
"기본 프로그램": "Default program",
"기본 프로그램으로 열기": "Open with the default program", "기본 프로그램으로 열기": "Open with the default program",
"기본 화면 크기": "Default display size", "기본 화면 크기": "Default display size",
"기본: MP4. 음성만 받으면 MP3 · M4A 로 저장": "Default: MP4. Audio only is saved as MP3 · M4A", "기본: MP4. 음성만 받으면 MP3 · M4A 로 저장": "Default: MP4. Audio only is saved as MP3 · M4A",
@ -807,9 +810,10 @@
"화면 방향": "Screen orientation", "화면 방향": "Screen orientation",
"화면 비율": "Aspect ratio", "화면 비율": "Aspect ratio",
"화면 비율 (가로 · 세로) · 회전 · 밝기 · 대비 · 채도 · 색온도": "Aspect ratio (landscape · portrait) · rotation · brightness · contrast · saturation · temperature", "화면 비율 (가로 · 세로) · 회전 · 밝기 · 대비 · 채도 · 색온도": "Aspect ratio (landscape · portrait) · rotation · brightness · contrast · saturation · temperature",
"화면 언어": "Display language",
"화면 작게": "Smaller", "화면 작게": "Smaller",
"화면 크게": "Larger", "화면 크게": "Larger",
"화면 크기": "Window size", "화면 크기": "Size",
"화질": "Quality", "화질": "Quality",
"확인": "OK", "확인": "OK",
"확인 · 압축 푸는 중…": "Verifying · extracting…", "확인 · 압축 푸는 중…": "Verifying · extracting…",

View File

@ -6,6 +6,7 @@
" (결과물 {0}개 함께)": "(成果物 {0}個も一緒に)", " (결과물 {0}개 함께)": "(成果物 {0}個も一緒に)",
" (대기열)": "(キュー)", " (대기열)": "(キュー)",
" (동영상 {0}개)": "(動画 {0}個)", " (동영상 {0}개)": "(動画 {0}個)",
" (보통)": "(標準)",
" (사용 불가)": "(使用不可)", " (사용 불가)": "(使用不可)",
" (자막 {0}개 함께)": "(字幕 {0}個も一緒に)", " (자막 {0}개 함께)": "(字幕 {0}個も一緒に)",
" (지금: 내림차순 · 다시 누르면 오름차순)": "(現在: 降順 · もう一度押すと昇順)", " (지금: 내림차순 · 다시 누르면 오름차순)": "(現在: 降順 · もう一度押すと昇順)",
@ -13,6 +14,7 @@
" / 전체 {0}": " / 全体 {0}", " / 전체 {0}": " / 全体 {0}",
" · ⚠ {0}개는 원본보다 커서 화질 향상 없이 용량만 늘어납니다": " · ⚠ {0}個は元より大きく、画質は上がらず容量だけ増えます", " · ⚠ {0}개는 원본보다 커서 화질 향상 없이 용량만 늘어납니다": " · ⚠ {0}個は元より大きく、画質は上がらず容量だけ増えます",
" · 다시 시작해야 Chrome 으로 바뀝니다": " · 再起動すると Chrome に切り替わります", " · 다시 시작해야 Chrome 으로 바뀝니다": " · 再起動すると Chrome に切り替わります",
" · 대기 {0}": " · 待機 {0}",
" · 대기 {0}개": " · 待機 {0}個", " · 대기 {0}개": " · 待機 {0}個",
" → MKV 만들기": " → MKV 作成", " → MKV 만들기": " → MKV 作成",
" ⚠ 사용할 수 없는 코덱: {0}": " ⚠ 使用できないコーデック: {0}", " ⚠ 사용할 수 없는 코덱: {0}": " ⚠ 使用できないコーデック: {0}",
@ -208,6 +210,7 @@
"기기": "端末", "기기": "端末",
"기본 연결 프로그램": "既定のアプリ", "기본 연결 프로그램": "既定のアプリ",
"기본 크기 ({0}%) 로 · 기본 크기는 환경 설정 > 화면 에서": "既定の大きさ({0}%)に戻す・既定の大きさは 環境設定 > 画面 で", "기본 크기 ({0}%) 로 · 기본 크기는 환경 설정 > 화면 에서": "既定の大きさ({0}%)に戻す・既定の大きさは 環境設定 > 画面 で",
"기본 프로그램": "既定のプログラム",
"기본 프로그램으로 열기": "既定のプログラムで開く", "기본 프로그램으로 열기": "既定のプログラムで開く",
"기본 화면 크기": "既定の画面サイズ", "기본 화면 크기": "既定の画面サイズ",
"기본: MP4. 음성만 받으면 MP3 · M4A 로 저장": "既定: MP4。音声のみなら MP3・M4A で保存", "기본: MP4. 음성만 받으면 MP3 · M4A 로 저장": "既定: MP4。音声のみなら MP3・M4A で保存",
@ -807,6 +810,7 @@
"화면 방향": "画面の向き", "화면 방향": "画面の向き",
"화면 비율": "画面比率", "화면 비율": "画面比率",
"화면 비율 (가로 · 세로) · 회전 · 밝기 · 대비 · 채도 · 색온도": "画面比率(横・縦)・回転・明るさ・コントラスト・彩度・色温度", "화면 비율 (가로 · 세로) · 회전 · 밝기 · 대비 · 채도 · 색온도": "画面比率(横・縦)・回転・明るさ・コントラスト・彩度・色温度",
"화면 언어": "表示言語",
"화면 작게": "画面を小さく", "화면 작게": "画面を小さく",
"화면 크게": "画面を大きく", "화면 크게": "画面を大きく",
"화면 크기": "画面サイズ", "화면 크기": "画面サイズ",

View File

@ -6,6 +6,7 @@
" (결과물 {0}개 함께)": "(成品 {0} 个一并移动)", " (결과물 {0}개 함께)": "(成品 {0} 个一并移动)",
" (대기열)": "(队列)", " (대기열)": "(队列)",
" (동영상 {0}개)": "({0} 个视频)", " (동영상 {0}개)": "({0} 个视频)",
" (보통)": "(标准)",
" (사용 불가)": "(不可用)", " (사용 불가)": "(不可用)",
" (자막 {0}개 함께)": "(字幕 {0} 个一并移动)", " (자막 {0}개 함께)": "(字幕 {0} 个一并移动)",
" (지금: 내림차순 · 다시 누르면 오름차순)": "(当前: 降序 · 再按一次改为升序)", " (지금: 내림차순 · 다시 누르면 오름차순)": "(当前: 降序 · 再按一次改为升序)",
@ -13,6 +14,7 @@
" / 전체 {0}": " / 共 {0}", " / 전체 {0}": " / 共 {0}",
" · ⚠ {0}개는 원본보다 커서 화질 향상 없이 용량만 늘어납니다": " · ⚠ {0} 个比原始尺寸大,只会增加体积而不会提升画质", " · ⚠ {0}개는 원본보다 커서 화질 향상 없이 용량만 늘어납니다": " · ⚠ {0} 个比原始尺寸大,只会增加体积而不会提升画质",
" · 다시 시작해야 Chrome 으로 바뀝니다": " · 重新启动后切换到 Chrome", " · 다시 시작해야 Chrome 으로 바뀝니다": " · 重新启动后切换到 Chrome",
" · 대기 {0}": " · 等待 {0}",
" · 대기 {0}개": " · 等待 {0} 个", " · 대기 {0}개": " · 等待 {0} 个",
" → MKV 만들기": " → 制作 MKV", " → MKV 만들기": " → 制作 MKV",
" ⚠ 사용할 수 없는 코덱: {0}": " ⚠ 不可用的编解码器: {0}", " ⚠ 사용할 수 없는 코덱: {0}": " ⚠ 不可用的编解码器: {0}",
@ -208,6 +210,7 @@
"기기": "设备", "기기": "设备",
"기본 연결 프로그램": "默认打开方式", "기본 연결 프로그램": "默认打开方式",
"기본 크기 ({0}%) 로 · 기본 크기는 환경 설정 > 화면 에서": "恢复默认大小({0}%)· 默认大小在 设置 > 显示 中设置", "기본 크기 ({0}%) 로 · 기본 크기는 환경 설정 > 화면 에서": "恢复默认大小({0}%)· 默认大小在 设置 > 显示 中设置",
"기본 프로그램": "默认程序",
"기본 프로그램으로 열기": "用默认程序打开", "기본 프로그램으로 열기": "用默认程序打开",
"기본 화면 크기": "默认显示大小", "기본 화면 크기": "默认显示大小",
"기본: MP4. 음성만 받으면 MP3 · M4A 로 저장": "默认: MP4。仅音频时保存为 MP3 · M4A", "기본: MP4. 음성만 받으면 MP3 · M4A 로 저장": "默认: MP4。仅音频时保存为 MP3 · M4A",
@ -807,9 +810,10 @@
"화면 방향": "屏幕方向", "화면 방향": "屏幕方向",
"화면 비율": "画面比例", "화면 비율": "画面比例",
"화면 비율 (가로 · 세로) · 회전 · 밝기 · 대비 · 채도 · 색온도": "画面比例(横屏 · 竖屏)· 旋转 · 亮度 · 对比度 · 饱和度 · 色温", "화면 비율 (가로 · 세로) · 회전 · 밝기 · 대비 · 채도 · 색온도": "画面比例(横屏 · 竖屏)· 旋转 · 亮度 · 对比度 · 饱和度 · 色温",
"화면 언어": "界面语言",
"화면 작게": "缩小界面", "화면 작게": "缩小界面",
"화면 크게": "放大界面", "화면 크게": "放大界面",
"화면 크기": "窗口大小", "화면 크기": "画面大小",
"화질": "画质", "화질": "画质",
"확인": "确定", "확인": "确定",
"확인 · 압축 푸는 중…": "正在校验 · 解压…", "확인 · 압축 푸는 중…": "正在校验 · 解压…",

View File

@ -94,8 +94,18 @@ for root, _, files in os.walk('lib'):
continue continue
path = os.path.join(root, f).replace('\\', '/') path = os.path.join(root, f).replace('\\', '/')
src = open(path, encoding='utf-8').read() src = open(path, encoding='utf-8').read()
for start, lits in literal_groups(src): # (그 글이 들어 있는 소스, 위치, 문자열 묶음). 문자열 안의 ${...} 식에 든 문자열도
before = src[max(0, start - 8):start] # (예: '${n}%${x ? tr(' (보통)') : ''}') 다시 찾는다.
todo = [(src, st, lits) for st, lits in literal_groups(src)]
k = 0
while k < len(todo):
for l in todo[k][2]:
for part in l.parts:
if part[0] == 'expr':
todo.extend((part[1], st, ls) for st, ls in literal_groups(part[1]))
k += 1
for text_src, start, lits in todo:
before = text_src[max(0, start - 8):start]
wrapped = re.search(r'\btrf?\(\s*$', before) is not None wrapped = re.search(r'\btrf?\(\s*$', before) is not None
text = group_text(lits) text = group_text(lits)
if not HANGUL.search(text): if not HANGUL.search(text):