From 26b7b7ac13951f0c878bd3ff9679276495b5ad48 Mon Sep 17 00:00:00 2001 From: RyuJongJin <266630912+RyuJongJin@users.noreply.github.com> Date: Sun, 4 Oct 2026 15:44:03 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B2=88=EC=97=AD:=20=EB=AC=B8=EC=9E=90?= =?UTF-8?q?=EC=97=B4=20=EC=86=8D=20=EB=B2=88=EC=97=AD=20=EA=B8=80=EC=9E=90?= =?UTF-8?q?=EB=8F=84=20=EC=82=AC=EC=A0=84=EC=97=90=20(=EB=B3=B4=ED=86=B5?= =?UTF-8?q?=20=C2=B7=20=EB=8C=80=EA=B8=B0=20=C2=B7=20=ED=99=94=EB=A9=B4=20?= =?UTF-8?q?=EC=96=B8=EC=96=B4=20=EB=93=B1),=20=ED=99=94=EB=A9=B4=20?= =?UTF-8?q?=ED=81=AC=EA=B8=B0=20=E2=86=92=20Size?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- assets/l10n/en.json | 6 +++++- assets/l10n/ja.json | 4 ++++ assets/l10n/zh-Hans.json | 6 +++++- tool/l10n/extract_keys.py | 14 ++++++++++++-- 4 files changed, 26 insertions(+), 4 deletions(-) diff --git a/assets/l10n/en.json b/assets/l10n/en.json index 6714733..be3b6e0 100644 --- a/assets/l10n/en.json +++ b/assets/l10n/en.json @@ -6,6 +6,7 @@ " (결과물 {0}개 함께)": " ({0} results moved too)", " (대기열)": " (queued)", " (동영상 {0}개)": " ({0} videos)", + " (보통)": " (normal)", " (사용 불가)": " (unavailable)", " (자막 {0}개 함께)": " ({0} subtitles moved too)", " (지금: 내림차순 · 다시 누르면 오름차순)": " (now: descending · press again for ascending)", @@ -13,6 +14,7 @@ " / 전체 {0}": " / total {0}", " · ⚠ {0}개는 원본보다 커서 화질 향상 없이 용량만 늘어납니다": " · ⚠ {0} are larger than the original: the file grows without better quality", " · 다시 시작해야 Chrome 으로 바뀝니다": " · Restart to switch to Chrome", + " · 대기 {0}": " · {0} waiting", " · 대기 {0}개": " · {0} waiting", " → MKV 만들기": " → Make MKV", " ⚠ 사용할 수 없는 코덱: {0}": " ⚠ Unavailable codec: {0}", @@ -208,6 +210,7 @@ "기기": "device", "기본 연결 프로그램": "Default app", "기본 크기 ({0}%) 로 · 기본 크기는 환경 설정 > 화면 에서": "Back to the default size ({0}%) · set the default size in Settings > Display", + "기본 프로그램": "Default program", "기본 프로그램으로 열기": "Open with the default program", "기본 화면 크기": "Default display size", "기본: MP4. 음성만 받으면 MP3 · M4A 로 저장": "Default: MP4. Audio only is saved as MP3 · M4A", @@ -807,9 +810,10 @@ "화면 방향": "Screen orientation", "화면 비율": "Aspect ratio", "화면 비율 (가로 · 세로) · 회전 · 밝기 · 대비 · 채도 · 색온도": "Aspect ratio (landscape · portrait) · rotation · brightness · contrast · saturation · temperature", + "화면 언어": "Display language", "화면 작게": "Smaller", "화면 크게": "Larger", - "화면 크기": "Window size", + "화면 크기": "Size", "화질": "Quality", "확인": "OK", "확인 · 압축 푸는 중…": "Verifying · extracting…", diff --git a/assets/l10n/ja.json b/assets/l10n/ja.json index 47e5d83..273591c 100644 --- a/assets/l10n/ja.json +++ b/assets/l10n/ja.json @@ -6,6 +6,7 @@ " (결과물 {0}개 함께)": "(成果物 {0}個も一緒に)", " (대기열)": "(キュー)", " (동영상 {0}개)": "(動画 {0}個)", + " (보통)": "(標準)", " (사용 불가)": "(使用不可)", " (자막 {0}개 함께)": "(字幕 {0}個も一緒に)", " (지금: 내림차순 · 다시 누르면 오름차순)": "(現在: 降順 · もう一度押すと昇順)", @@ -13,6 +14,7 @@ " / 전체 {0}": " / 全体 {0}", " · ⚠ {0}개는 원본보다 커서 화질 향상 없이 용량만 늘어납니다": " · ⚠ {0}個は元より大きく、画質は上がらず容量だけ増えます", " · 다시 시작해야 Chrome 으로 바뀝니다": " · 再起動すると Chrome に切り替わります", + " · 대기 {0}": " · 待機 {0}", " · 대기 {0}개": " · 待機 {0}個", " → MKV 만들기": " → MKV 作成", " ⚠ 사용할 수 없는 코덱: {0}": " ⚠ 使用できないコーデック: {0}", @@ -208,6 +210,7 @@ "기기": "端末", "기본 연결 프로그램": "既定のアプリ", "기본 크기 ({0}%) 로 · 기본 크기는 환경 설정 > 화면 에서": "既定の大きさ({0}%)に戻す・既定の大きさは 環境設定 > 画面 で", + "기본 프로그램": "既定のプログラム", "기본 프로그램으로 열기": "既定のプログラムで開く", "기본 화면 크기": "既定の画面サイズ", "기본: MP4. 음성만 받으면 MP3 · M4A 로 저장": "既定: MP4。音声のみなら MP3・M4A で保存", @@ -807,6 +810,7 @@ "화면 방향": "画面の向き", "화면 비율": "画面比率", "화면 비율 (가로 · 세로) · 회전 · 밝기 · 대비 · 채도 · 색온도": "画面比率(横・縦)・回転・明るさ・コントラスト・彩度・色温度", + "화면 언어": "表示言語", "화면 작게": "画面を小さく", "화면 크게": "画面を大きく", "화면 크기": "画面サイズ", diff --git a/assets/l10n/zh-Hans.json b/assets/l10n/zh-Hans.json index 952b970..cf14ba6 100644 --- a/assets/l10n/zh-Hans.json +++ b/assets/l10n/zh-Hans.json @@ -6,6 +6,7 @@ " (결과물 {0}개 함께)": "(成品 {0} 个一并移动)", " (대기열)": "(队列)", " (동영상 {0}개)": "({0} 个视频)", + " (보통)": "(标准)", " (사용 불가)": "(不可用)", " (자막 {0}개 함께)": "(字幕 {0} 个一并移动)", " (지금: 내림차순 · 다시 누르면 오름차순)": "(当前: 降序 · 再按一次改为升序)", @@ -13,6 +14,7 @@ " / 전체 {0}": " / 共 {0}", " · ⚠ {0}개는 원본보다 커서 화질 향상 없이 용량만 늘어납니다": " · ⚠ {0} 个比原始尺寸大,只会增加体积而不会提升画质", " · 다시 시작해야 Chrome 으로 바뀝니다": " · 重新启动后切换到 Chrome", + " · 대기 {0}": " · 等待 {0}", " · 대기 {0}개": " · 等待 {0} 个", " → MKV 만들기": " → 制作 MKV", " ⚠ 사용할 수 없는 코덱: {0}": " ⚠ 不可用的编解码器: {0}", @@ -208,6 +210,7 @@ "기기": "设备", "기본 연결 프로그램": "默认打开方式", "기본 크기 ({0}%) 로 · 기본 크기는 환경 설정 > 화면 에서": "恢复默认大小({0}%)· 默认大小在 设置 > 显示 中设置", + "기본 프로그램": "默认程序", "기본 프로그램으로 열기": "用默认程序打开", "기본 화면 크기": "默认显示大小", "기본: MP4. 음성만 받으면 MP3 · M4A 로 저장": "默认: MP4。仅音频时保存为 MP3 · M4A", @@ -807,9 +810,10 @@ "화면 방향": "屏幕方向", "화면 비율": "画面比例", "화면 비율 (가로 · 세로) · 회전 · 밝기 · 대비 · 채도 · 색온도": "画面比例(横屏 · 竖屏)· 旋转 · 亮度 · 对比度 · 饱和度 · 色温", + "화면 언어": "界面语言", "화면 작게": "缩小界面", "화면 크게": "放大界面", - "화면 크기": "窗口大小", + "화면 크기": "画面大小", "화질": "画质", "확인": "确定", "확인 · 압축 푸는 중…": "正在校验 · 解压…", diff --git a/tool/l10n/extract_keys.py b/tool/l10n/extract_keys.py index 951a4bf..b203edb 100644 --- a/tool/l10n/extract_keys.py +++ b/tool/l10n/extract_keys.py @@ -94,8 +94,18 @@ for root, _, files in os.walk('lib'): continue path = os.path.join(root, f).replace('\\', '/') 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 text = group_text(lits) if not HANGUL.search(text):