hanlint 0.0.17 → 0.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/README.md +23 -20
  2. package/data/calqueFrame.json +60 -0
  3. package/data/cliches.json +39 -29
  4. package/data/collocationStops.txt +28 -0
  5. package/data/confusable.json +20 -20
  6. package/data/easyWords.json +12 -246
  7. package/data/exemplars.json +50 -29
  8. package/data/hiddenDeps.txt +11 -11
  9. package/data/japaneseLoan.json +27 -27
  10. package/data/koreanProse.txt +64 -0
  11. package/data/patterns.json +26 -26
  12. package/data/phraseRepeat.json +11 -0
  13. package/data/platformApis.txt +11 -11
  14. package/data/redundantPair.json +16 -16
  15. package/data/ruleCategories.json +2 -0
  16. package/data/ruleDocs.json +56 -54
  17. package/data/ruleMechanisms.json +2 -0
  18. package/data/screenNarration.json +10 -10
  19. package/data/screenSentence.json +60 -12
  20. package/data/screenTone.json +6 -6
  21. package/data/screenWord.json +70 -110
  22. package/data/spacing.json +12 -12
  23. package/data/spelling.json +29 -29
  24. package/data/translationese.json +23 -24
  25. package/data/usageCounts.report.json +1676 -0
  26. package/data/version.json +1 -1
  27. package/package.json +1 -1
  28. package/src/analysis/grammar/ending.js +1 -1
  29. package/src/analysis/grammar/hangul.js +4 -4
  30. package/src/analysis/grammar/josa.js +1 -1
  31. package/src/analysis/grammar/register.js +1 -1
  32. package/src/analysis/grammar/voice.js +1 -1
  33. package/src/analysis/index.js +3 -3
  34. package/src/analysis/josa.js +1 -1
  35. package/src/analysis/splitSentences.js +1 -1
  36. package/src/analysis/tokenize.js +41 -26
  37. package/src/baseline/store.js +8 -8
  38. package/src/cli/help.js +11 -10
  39. package/src/cli/main.js +332 -182
  40. package/src/cli/walk.js +2 -2
  41. package/src/cli/welcome.js +8 -8
  42. package/src/config/loadConfig.js +3 -3
  43. package/src/config/patch.js +6 -6
  44. package/src/config/readerContract.js +26 -26
  45. package/src/config/settings.js +44 -25
  46. package/src/config/toml.js +9 -9
  47. package/src/data/exemplars.js +21 -21
  48. package/src/data/load.js +6 -6
  49. package/src/data/operations.js +14 -14
  50. package/src/data/patches.js +10 -10
  51. package/src/data/patterns.js +5 -5
  52. package/src/data/profiles.js +6 -6
  53. package/src/data/prose.js +27 -0
  54. package/src/document/model.js +4 -4
  55. package/src/document/parseMarkdown.js +7 -7
  56. package/src/document/plainText.js +3 -3
  57. package/src/document/sourceText.js +117 -19
  58. package/src/edit/applyFixes.js +0 -0
  59. package/src/fingerprint/build.js +18 -9
  60. package/src/fingerprint/codeBlocks.js +3 -3
  61. package/src/fingerprint/codeMarkers.js +4 -4
  62. package/src/fingerprint/dictionaries.js +34 -7
  63. package/src/fingerprint/markers.js +27 -5
  64. package/src/fingerprint/readerState.js +9 -9
  65. package/src/fingerprint/sourceSentence.js +1 -1
  66. package/src/fingerprint/topics.js +1 -1
  67. package/src/guard/contract.js +6 -6
  68. package/src/guard/editLocality.js +1 -1
  69. package/src/guard/outline.js +1 -1
  70. package/src/guard/receipt.js +13 -13
  71. package/src/guard/surface.js +4 -4
  72. package/src/index.js +9 -7
  73. package/src/learn/edits.js +2 -2
  74. package/src/learn/operations.js +1 -1
  75. package/src/regex.js +2 -2
  76. package/src/report/compactReport.js +7 -3
  77. package/src/report/fingerprintJson.js +2 -2
  78. package/src/report/githubReport.js +1 -1
  79. package/src/report/jsonReport.js +3 -3
  80. package/src/report/registerMatch.js +2 -2
  81. package/src/report/sheet.js +0 -0
  82. package/src/report/textReport.js +35 -16
  83. package/src/report/writingSpec.js +17 -17
  84. package/src/rules/code/inputFileSource.js +1 -1
  85. package/src/rules/code/installImport.js +2 -2
  86. package/src/rules/code/platformApi.js +1 -1
  87. package/src/rules/document/countMismatch.js +2 -1
  88. package/src/rules/document/enoughOnce.js +2 -1
  89. package/src/rules/document/fieldEcho.js +10 -6
  90. package/src/rules/document/keywordHeading.js +1 -1
  91. package/src/rules/document/keywordMissing.js +1 -1
  92. package/src/rules/document/noQuestion.js +2 -2
  93. package/src/rules/document/promiseRecall.js +1 -1
  94. package/src/rules/document/tableOddCell.js +1 -1
  95. package/src/rules/finding.js +4 -4
  96. package/src/rules/paragraph/factListParagraph.js +1 -1
  97. package/src/rules/paragraph/paraFragment.js +1 -1
  98. package/src/rules/readerDebt.js +1 -1
  99. package/src/rules/registry.js +30 -26
  100. package/src/rules/screen/screenWord.js +2 -1
  101. package/src/rules/sentence/calqueFrame.js +11 -0
  102. package/src/rules/sentence/cliche.js +7 -3
  103. package/src/rules/sentence/connectorRepeat.js +2 -1
  104. package/src/rules/sentence/danglingDeixis.js +1 -1
  105. package/src/rules/sentence/dash.js +1 -1
  106. package/src/rules/sentence/deixis.js +1 -1
  107. package/src/rules/sentence/doubleNegative.js +2 -1
  108. package/src/rules/sentence/doublePassive.js +2 -1
  109. package/src/rules/sentence/draftHistory.js +2 -1
  110. package/src/rules/sentence/endingRepeat.js +3 -2
  111. package/src/rules/sentence/euiChain.js +1 -1
  112. package/src/rules/sentence/fillerOpener.js +1 -1
  113. package/src/rules/sentence/hardWord.js +6 -3
  114. package/src/rules/sentence/imperativePeriod.js +1 -1
  115. package/src/rules/sentence/japaneseLoan.js +7 -3
  116. package/src/rules/sentence/longSentence.js +1 -1
  117. package/src/rules/sentence/negationRedefine.js +1 -1
  118. package/src/rules/sentence/nounPile.js +10 -4
  119. package/src/rules/sentence/numberOrphan.js +1 -1
  120. package/src/rules/sentence/outsideProfile.js +8 -3
  121. package/src/rules/sentence/phraseRepeat.js +54 -0
  122. package/src/rules/sentence/redundantPair.js +7 -3
  123. package/src/rules/sentence/translationese.js +7 -3
  124. package/src/rules/shared/candidates.js +2 -2
  125. package/src/rules/shared/dictionaryRule.js +46 -8
  126. package/src/rules/shared/repeat.js +2 -2
  127. package/src/rules/structure/bridgeRepeat.js +3 -3
  128. package/src/rules/structure/emojiBullet.js +1 -1
  129. package/src/rules/structure/headingSkip.js +1 -1
  130. package/src/rules/structure/headingUniform.js +2 -1
  131. package/src/rules/structure/loneSubheading.js +1 -1
  132. package/src/rules/structure/moreLater.js +1 -1
  133. package/src/text.js +2 -2
  134. package/src/usage/counts.js +54 -0
  135. package/src/usage/index.js +8 -0
  136. package/src/usage/sentences.js +681 -0
