fix: 필수 팩 기본 활성화 + 저부하 모드 토글 반영 + 용어 겹침 수정
리뷰 지적 2건과, 그것을 고치다 드러난 용어집 버그 1건을 함께 처리했다. 1) 저부하 모드 토글이 모델에 반영되지 않던 버그 ModelManager 는 생성 시점의 low_power 로 정밀도를 정하는데 설정에서 토글해도 갱신되지 않았고, stop() 은 모델을 내리지 않아 이전 정밀도 모델이 그대로 남았다. TranslationEngine.sync_performance() 를 추가해 값이 바뀌면 언로드 후 갱신하고, _bootstrap 과 재시작 경로에서 부른다. 2) 필수 게임 팩이 기본으로 꺼져 있던 문제 새 설치 기본값을 fps-common + 오버워치 + 배그 + R6 + 워독스로 켰다. 3) (1)(2)를 고치며 드러난 것: 팩 여러 개를 켜면 결과가 체크 순서에 휘둘렸다. knocked 가 FPS공통 "기절" / 배그 "눕혔다" 로 갈리는 식으로 19개 용어가 충돌하는데, 사용자는 그 순서를 볼 수도 바꿀 수도 없었다. 팩에 scope(generic/game) 를 두고 범용 -> 게임 전용 -> 사용자 항목 순으로 적용해 결정적으로 만들었다. 게임 팩끼리 갈리는 것은 사람이 판단할 문제라 find_conflicts() 로 뽑아 용어집 화면에 표시한다. 4) 용어 겹침 버그: "the blue"(조각)가 "blue zone" 보다 앞 위치라는 이유로 먼저 잡혀 "자기장 자기장" 이 됐다. 최장일치 정렬은 같은 시작 위치에서만 통한다. 조각 항목을 제거하고, 모든 팩을 켠 상태로 각 용어가 정확히 한 번만 치환되는지 검사하는 테스트를 추가했다. 검증: pytest 110개 통과 (저부하 6 + 팩 계층/충돌/겹침 12 신규), ruff clean Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -2,44 +2,311 @@
|
||||
"key": "streaming",
|
||||
"name": "방송·스트리밍",
|
||||
"description": "해외 방송을 볼 때 자주 나오는 말. 게임 용어집과 같이 켜면 좋습니다.",
|
||||
"scope": "generic",
|
||||
"entries": [
|
||||
{"source": "stream", "targets": {"ko": "방송", "ja": "配信", "zh": "直播"}},
|
||||
{"source": "streamer", "targets": {"ko": "스트리머", "ja": "配信者", "zh": "主播"}},
|
||||
{"source": "chat", "targets": {"ko": "채팅", "ja": "チャット", "zh": "弹幕"}},
|
||||
{"source": "donation", "targets": {"ko": "후원", "ja": "投げ銭", "zh": "打赏"}},
|
||||
{"source": "donate", "targets": {"ko": "후원하다", "ja": "投げ銭する", "zh": "打赏"}},
|
||||
{"source": "sub", "targets": {"ko": "구독", "ja": "サブスク", "zh": "订阅"}},
|
||||
{"source": "subscriber", "targets": {"ko": "구독자", "ja": "登録者", "zh": "订阅者"}},
|
||||
{"source": "follow", "targets": {"ko": "팔로우", "ja": "フォロー", "zh": "关注"}},
|
||||
{"source": "raid", "targets": {"ko": "합방 몰아주기", "ja": "レイド", "zh": "转播"}},
|
||||
{"source": "mod", "targets": {"ko": "매니저", "ja": "モデレーター", "zh": "房管"}},
|
||||
{"source": "clip", "targets": {"ko": "클립", "ja": "クリップ", "zh": "切片"}},
|
||||
{"source": "highlight", "targets": {"ko": "하이라이트", "ja": "ハイライト", "zh": "高光"}},
|
||||
{"source": "VOD", "targets": {"ko": "다시보기", "ja": "アーカイブ", "zh": "录播"}},
|
||||
{"source": "lag", "targets": {"ko": "렉", "ja": "ラグ", "zh": "卡"}},
|
||||
{"source": "ping", "targets": {"ko": "핑", "ja": "ピン", "zh": "延迟"}},
|
||||
{"source": "frame drop", "targets": {"ko": "프레임 드랍", "ja": "フレーム落ち", "zh": "掉帧"}},
|
||||
{"source": "patch", "targets": {"ko": "패치", "ja": "パッチ", "zh": "补丁"}},
|
||||
{"source": "meta", "targets": {"ko": "메타", "ja": "メタ", "zh": "版本环境"}},
|
||||
{"source": "nerf", "targets": {"ko": "너프", "ja": "ナーフ", "zh": "削弱"}},
|
||||
{"source": "buff", "targets": {"ko": "버프", "ja": "バフ", "zh": "加强"}},
|
||||
{"source": "ranked", "targets": {"ko": "랭크", "ja": "ランク", "zh": "排位"}},
|
||||
{"source": "casual", "targets": {"ko": "일반전", "ja": "カジュアル", "zh": "休闲"}},
|
||||
{"source": "smurf", "targets": {"ko": "부계정", "ja": "サブ垢", "zh": "小号"}},
|
||||
{"source": "grind", "targets": {"ko": "노가다", "ja": "周回", "zh": "刷"}},
|
||||
{"source": "carry", "targets": {"ko": "캐리", "ja": "キャリー", "zh": "带飞"}},
|
||||
{"source": "throw", "targets": {"ko": "던지다", "ja": "スローする", "zh": "送"}},
|
||||
{"source": "griefing", "targets": {"ko": "트롤링", "ja": "荒らし", "zh": "演员"}},
|
||||
{"source": "toxic", "targets": {"ko": "매너 나쁜", "ja": "民度が低い", "zh": "喷子"}},
|
||||
{"source": "cracked", "targets": {"ko": "미쳤다", "ja": "ヤバい", "zh": "太强了"}},
|
||||
{"source": "insane", "targets": {"ko": "대박", "ja": "やばい", "zh": "离谱"}},
|
||||
{"source": "clutch", "targets": {"ko": "클러치", "ja": "クラッチ", "zh": "关键时刻"}},
|
||||
{"source": "let's go", "targets": {"ko": "가자", "ja": "行くぞ", "zh": "冲"}},
|
||||
{"source": "no way", "targets": {"ko": "말도 안 돼", "ja": "ありえない", "zh": "不可能吧"}},
|
||||
{"source": "give me a second", "targets": {"ko": "잠깐만", "ja": "ちょっと待って", "zh": "等一下"}},
|
||||
{"source": "hold on", "targets": {"ko": "잠깐", "ja": "待って", "zh": "等等"}},
|
||||
{"source": "be right back", "targets": {"ko": "금방 올게", "ja": "すぐ戻る", "zh": "马上回来"}},
|
||||
{"source": "thanks for the sub", "targets": {"ko": "구독 고마워", "ja": "サブありがとう", "zh": "谢谢订阅"}},
|
||||
{"source": "welcome back", "targets": {"ko": "다시 왔네", "ja": "おかえり", "zh": "欢迎回来"}}
|
||||
{
|
||||
"source": "stream",
|
||||
"targets": {
|
||||
"ko": "방송",
|
||||
"ja": "配信",
|
||||
"zh": "直播"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "streamer",
|
||||
"targets": {
|
||||
"ko": "스트리머",
|
||||
"ja": "配信者",
|
||||
"zh": "主播"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "chat",
|
||||
"targets": {
|
||||
"ko": "채팅",
|
||||
"ja": "チャット",
|
||||
"zh": "弹幕"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "donation",
|
||||
"targets": {
|
||||
"ko": "후원",
|
||||
"ja": "投げ銭",
|
||||
"zh": "打赏"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "donate",
|
||||
"targets": {
|
||||
"ko": "후원하다",
|
||||
"ja": "投げ銭する",
|
||||
"zh": "打赏"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "sub",
|
||||
"targets": {
|
||||
"ko": "구독",
|
||||
"ja": "サブスク",
|
||||
"zh": "订阅"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "subscriber",
|
||||
"targets": {
|
||||
"ko": "구독자",
|
||||
"ja": "登録者",
|
||||
"zh": "订阅者"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "follow",
|
||||
"targets": {
|
||||
"ko": "팔로우",
|
||||
"ja": "フォロー",
|
||||
"zh": "关注"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "raid",
|
||||
"targets": {
|
||||
"ko": "합방 몰아주기",
|
||||
"ja": "レイド",
|
||||
"zh": "转播"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "mod",
|
||||
"targets": {
|
||||
"ko": "매니저",
|
||||
"ja": "モデレーター",
|
||||
"zh": "房管"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "clip",
|
||||
"targets": {
|
||||
"ko": "클립",
|
||||
"ja": "クリップ",
|
||||
"zh": "切片"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "highlight",
|
||||
"targets": {
|
||||
"ko": "하이라이트",
|
||||
"ja": "ハイライト",
|
||||
"zh": "高光"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "VOD",
|
||||
"targets": {
|
||||
"ko": "다시보기",
|
||||
"ja": "アーカイブ",
|
||||
"zh": "录播"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "lag",
|
||||
"targets": {
|
||||
"ko": "렉",
|
||||
"ja": "ラグ",
|
||||
"zh": "卡"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "ping",
|
||||
"targets": {
|
||||
"ko": "핑",
|
||||
"ja": "ピン",
|
||||
"zh": "延迟"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "frame drop",
|
||||
"targets": {
|
||||
"ko": "프레임 드랍",
|
||||
"ja": "フレーム落ち",
|
||||
"zh": "掉帧"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "patch",
|
||||
"targets": {
|
||||
"ko": "패치",
|
||||
"ja": "パッチ",
|
||||
"zh": "补丁"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "meta",
|
||||
"targets": {
|
||||
"ko": "메타",
|
||||
"ja": "メタ",
|
||||
"zh": "版本环境"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "nerf",
|
||||
"targets": {
|
||||
"ko": "너프",
|
||||
"ja": "ナーフ",
|
||||
"zh": "削弱"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "buff",
|
||||
"targets": {
|
||||
"ko": "버프",
|
||||
"ja": "バフ",
|
||||
"zh": "加强"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "ranked",
|
||||
"targets": {
|
||||
"ko": "랭크",
|
||||
"ja": "ランク",
|
||||
"zh": "排位"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "casual",
|
||||
"targets": {
|
||||
"ko": "일반전",
|
||||
"ja": "カジュアル",
|
||||
"zh": "休闲"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "smurf",
|
||||
"targets": {
|
||||
"ko": "부계정",
|
||||
"ja": "サブ垢",
|
||||
"zh": "小号"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "grind",
|
||||
"targets": {
|
||||
"ko": "노가다",
|
||||
"ja": "周回",
|
||||
"zh": "刷"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "carry",
|
||||
"targets": {
|
||||
"ko": "캐리",
|
||||
"ja": "キャリー",
|
||||
"zh": "带飞"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "throw",
|
||||
"targets": {
|
||||
"ko": "던지다",
|
||||
"ja": "スローする",
|
||||
"zh": "送"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "griefing",
|
||||
"targets": {
|
||||
"ko": "트롤링",
|
||||
"ja": "荒らし",
|
||||
"zh": "演员"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "toxic",
|
||||
"targets": {
|
||||
"ko": "매너 나쁜",
|
||||
"ja": "民度が低い",
|
||||
"zh": "喷子"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "cracked",
|
||||
"targets": {
|
||||
"ko": "미쳤다",
|
||||
"ja": "ヤバい",
|
||||
"zh": "太强了"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "insane",
|
||||
"targets": {
|
||||
"ko": "대박",
|
||||
"ja": "やばい",
|
||||
"zh": "离谱"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "clutch",
|
||||
"targets": {
|
||||
"ko": "클러치",
|
||||
"ja": "クラッチ",
|
||||
"zh": "关键时刻"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "let's go",
|
||||
"targets": {
|
||||
"ko": "가자",
|
||||
"ja": "行くぞ",
|
||||
"zh": "冲"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "no way",
|
||||
"targets": {
|
||||
"ko": "말도 안 돼",
|
||||
"ja": "ありえない",
|
||||
"zh": "不可能吧"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "give me a second",
|
||||
"targets": {
|
||||
"ko": "잠깐만",
|
||||
"ja": "ちょっと待って",
|
||||
"zh": "等一下"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "hold on",
|
||||
"targets": {
|
||||
"ko": "잠깐",
|
||||
"ja": "待って",
|
||||
"zh": "等等"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "be right back",
|
||||
"targets": {
|
||||
"ko": "금방 올게",
|
||||
"ja": "すぐ戻る",
|
||||
"zh": "马上回来"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "thanks for the sub",
|
||||
"targets": {
|
||||
"ko": "구독 고마워",
|
||||
"ja": "サブありがとう",
|
||||
"zh": "谢谢订阅"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "welcome back",
|
||||
"targets": {
|
||||
"ko": "다시 왔네",
|
||||
"ja": "おかえり",
|
||||
"zh": "欢迎回来"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user