Skip to content

Commit da18f82

Browse files
배포판 만드는 도구와 v1.0.0 준비
make_release.py가 zip 두 개를 만든다. 전체판은 BepInEx까지 담아 게임 폴더에 풀어 넣으면 끝나고, 갱신판은 이미 깐 사람이 번역만 새로 받는다. --publish를 붙이면 태그를 밀고 gh로 Release까지 만든다. BepInEx는 게임 폴더에 깔린 공식 배포본을 그대로 담는다. LGPL-2.1과 Neo둥근모 OFL, 게임 원저작물과의 관계를 NOTICE.txt에 적었다. CI에서는 빌드하지 못한다. 컴파일에 게임의 Managed 폴더가 필요한데 원저작물이라 올려 둘 수 없다. 그래서 워크플로는 게임 없이 되는 것만 본다(ci_check.py - 번역 JSON과 그림 사양 검사). 타건음 파일 이름을 key-1, key-2로 바꿨다. 받아 온 자리의 이름이 해시처럼 생겨 무엇인지 알 수 없었다. PluginVersion 0.2.0 -> 1.0.0. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent 10eb92a commit da18f82

11 files changed

Lines changed: 760 additions & 2 deletions

File tree

.github/workflows/ci.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# 저장소 안의 것만으로 할 수 있는 검사.
2+
#
3+
# 플러그인을 여기서 빌드하지는 못한다. 컴파일에 게임의 Managed 폴더
4+
# (UnityEngine.dll, Scripts.dll ...)가 필요한데 그것은 게임 원저작물이라
5+
# 올려 둘 수 없다. 같은 이유로 decompiled/ 가 있어야 하는
6+
# check_data_collisions.py 도 여기서는 돌릴 수 없다.
7+
#
8+
# 빌드와 배포는 손에서 한다: python tools/make_release.py <버전> --publish
9+
10+
name: 검사
11+
12+
on:
13+
push:
14+
branches: [main]
15+
pull_request:
16+
workflow_dispatch:
17+
18+
jobs:
19+
check:
20+
runs-on: ubuntu-latest
21+
steps:
22+
- uses: actions/checkout@v4
23+
24+
- uses: actions/setup-python@v5
25+
with:
26+
python-version: "3.12"
27+
28+
- name: 번역 JSON이 깨지지 않았는지
29+
run: python tools/ci_check.py

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,5 @@ dist/
77
bin/
88
obj/
99
*.user
10+
# 배포용 압축 파일
11+
release/

CHANGELOG.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# 바뀐 것
2+
3+
## v1.0.0
4+
5+
첫 공개판입니다.
6+
7+
### 번역
8+
9+
- 화면 문구 752개, 코드가 조립해 쓰는 문구 214개
10+
- 대사·힌트·웹페이지 41개 파일
11+
- **사진 단서 21장** — 그림은 그대로 두고 글자만 한글로 다시 그렸습니다
12+
- **사용 설명서 23쪽 전부** — 1장부터 8장(셀프 JOIN, NULL, EXCEPT)까지
13+
14+
사진 단서와 설명서는 창 안의 버튼으로 원본 그림과 번갈아 볼 수 있습니다.
15+
16+
- 조수 위에 마우스를 올렸을 때 나오는 HELP 커서도 한글로 다시 그렸습니다
17+
18+
테이블 이름, 컬럼 이름, 플레이어가 쿼리에 적어 넣는 값은 옮기지 않았습니다.
19+
옮기면 쿼리가 통하지 않아 게임이 깨집니다.
20+
21+
### 고친 버그
22+
23+
- **쿼리창과 메모장에서 Enter, Shift+Enter가 줄바꿈되지 않던 문제.**
24+
게임의 입력 필드가 Enter를 받으면 줄을 바꾸지 않고 커서만 사라졌습니다.
25+
원래 게임에 있던 버그로, 한글과는 상관없이 고쳐집니다.
26+
쿼리 실행은 그대로 Ctrl+Enter입니다.
27+
28+
### 덧붙인 것
29+
30+
- 한글 글꼴 폴백. 기본은 동봉한 **Neo둥근모**로, 게임의 옛 윈도우 화면과 맞습니다
31+
- 조수 말풍선이 한글 길이에 맞게 늘어납니다 (원래는 글자 수로 크기를 잡아 잘렸습니다)
32+
- 웹사이트가 없는 회사는 broker.com에서 `웹사이트` 칸이 아예 나오지 않습니다
33+
- 알림·오류 팝업을 Esc나 Enter로 닫을 수 있습니다
34+
- 글자를 칠 때 타건음이 납니다