@@ -3,145 +3,145 @@
3
3
  {
4
4
  "pattern": "됬",
5
5
  "fix": "됐",
6
- "why": "되었 의 준말은 됐 이다. ㅚ 뒤에 -어, -었- 이 어울려 ㅙ, ㅙㅆ 으로 줄면 준 대로 적는다",
6
+ "why": "`되었`이 준 말이라 `됐`으로 적는다. ㅚ 뒤에 `-어`, `-었-`이 어울려 ㅙ, ㅙㅆ으로 줄면 준 대로 적는다",
7
7
  "source": "한글 맞춤법 제35항 붙임 2, 온라인가나다 306230"
8
8
  },
9
9
  {
10
10
  "pattern": "돼(고|면|니|다|므로|든|기)(?![가-힣])",
11
11
  "fix": "되$1",
12
- "why": "-어 가 붙지 않는 자리는 되- 다. 돼 는 되어 의 준말에만 쓴다",
12
+ "why": "`-어`가 붙지 않는 곳이라 `되-`로 쓴다. `돼`는 `되어`의 준말에만 쓴다",
13
13
  "source": "한글 맞춤법 제35항 붙임 2, 온라인가나다 306432"
14
14
  },
15
15
  {
16
16
  "pattern": "(?<![가-힣])되(요|서)(?![가-힣])",
17
17
  "fix": "돼$1",
18
- "why": "되어요, 되어서 의 준말이라 돼요, 돼서 다",
18
+ "why": "`되어요`, `되어서`의 준말이라 `돼요`, `돼서`로 쓴다",
19
19
  "source": "한글 맞춤법 제35항 붙임 2, 온라인가나다 306432"
20
20
  },
