環境
main @ 0c327f7,make new-course 產生的骨架課程。
現象
#heroNote 實際輸出(骨架課程):
0 個單元,每個單元 1 堂主課 + 共 0 支跟練影片。另有 0 支多語言版本,
播放清單共 0 支;扣掉跨單元共用的,實際是 0 支不重複影片,
每個語言版本都看過的話總長 0 分。
對照 gym(有多語言版本時句子是通順的):
44 個單元,每個單元 1 堂主課 + 共 316 支動作影片。另有 44 支多語言版本,
播放清單共 404 支;扣掉跨單元共用的,實際是 378 支不重複影片,
每個語言版本都看過的話總長 40 小時 5 分。
任何沒有做多語言版本的課,這句話都會在講一個它沒有的東西。
根因
app.js:169-171 把多語言那一段當成必然存在:
`另有 ${meta.alt_lessons} 支多語言版本,播放清單共 ${meta.video_slots} 支;` +
…
`每個語言版本都看過的話總長 ${meta.duration_all}。`;
這一段的其他名詞都走了文案契約(ui.unitNoun、ui.lessonNoun、ui.drillNoun),
只有多語言這半句是寫死的。
我的修法
const multi = (meta.alt_lessons || 0) > 0;
… + (multi ? `另有 ${meta.alt_lessons} 支多語言版本,播放清單共 ${meta.video_slots} 支;`
: `播放清單共 ${meta.video_slots} 支;`)
+ … + (multi ? `每個語言版本都看過的話總長 ${meta.duration_all}。`
: `全部看完的話總長 ${meta.duration_all}。`);
順帶一提(同一類,但可能是刻意的設計)
player.js:14 的 langLabel = (l) => (LANG[l] ? rich(LANG[l]) : esc(l)),
課程沒設定 languages 時退路是把資料裡的語言碼原樣顯示,
於是播放清單與影片頁會出現 zh-TW 這種給機器看的字串當標籤。
單語課程的話這個籤本身也只是噪音。我的 fork 改成對不到就不顯示,
但這條我沒有實測,也可能你本來就想要這個行為,就一併提出來給你判斷。
環境
main@0c327f7,make new-course產生的骨架課程。現象
#heroNote實際輸出(骨架課程):對照
gym(有多語言版本時句子是通順的):任何沒有做多語言版本的課,這句話都會在講一個它沒有的東西。
根因
app.js:169-171把多語言那一段當成必然存在:這一段的其他名詞都走了文案契約(
ui.unitNoun、ui.lessonNoun、ui.drillNoun),只有多語言這半句是寫死的。
我的修法
順帶一提(同一類,但可能是刻意的設計)
player.js:14的langLabel = (l) => (LANG[l] ? rich(LANG[l]) : esc(l)),課程沒設定
languages時退路是把資料裡的語言碼原樣顯示,於是播放清單與影片頁會出現
zh-TW這種給機器看的字串當標籤。單語課程的話這個籤本身也只是噪音。我的 fork 改成對不到就不顯示,
但這條我沒有實測,也可能你本來就想要這個行為,就一併提出來給你判斷。