Files
UmbraAudio/samples/translations/deal_hunter_sample_ch1_KO.json
B.D. Murphy b63bc5bd0a Fix language selector being invisible; correct sample utterance types
The dropdown was in the HTML all along and still could not be seen. Three
separate causes, found by measuring the rendered element rather than
trusting that the markup existed:

1. Clipped off-screen. The h1 is a flex row with no wrap. Measured at an
   800px viewport: the language span started at x=620 and ended at x=810,
   past the viewport edge, so only its first few pixels were painted. The
   project badge alone took 309px. Adding flex-shrink and truncating the
   badge did not fix it - there is genuinely no room in that row. The
   selector now gets its own bar directly under the header, and the
   project name ellipsises. Verified visible: x=181, right=341 in an
   800px viewport, 34px tall.

2. Empty on every other page. base.html rendered the select from a
   `languages` variable that almost no page supplies, so the login page
   and the rest of the app showed a 38px-wide dropdown with zero options -
   effectively invisible, and a dead control. Pages now opt in by
   overriding a header_bar block. Verified /, /speakers, /chapters-audio
   and /login all still render.

3. Browser cache made my own screenshot lie. It showed a stale Japanese
   string containing the word "decisiveness" that is in no file on disk.
   A cache-busted fetch confirmed the server is clean. Worth remembering:
   a screenshot taken through a warm cache is not evidence.

The screenshot also exposed a data bug. All 12 sample utterances carried
type "narration" - including Kainda, Duchess Victoria, Deal Hunter, Nanny
and Trader Romano, who are all speaking. Every row rendered a narration
badge and the file told UmbraTrans that six characters were not speaking.
SHAPE in build_sample_translations.py now marks 6 dialogue / 6 narration,
and the generated JSONs are regenerated to match.

Also removed a misleading issue. It reported "12 rendered clips have no
staleness marker" as a translation problem; the markers are absent because
render_lang_test.py does not write them, so it was sending the reader after
a defect that does not exist. Replaced with the honest one: only 12 of
4,319 translated and none confirmed - sample only, not publishable.

Suite: 721 passed, 8 pre-existing. ruff clean on changed regions.
2026-10-14 08:06:38 -07:00

84 lines
3.3 KiB
JSON

{
"project": "DealHunterShip_4.0e_whole-to-audio",
"chapter_id": 1,
"chapter_title": "Sample / voice introduction",
"language_name": "Korean",
"language_code": "ko",
"tts_engine": "Qwen3-TTS",
"is_source_language": false,
"provenance": "LLM-produced sample, single pass, NOT the multi-pass pipeline. Requires native-speaker review.",
"utterances": [
{
"index": 0,
"speaker": "Narrator",
"type": "narration",
"text": "오디오북 『Deal Hunter』에 오신 걸 환영해요! 내레이션은 제가 맡고 있어요. 지금부터 여러분이 듣게 될 목소리 몇 개를 소개할게요. 케이이다 공주님, 인사해 줘요!"
},
{
"index": 1,
"speaker": "Kainda",
"type": "dialogue",
"text": "안녕하세요! 저는 이야기의 주인공 케이이다예요. 제 모험은 곧 시작돼요."
},
{
"index": 2,
"speaker": "Narrator",
"type": "narration",
"text": "고마워요, 케이이다! 빅토리아 공작부님, 인사해 줘요!"
},
{
"index": 3,
"speaker": "Duchess Victoria",
"type": "dialogue",
"text": "안녕하세요! 저는 빅토리아 공작이에요. 케이이다의 이모이기도 해요. 이 모험을 여러분이랑 함께하게 돼서 정말 기뻐요!"
},
{
"index": 4,
"speaker": "Narrator",
"type": "narration",
"text": "아직 들으시지 않은 목소리들도 있어요. 딜 헌터, 아니 헌터, 인사해 줘요!"
},
{
"index": 5,
"speaker": "Deal Hunter",
"type": "dialogue",
"text": "안녕하세요! 저는 이 함선을 운항하는 인공지능이에요. 보통은 그냥 헌터라고 불러요. 이 이야기로 여러분 즐겁게 해 드리는 게 기다려져요. 케이이다가 나니라고 이름 붙여 준 제 로봇 중 한 대가 있어요. 나니, 인사해 줘요!"
},
{
"index": 6,
"speaker": "Nanny",
"type": "dialogue",
"text": "안녕하세요! 케이이다가 제 로봇 번호보다 쓰기 편하라고 저를 나니라고 불렀어요. 최대한 도와드릴게요!"
},
{
"index": 7,
"speaker": "Narrator",
"type": "narration",
"text": "목소리 하나만 더 소개할게요. 인사해 줘요!"
},
{
"index": 8,
"speaker": "Trader Romano",
"type": "dialogue",
"text": "여러분, 안녕하세요! 저는 로마노예요. 딜 헌터하고 폐기물 거래를 하면서 항상 제일 좋은 가격에 사드려요. 거래하고 싶으시면 항대로 오세요!"
},
{
"index": 9,
"speaker": "Narrator",
"type": "narration",
"text": "이 목소기들이랑 그 밖의 목소기들은 B. D. 머피가 자기 Umbra Audio 시스템에서 만들어서 자기 원작 『Deal Hunter』에 음성을 입힌 거예요. 이 프로젝트는 인공지능을 활용한 오디오북 제작을 가능하게 하는 게 목표예요."
},
{
"index": 10,
"speaker": "Narrator",
"type": "narration",
"text": "우리 모두 『Deal Hunter』의 오디오 버전으로 여러분을 즐겁게 해 드리길 기다리고 있어요!"
},
{
"index": 11,
"speaker": "Deal Hunter",
"type": "dialogue",
"text": "들어줘서 고마워요!"
}
]
}