21
21
  {
22
22
  "pattern": "안되(요|서)(?![가-힣])",
23
23
  "fix": "안 돼$1",
24
- "why": "부사 안 은 띄어 쓰고 되어 의 준말은 돼 다",
24
+ "why": "`안 돼-`로 쓴다. 부사 `안`은 띄어 쓰고, `되어`는 줄여 `돼`로 쓴다",
25
25
  "source": "한글 맞춤법 제35항 붙임 2, 상담 사례 5649"
26
26
  },
27
27
  {
28
28
  "pattern": "안돼(고|면|니|다)(?![가-힣])",
29
29
  "fix": "안 되$1",
30
- "why": "부사 안 은 띄어 쓰고 -어 가 붙지 않는 자리는 되- 다",
30
+ "why": "`안 되-`로 쓴다. 부사 `안`은 띄어 쓰고 `-어`가 붙지 않는 곳은 `되-`다",
31
31
  "source": "한글 맞춤법 제35항 붙임 2, 상담 사례 5649"
32
32
  },
33
33
  {
34
34
  "pattern": "(?<![가-힣])않(?=(?:해|한|할|합|함|하|됐|돼|되어|되고|되면|되니|되므로|된다|된|될|됩))",
35
35
  "fix": "안 ",
36
- "why": "용언 앞의 부정은 부사 안 이고 띄어 쓴다. 않- 은 -지 뒤에만 온다",
36
+ "why": "용언 앞의 부정이라 부사 `안`으로 쓰고 띄어 쓴다. `않-`은 `-지` 뒤에만 온다",
37
37
  "source": "국립국어원 상담 사례 5649"
38
38
  },
39
39
  {
40
40
  "pattern": "(?<![가-힣])않(?=\\s+(?:해|한|할|합|함|하|됐|돼|되어|되고|되면|되니|되므로|된다|된|될|됩))",
41
41
  "fix": "안",
42
- "why": "용언 앞의 부정은 부사 안 이고 띄어 쓴다. 않- 은 -지 뒤에만 온다",
42
+ "why": "용언 앞의 부정이라 부사 `안`으로 쓰고 띄어 쓴다. `않-`은 `-지` 뒤에만 온다",
43
43
  "source": "국립국어원 상담 사례 5649"
44
44
  },
45
45
  {
46
46
  "pattern": "지 안(?=(?:다|습니다|는다|았|을|고|지만|아요|은|으면)(?![가-힣]))",
47
47
  "fix": "지 않",
48
- "why": "-지 뒤의 부정은 아니하다 의 준말 않다 다",
48
+ "why": "`-지` 뒤의 부정이라 `아니하다`의 준말 `않다`로 쓴다",
49
49
  "source": "국립국어원 상담 사례 5649"
50
50
  },