README.md

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,32 @@ sounds/ <- dist/sounds/ (없으면 게임 내 소리를 쓴다)
258258
로드 완료. 메서드 18개 패치. EnterBehavior=Newline
259259
```
260260

261+
### 배포판 만들기
262+
263+
```sh
264+
python tools/make_release.py 1.0.1 --bump # release/ 에 zip 두 개
265+
python tools/make_release.py 1.0.1 --publish # 태그를 밀고 Release까지
266+
```
267+
268+
두 가지가 나온다.
269+
270+
| 파일 | 내용 | 누구에게 |
271+
|---|---|---|
272+
| `DDKoreanPatch-v<버전>.zip` | BepInEx + 패치 전부 | 처음 까는 사람. 게임 폴더에 풀면 끝 |
273+
| `DDKoreanPatch-v<버전>-plugin-only.zip` | 패치만 | 이미 깐 사람. 번역만 새로 받을 때 |
274+
275+
BepInEx는 게임 폴더에 깔린 것을 그대로 담는다. 고치지 않은 공식 배포본이므로
276+
LGPL-2.1에 따라 출처와 라이선스를 `packaging/NOTICE.txt`에 적어 함께 넣는다.
277+
278+
`--publish``gh`(GitHub CLI)가 있어야 한다. 없으면 zip은 그대로 두고
279+
직접 올리는 방법을 알려 준다. Release 본문은 `CHANGELOG.md`에서 그 버전 대목을
280+
떼어 쓰므로, 버전을 올리기 전에 CHANGELOG부터 적는다.
281+
282+
**빌드를 CI에서 돌릴 수는 없다.** 컴파일에 게임의 `copOS_Data/Managed`
283+
(UnityEngine.dll, Scripts.dll ...)가 필요한데 그것은 게임 원저작물이라 저장소에
284+
올려 둘 수 없다. `.github/workflows/ci.yml`은 게임 없이 할 수 있는 것
285+
(`tools/ci_check.py` — JSON과 그림 사양 검사)만 본다.
286+
261287
## 번역하면 안 되는 것
262288

263289
이 게임은 플레이어가 **SQL로 데이터를 조회**해 사건을 푼다.
@@ -311,7 +337,7 @@ SQL 키워드와 테이블·컬럼 이름도 옮기지 않는다.
311337
| 갈래 | 상태 |
312338
|---|---|
313339
| UI 문자열 (`ui.json`) | 886개 중 752개. 남긴 134개는 테이블명 등 일부러 둔 것 |
314-
| 코드 조립 문자열 (`dynamic.json`) | 215개 |
340+
| 코드 조립 문자열 (`dynamic.json`) | 214개 |
315341
| TextAsset (대사·힌트·웹페이지) | 41개 |
316342
| 사진 단서 그림 | 21장 (+ 글자 없는 그림은 원본 유지) |
317343
| 사용 설명서 | **23쪽 전부** |

packaging/NOTICE.txt

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
====================================================================
2+
Database Detective 한글패치 - 저작권 안내
3+
====================================================================
4+
5+
이 패치는 팬이 만든 비공식 번역이며, 게임을 만든 HsuCorp와는
6+
아무런 관계가 없습니다. 게임을 대신 배포하지 않으며, 게임을
7+
가지고 있어야만 쓸 수 있습니다.
8+
9+
패치는 게임 원본 파일을 하나도 고치지 않습니다.
10+
11+
12+
--------------------------------------------------------------------
13+
1. 게임 원저작물
14+
--------------------------------------------------------------------
15+
16+
Database Detective (c) HsuCorp.
17+
18+
이 패치 안의 다음 것들은 게임 원저작물에서 나온 2차 저작물입니다.
19+
20+
images\*.png
21+
게임의 사진 단서와 사용 설명서 그림에서, 그림은 그대로 두고
22+
글자만 한글로 바꿔 그린 것입니다.
23+
24+
translation.json
25+
게임 원문과 그 번역이 짝으로 들어 있습니다.
26+
27+
권리자가 원치 않으신다면 알려 주시는 대로 즉시 내리겠습니다.
28+
https://github.com/krPlatypus/Database-Detective-Korean-Patch/issues
29+
30+
31+
--------------------------------------------------------------------
32+
2. BepInEx
33+
--------------------------------------------------------------------
34+
35+
winhttp.dll, doorstop_config.ini, .doorstop_version, changelog.txt,
36+
BepInEx\core\ 아래의 파일들은 BepInEx 5.4.23.5를 그대로 담은
37+
것입니다. 고치지 않았습니다.
38+
39+
BepInEx - LGPL-2.1 license
40+
https://github.com/BepInEx/BepInEx
41+
https://github.com/BepInEx/BepInEx/blob/master/LICENSE
42+
43+
BepInEx에는 다음이 함께 들어 있습니다.
44+
45+
HarmonyX MIT license https://github.com/BepInEx/HarmonyX
46+
MonoMod MIT license https://github.com/MonoMod/MonoMod
47+
Mono.Cecil MIT license https://github.com/jbevain/cecil
48+
UnityDoorstop https://github.com/NeighTools/UnityDoorstop
49+
50+
BepInEx만 따로 받고 싶으시면 위 주소에서 받으실 수 있습니다.
51+
52+
53+
--------------------------------------------------------------------
54+
3. Neo둥근모 (글꼴)
55+
--------------------------------------------------------------------
56+
57+
fonts\neodgm.ttf
58+
59+
Neo둥근모 (c) 2017-2021 Eunbin Jeong (Dalgona.)
60+
SIL Open Font License 1.1
61+
원문은 같은 폴더의 LICENSE.txt 에 들어 있습니다.
62+
https://neodgm.dalgona.dev/
63+
64+
예약 글꼴 이름(Reserved Font Name)이 걸려 있는 글꼴입니다.
65+
파일을 고쳐 쓰실 경우 글꼴 이름을 바꾸셔야 합니다.
66+
67+
68+
--------------------------------------------------------------------
69+
4. 타건음
70+
--------------------------------------------------------------------
71+
72+
sounds\keyboard\key-1.wav, key-2.wav
73+
74+
개인이 직접 녹음해 블로그에 올린 음원을 가져다 손질한 것입니다.
75+
(앞의 무음을 떼고 길이를 줄여 WAV로 바꿨습니다.)
76+
77+
출처 표기를 원하시거나 사용을 원치 않으시면 알려 주십시오.
78+
바로 반영하겠습니다. 이 폴더를 통째로 지우시면 게임에 원래
79+
들어 있는 클릭 소리로 돌아가며, 그 밖의 동작은 같습니다.
80+
81+
82+
--------------------------------------------------------------------
83+
5. 이 패치의 코드
84+
--------------------------------------------------------------------
85+
86+
BepInEx\plugins\DDKoreanPatch\DDKoreanPatch.dll 과
87+
그 소스는 아래에 있습니다.
88+
89+
https://github.com/krPlatypus/Database-Detective-Korean-Patch

packaging/읽어주세요.txt

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
====================================================================
2+
Database Detective 한글패치 {version}
3+
{date}
4+
https://github.com/krPlatypus/Database-Detective-Korean-Patch
5+
====================================================================
6+
7+
스팀 게임 Database Detective(HsuCorp)의 비공식 한글패치입니다.
8+
화면 문구와 대사는 물론, 사진 단서와 사용 설명서 23쪽까지 한글로
9+
다시 그려 넣었습니다.
10+
11+
게임 원본 파일은 하나도 고치지 않습니다.
12+
파일을 더 넣어 게임이 켜질 때 한글을 얹는 방식입니다.
13+
14+
15+
--------------------------------------------------------------------
16+
설치
17+
--------------------------------------------------------------------
18+
19+
1. 스팀 라이브러리에서 Database Detective를 오른쪽 클릭하고
20+
[관리] - [로컬 파일 보기]를 고릅니다.
21+
22+
2. 이 압축 파일 안의 것을 그 폴더에 **전부 풀어 넣습니다.**
23+
덮어쓸지 물으면 덮어씁니다.
24+
25+
3. 게임을 켭니다. 처음 한 번은 검은 창이 잠깐 더 떠 있습니다.
26+
27+
제대로 들어갔다면 게임 폴더가 이렇게 됩니다.
28+
29+
Database Detective\
30+
copOS.exe
31+
winhttp.dll <- 새로 들어간 것
32+
doorstop_config.ini <- 새로 들어간 것
33+
.doorstop_version <- 새로 들어간 것
34+
changelog.txt <- 새로 들어간 것
35+
BepInEx\ <- 새로 들어간 것
36+
copOS_Data\
37+
...
38+
39+
{update_note}
40+
--------------------------------------------------------------------
41+
지우기
42+
--------------------------------------------------------------------
43+
44+
게임 폴더에서 아래만 지우면 원래대로 돌아갑니다.
45+
46+
winhttp.dll
47+
doorstop_config.ini
48+
.doorstop_version
49+
changelog.txt
50+
BepInEx 폴더
51+
52+
게임 원본 파일은 건드리지 않았으므로 이것으로 끝입니다.
53+
54+
55+
--------------------------------------------------------------------
56+
설정 바꾸기
57+
--------------------------------------------------------------------
58+
59+
게임을 한 번 켜면 아래에 설정 파일이 생깁니다.
60+
61+
BepInEx\config\kr.spade.databasedetective.koreanpatch.cfg
62+
63+
자주 손대는 것만 적습니다. 나머지는 파일 안에 설명이 붙어 있습니다.
64+
65+
FontFile = neodgm.ttf
66+
글꼴. 동봉한 Neo둥근모입니다. 비워 두면 FontFamily에 적힌
67+
윈도우 글꼴(기본 맑은 고딕)을 씁니다.
68+
fonts 폴더에 ttf를 넣고 이름을 적으면 그것을 씁니다.
69+
70+
EnterBehavior = Newline
71+
쿼리창에서 Enter를 누르면 줄이 바뀝니다. 쿼리 실행은 Ctrl+Enter.
72+
Submit으로 바꾸면 Enter가 실행, Shift+Enter가 줄바꿈이 됩니다.
73+
74+
EnableTypingSound = true
75+
글자를 칠 때 나는 타건음. 끄려면 false.
76+
77+
EnableTranslation = false
78+
번역을 통째로 끄고 원문으로 돌립니다.
79+
(입력 버그 수정과 타건음은 그대로 남습니다)
80+
81+
사진 단서와 사용 설명서는 창 안의 버튼으로 원본 그림과 번갈아 볼 수
82+
있습니다. 원문이 궁금할 때 눌러 보십시오.
83+
84+
85+
--------------------------------------------------------------------
86+
잘 안 될 때
87+
--------------------------------------------------------------------
88+
89+
● 게임은 켜지는데 그대로 영어입니다
90+
91+
게임을 한 번 켠 뒤 BepInEx\LogOutput.log 를 열어 보십시오.
92+
93+
[Info : Database Detective Korean Patch] 로드 완료. 메서드 18개 패치.
94+
95+
이 줄이 있으면 패치는 들어가 있습니다. 없다면 파일을 게임 폴더가
96+
아닌 다른 곳에 푼 것입니다. copOS.exe 가 있는 폴더가 맞습니다.
97+
98+
● 글자가 네모(□)로 보입니다
99+
100+
설정에서 EnableKoreanFont 가 true 인지 보십시오.
101+
FontFile 에 적은 글꼴 파일이 fonts 폴더에 없어도 이렇게 됩니다.
102+
103+
● 스팀에서 파일 무결성 검사를 돌렸더니 패치가 풀렸습니다
104+
105+
검사를 돌리면 게임에 없던 파일이 지워질 수 있습니다.
106+
이 압축 파일을 다시 풀어 넣으면 됩니다.
107+
108+
● 그 밖의 문제
109+
110+
BepInEx\LogOutput.log 를 아래 주소에 올려 주시면 보겠습니다.
111+
https://github.com/krPlatypus/Database-Detective-Korean-Patch/issues
112+
113+
114+
--------------------------------------------------------------------
115+
저작권
116+
--------------------------------------------------------------------
117+
118+
같이 들어 있는 NOTICE.txt 를 보십시오.

src/DDKoreanPatch/Plugin.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public class Plugin : BaseUnityPlugin
2323
{
2424
public const string PluginGuid = "kr.spade.databasedetective.koreanpatch";
2525
public const string PluginName = "Database Detective Korean Patch";
26-
public const string PluginVersion = "0.2.0";
26+
public const string PluginVersion = "1.0.0";
2727

2828
internal static ManualLogSource Log;
2929
internal static string PluginDirectory;

0 commit comments

Comments
 (0)