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.
84 lines
3.5 KiB
JSON
84 lines
3.5 KiB
JSON
{
|
||
"project": "DealHunterShip_4.0e_whole-to-audio",
|
||
"chapter_id": 1,
|
||
"chapter_title": "Sample / voice introduction",
|
||
"language_name": "Japanese",
|
||
"language_code": "ja",
|
||
"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": "このほか、まだ聞いていない声もあるよ。Deal Hunter、ハンター、あいさつをお願いね。"
|
||
},
|
||
{
|
||
"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": "こんにちは、みなさん!ロマーノよ。Deal Hunter と廃品回収の取引をしていて、いつも最高の値で買い取るよ。取引したかったらステーションに来てね。"
|
||
},
|
||
{
|
||
"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": "最後まで聞いてくれて、ありがとう!"
|
||
}
|
||
]
|
||
} |