51
51
  {
52
52
  "pattern": "웬지",
53
53
  "fix": "왠지",
54
- "why": "왜인지 의 준말이라 왠지 다",
54
+ "why": "`왜인지`의 준말이라 `왠지`로 쓴다",
55
55
  "source": "온라인가나다 314344"
56
56
  },
57
57
  {
58
58
  "pattern": "왠(?!지)(?=[가-힣\\s])",
59
59
  "fix": "웬",
60
- "why": "어찌 된, 어떠한 의 뜻은 웬 이다. 왠 은 왠지 에만 쓴다",
60
+ "why": "`어찌 된`, `어떠한`의 뜻이면 `웬`으로 쓴다. `왠`은 `왠지`에만 쓴다",
61
61
  "source": "온라인가나다 314344"
62
62
  },
63
63
  {
64
64
  "pattern": "몇 ?일(?![가-힣])",
65
65
  "fix": "며칠",
66
- "why": "어원이 분명하지 않은 말은 소리 나는 대로 며칠 로 적는다. 몇 일 은 쓰지 않는다",
66
+ "why": "어원이 분명하지 않은 말이라 소리 나는 대로 `며칠`로 적는다. `몇 일`은 쓰지 않는다",
67
67
  "source": "한글 맞춤법 제27항 붙임 2, 온라인가나다 320310"
68
68
  },
69
69
  {
70
70
  "pattern": "(?<![가-힣])금새(?![가-힣])",
71
71
  "fix": "금세",
72
- "why": "금시에 의 준말이라 금세 다",
72
+ "why": "`금시에`가 준 말이라 `금세`로 쓴다",
73
73
  "source": "국립국어원 상담 사례 5901"
74
74
  },
75
75
  {
76
76
  "pattern": "오랫만",
77
77
  "fix": "오랜만",
78
- "why": "오래간만 의 준말이라 오랜만 이다",
78
+ "why": "`오래간만`의 준말이라 `오랜만`으로 쓴다",
79
79
  "source": "온라인가나다 321987"
80
80
  },
81
81
  {
82
82
  "pattern": "오랜동안",
83
83
  "fix": "오랫동안",
84
- "why": "오랫동안 은 오래 와 동안 이 사이시옷으로 붙은 말이다",
84
+ "why": "`오래`와 `동안`이 사이시옷으로 붙은 말이라 `오랫동안`으로 쓴다",
85
85
  "source": "온라인가나다 321987"
86
86
  },
87
87
  {
88
88
  "pattern": "어떻해",
89
89
  "fix": "어떡해",
90
- "why": "어떻게 해 의 준말은 어떡해 다",
90
+ "why": "`어떻게 해`의 준말이라 `어떡해`로 쓴다",
91
91
  "source": "온라인가나다 308683"
92
92
  },
93
93
  {
94
94
  "pattern": "어떡게",
95
95
  "fix": "어떻게",
96
- "why": "어떠하게 는 어떻게 다. 어떡- 은 어떡해 에만 쓴다",
96
+ "why": "`어떠하게`가 준 말이라 `어떻게`로 쓴다. `어떡-`은 `어떡해`에만 쓴다",
97
97
  "source": "온라인가나다 308683"
98
98
  },
99
99
  {
100
100
  "pattern": "(?<![가-힣])역활{조사}",
101
101
  "fix": "역할",
102
- "why": "역활 은 역할 의 잘못이다",
103
- "source": "표준국어대사전 표제어 역활"
102
+ "why": "`역할`의 잘못이다",
103
+ "source": "표준국어대사전 표제어 `역활`"
104
104
  },
105
105
  {
106
106
  "pattern": "설겆이",
107
107
  "fix": "설거지",
108
- "why": "설겆이 는 설거지 의 잘못이다",
109
- "source": "표준국어대사전 표제어 설거지"
108
+ "why": "`설거지`의 잘못이다",
109
+ "source": "표준국어대사전 표제어 `설거지`"
110
110
  },
111
111
  {
112
112
  "pattern": "희안(?=하|한|합|함|해|할)",
113
113
  "fix": "희한",
114
- "why": "희안하다 는 희한하다 의 잘못이다",
115
- "source": "표준국어대사전 표제어 희한하다"
114
+ "why": "`희한`의 잘못이다. `희한하다`로 쓴다",
115
+ "source": "표준국어대사전 표제어 `희한하다`"
116
116
  },
117
117
  {
118
118
  "pattern": "어느세(?![가-힣])",
119
119
  "fix": "어느새",
120
- "why": "어느 틈에 의 뜻은 어느새 다",
121
- "source": "표준국어대사전 표제어 어느새"
120
+ "why": "`어느 틈에`라는 뜻이면 `어느새`로 쓴다",
121
+ "source": "표준국어대사전 표제어 `어느새`"
122
122
  },
123
123
  {
124
124
  "pattern": "뵈요",
125
125
  "fix": "봬요",
126
- "why": "뵈어요 의 준말이라 봬요 다",
126
+ "why": "`뵈어요`의 준말이라 `봬요`로 쓴다",
127
127
  "source": "온라인가나다 309576"
128
128
  },
129
129
  {
130
130
  "pattern": "바램{조사}",
131
131
  "fix": "바람",
132
- "why": "바라다 의 명사형은 바람 이다. 바램 은 바람 의 잘못이다",
133
- "source": "표준국어대사전 표제어 바램"
132
+ "why": "`바람`의 잘못이다. `바라다`의 명사형은 `바람`이다",
133
+ "source": "표준국어대사전 표제어 `바램`"
134
134
  },
135
135
  {
136
136
  "pattern": "던지 말던지",
137
137
  "fix": "든지 말든지",
138
- "why": "가리지 않는 뜻의 어미는 -든지 다. -던 은 지난 일에만 쓴다",
138
+ "why": "가리지 않는 뜻의 어미라 `-든지`로 쓴다. `-던`은 지난 일에만 쓴다",
139
139
  "source": "한글 맞춤법 제56항"
140
140
  },
141
141
  {
142
142
  "pattern": "(뭐|무엇이|누구|어디|언제|아무)던(지)?(?![가-힣])",
143
143
  "fix": "$1든$2",
144
- "why": "가리지 않는 뜻의 조사와 어미는 (-)든지 다. -던 은 지난 일에만 쓴다",
144
+ "why": "가리지 않는 뜻의 조사와 어미라 `(-)든지`로 쓴다. `-던`은 지난 일에만 쓴다",
145
145
  "source": "한글 맞춤법 제56항"
146
146
  }
147
147
  ]
@@ -3,112 +3,111 @@
3
3
  {
4
4
  "pattern": "에 있어서",
5
5
  "fix": "에서",
6
- "why": "번역투다. `분야에 있어서` 는 `분야에서` 다",
6
+ "why": "번역투다. `분야에 있어서`는 `분야에서`로 쓴다",
7
7
  "source": "urimal.org 김민지 2020"
8
8
  },
9
9
  {
10
10
  "pattern": "에 위치해 있",
11
11
  "fix": "에 있",
12
- "why": "번역투다. `서울에 위치해 있다` 는 `서울에 있다` 다",
12
+ "why": "번역투다. `서울에 위치해 있다`는 `서울에 있다`로 쓴다",
13
13
  "source": "egowriting 번역투 고치기"
14
14
  },
15
15
  {
16
16
  "pattern": "에 위치하",
17
17
  "fix": "에 있",
18
- "why": "번역투다. `평창에 위치하고 있습니다` 는 `평창에 있습니다` 다",
18
+ "why": "번역투다. `평창에 위치하고 있습니다`는 `평창에 있습니다`로 쓴다",
19
19
  "source": "egowriting 번역투 고치기"
20
20
  },
21
21
  {
22
- "pattern": "([가-힣])로부터",
23
- "fix": "$1에게",
24
- "why": "번역투다. `상사로부터 인정받다` 는 `상사에게 인정받다` 다. 출발점이 장소면 `에서` 다",
22
+ "pattern": "(?<=[가-힣])로부터",
23
+ "why": "번역투다. 받는 사람이면 `에게`, 출발점이면 `에서`로 쓴다. `상사로부터 인정받다`는 `상사에게 인정받다`로, `부산으로부터 왔다`는 `부산에서 왔다`로 쓴다",
25
24
  "source": "egowriting 번역투 고치기"
26
25
  },
27
26
  {
28
27
  "pattern": "음에도 불구하고",
29
28
  "fix": "지만",
30
- "why": "번역투다. `늦었음에도 불구하고` 는 `늦었지만` 이다",
29
+ "why": "번역투다. `늦었음에도 불구하고`는 `늦었지만`으로 쓴다",
31
30
  "source": "egowriting 번역투 고치기"
32
31
  },
33
32
  {
34
33
  "pattern": "에도 불구하고",
35
- "why": "번역투다. `지만` 이나 `는데도` 로 푼다",
34
+ "why": "번역투다. `-지만`이나 `-는데도`로 풀어 쓴다",
36
35
  "source": "egowriting 번역투 고치기"
37
36
  },
38
37
  {
39
38
  "pattern": "([가-힣])(?:을|를) 통해(?:서)?",
40
- "why": "through 의 직역이다. `밤샘 공부를 통해` 는 `밤샘 공부로` 다. 수단이면 `로`, 경로면 `거쳐` 다",
39
+ "why": "영어 through를 그대로 옮긴 말이다. `밤샘 공부를 통해` 대신 `밤샘 공부로`라고 쓴다. 수단이면 `로`, 경로면 `거쳐`를 쓴다",
41
40
  "source": "한빛미디어 번역투 TOP 12, im-not-ai A-2"
42
41
  },
43
42
  {
44
43
  "pattern": "에 의(?:해|하여|해서)",
45
- "why": "by 피동의 직역이다. 한 것을 주어로 세워 능동으로 쓴다. `보육원에 의해 보호되었다` 는 `보육원이 보호했다` 다",
44
+ "why": "영어 수동태의 by를 그대로 옮긴 말이다. 행동한 쪽을 주어로 세워 능동으로 쓴다. `보육원에 의해 보호되었다`는 `보육원이 보호했다`로 쓴다",
46
45
  "source": "urimal.org 김민지 2020"
47
46
  },
48
47
  {
49
48
  "pattern": "(?:으)?로 인(?:해|하여)",
50
- "why": "번역투다. `국민투표로 인하여 결정` 은 `국민투표로 결정` 이다. 원인이면 `때문에` 다",
49
+ "why": "번역투다. `국민투표로 인하여 결정`은 `국민투표로 결정`으로 쓴다. 원인이면 `때문에`를 쓴다",
51
50
  "source": "urimal.org 김민지 2020"
52
51
  },
53
52
  {
54
53
  "pattern": "에 대(?:해|하여|해서)",
55
- "why": "번역투다. `물음에 대해 답하다` 는 `물음에 답하다` 다. 목적어로 되돌린다",
54
+ "why": "번역투다. `물음에 대해 답하다`는 `물음에 답하다`로 쓴다. 목적어로 되돌린다",
56
55
  "source": "urimal.org 김민지 2020"
57
56
  },
58
57
  {
59
58
  "pattern": "에 관(?:해|하여|해서)",
60
- "why": "번역투다. 목적어나 `~은` 으로 되돌린다",
59
+ "why": "번역투다. 목적어나 `~은`으로 되돌린다",
61
60
  "source": "urimal.org 김민지 2020"
62
61
  },
63
62
  {
64
63
  "pattern": "에 대한",
65
- "why": "번역투다. `문제점에 대한 이해` 는 `문제점을 아는 것` 이다. 목적어로 되돌린다",
64
+ "why": "번역투다. `문제점에 대한 이해`는 `문제점을 아는 것`으로 쓴다. 목적어로 되돌린다",
66
65
  "source": "urimal.org 김민지 2020"
67
66
  },
68
67
  {
69
68
  "pattern": "에 관한",
70
- "why": "번역투다. `설정에 관한 설명` 은 `설정 설명` 이다. 목적어나 `~은` 으로 되돌린다",
69
+ "why": "번역투다. `설정에 관한 설명`은 `설정 설명`으로 쓴다. 목적어나 `~은`으로 되돌린다",
71
70
  "source": "urimal.org 김민지 2020"
72
71
  },
73
72
  {
74
73
  "pattern": "(?:을|를) 위(?:해|하여|해서)",
75
- "why": "번역투다. `여행을 가기 위해` 는 `여행 가려고` 다",
74
+ "why": "번역투다. `여행을 가기 위해`는 `여행 가려고`로 쓴다",
76
75
  "source": "urimal.org 김민지 2020"
77
76
  },
78
77
  {
79
78
  "pattern": "(?:을|를) 필요로 하",
80
- "why": "번역투다. `사회가 필요로 하는 것` 은 `사회가 필요한 것` 이다",
79
+ "why": "번역투다. `사회가 필요로 하는 것`은 `사회가 필요한 것`으로 쓴다",
81
80
  "source": "서울신문 바른 말글 2018"
82
81
  },
83
82
  {
84
83
  "pattern": "하는 중(?:이다|입니다|이었다)",
85
- "why": "진행형 직역이다. `도착하는 중입니다` 는 `도착합니다` 다",
84
+ "why": "영어 진행형을 그대로 옮긴 말이다. `도착하는 중입니다`는 `도착합니다`로 쓴다",
86
85
  "source": "egowriting 번역투 고치기"
87
86
  },
88
87
  {
89
88
  "pattern": "[가-힣](?:으로의|에의) ",
90
- "why": "전치사구를 명사화한 번역투다. `성공으로의 길` 은 `성공에 이르는 길` 이다",
89
+ "why": "전치사구를 명사로 만든 번역투다. `성공으로의 길`은 `성공에 이르는 길`로 쓴다",
91
90
  "source": "국립국어원 새국어생활 1990"
92
91
  },
93
92
  {
94
93
  "pattern": "에 다름 아니",
95
- "why": "일본어 직역이다. `바로 ~이다` 로 쓴다",
94
+ "why": "일본어를 그대로 옮긴 말이다. `바로 ~이다`로 쓴다",
96
95
  "source": "부산일보 바른말 광 2018"
97
96
  },
98
97
  {
99
98
  "pattern": "(?:이|가) 가능(?:하다|합니다|해진다)",
100
- "why": "possible 의 직역이다. `스킵이 가능하다` 는 `스킵할 수 있다` 다",
99
+ "why": "영어 possible을 그대로 옮긴 말이다. `스킵이 가능하다`는 `스킵할 수 있다`로 쓴다",
101
100
  "source": "나무위키 번역체 문장"
102
101
  },
103
102
  {
104
103
  "pattern": "하게 만들(?:었|었습|었다|다)",
105
- "why": "make 사동의 직역이다. `나를 행복하게 만들었다` 는 `난 그 일로 행복했다` 다",
104
+ "why": "영어 make를 쓴 사동문을 그대로 옮긴 말이다. `나를 행복하게 만들었다`는 `난 그 일로 행복했다`로 쓴다",
106
105
  "source": "hanmal 번역투 정리 2011"
107
106
  },
108
107
  {
109
108
  "pattern": "(?:을|를) 가지고 있",
110
- "why": "have 의 직역이다. `목소리를 가지고 있다` 는 `목소리가 좋다`, `책을 가지고 있다` 는 `책이 있다` 다",
111
- "source": "김순영 2012 (이근희 2005 재인용)"
109
+ "why": "영어 have를 그대로 옮긴 말이다. `목소리를 가지고 있다`는 `목소리가 좋다`로, `책을 가지고 있다`는 `책이 있다`로 쓴다",
110
+ "source": "김순영 2012, 이근희 2005 재인용"
112
111
  }
113
112
  ]
114
113
  }