Changeset View
Changeset View
Standalone View
Standalone View
lang/ko/rules/language.rules
- This file was added.
1 | # Common language errors for Korean | ||||
---|---|---|---|---|---|
2 | # Shinjo Park <kde@peremen.name>, 2019. | ||||
3 | | ||||
4 | # Adopted from the ruleset of ko-po-check (https://github.com/changwoo/ko-po-check) | ||||
5 | # Original Author: Changwoo Ryu <cwryu@debian.org> | ||||
6 | # License: GPLv3+ | ||||
7 | | ||||
8 | include file="puretext.filters" | ||||
9 | | ||||
10 | # 카빈다: 앙골라의 지역 이름 | ||||
11 | [밍나합니다|거싱|살마|[가-힣]빈다] | ||||
12 | id="language/2벌식-오타" | ||||
13 | hint="두벌식 오타로 보입니다." | ||||
14 | valid msgstr="카빈다" | ||||
15 | | ||||
16 | [않\s*(한|함|합니다|된|됨|됩니다)] | ||||
17 | id="language/안" | ||||
18 | hint="짧은 부정문에서는 '않'이 아니라 '안'을 씁니다" | ||||
19 | | ||||
20 | [(?<!모)읍니다] | ||||
21 | id="language/습니다" | ||||
22 | hint="'읍니다'가 아니라 '습니다'입니다'" | ||||
23 | | ||||
24 | # Borrowed from lang/ja/rules/style.rules | ||||
25 | [ +\(&[A-Z\d]\)] | ||||
26 | id="language/accelkey_space" | ||||
27 | hint="가속기 키 앞에 띄어 쓰지 않습니다" | ||||
28 | | ||||
29 | [\(&[a-z]\)] | ||||
30 | id="language/accelkey_lowercase" | ||||
31 | hint="가속기 키가 소문자입니다" | ||||
32 | | ||||
33 | [\.\.\. *\([_&][A-Z\d]\)] | ||||
34 | id="language/accelkey_elipsis" | ||||
35 | hint="말줄임표는 가속기 키 뒤에 써야 합니다" | ||||
36 | | ||||
37 | #[^([Cc]opyright )?\([Cc]\) ] | ||||
38 | #id="copyright_re" | ||||
39 | #hint="copyright notice는 번역하면 안 됩니다" | ||||
40 | #valid msgstr=msgid | ||||
41 | | ||||
42 | *hook name="ko:language/redundant_plural" on="msgstr" | ||||
43 | id="language/redundant_plural" | ||||
44 | hint="불필요한 복수형 표현" | ||||
45 | | ||||
46 | # ...하기 위하여/위해 => ...하려면 | ||||
47 | [[가-힣]+기 위(하여|해)] | ||||
48 | id="language/위하여" | ||||
49 | hint="어색한 표현. '-하려면'과 같이 쓰십시오." | ||||
50 | | ||||
51 | # ...와 함께 | ||||
52 | # 웹 문서에서는 제외 | ||||
53 | [\S+와 함께] | ||||
54 | id="language/함께" | ||||
55 | hint="어색한 표현. 풀어서 써 보십시오." | ||||
56 | valid cat="kde-org-announcements-releases okular-kde-org_www www_www" | ||||
57 | | ||||
58 | # ...에 의해 | ||||
59 | [\S+에 의해] | ||||
60 | id="language/의해" | ||||
61 | hint="어색한 표현. 수동태 문장을 바꿔 보십시오." | ||||
62 | | ||||
63 | # 필요로 하다 | ||||
64 | [필요로 하\S+] | ||||
65 | id="language/필요로" | ||||
66 | hint="어색한 표현. '필요하다'와 같이 간결히 쓰십시오." | ||||
67 | | ||||
68 | # 필요가 있다 | ||||
69 | [필요가 있\S+] | ||||
70 | id="language/필요가" | ||||
71 | hint="어색한 표현. '...해야 합니다'와 같이 간결히 쓰십시오." | ||||
72 | | ||||
73 | # 존재하지 않다 | ||||
74 | [존재하지 않\S+] | ||||
75 | id="language/존재하지" | ||||
76 | hint="어색한 표현. '없다'와 같이 간결히 쓰십시오." | ||||
77 | | ||||
78 | # ...할 것입니다 | ||||
79 | # 과거형인 "-했을 것입니다"는 예외 | ||||
80 | *hook name="ko:language/hal_geosipnida" on="msgstr" | ||||
81 | id="language/것입니다" | ||||
82 | hint="어색한 표현. '...합니다'와 같이 간결히 쓰십시오." | ||||
83 | | ||||
84 | # ...하시기 바랍니다 | ||||
85 | [\S+시기 바랍니다] | ||||
86 | id="language/바랍니다" | ||||
87 | hint="어색한 표현. '...하십시오'와 같이 간결히 쓰십시오." | ||||
88 | | ||||
89 | # "N개의 아무개" | ||||
90 | [%\S*[du](개|가지)의 \S+] | ||||
91 | id="language/개의" | ||||
92 | hint="어색한 표현. '몇개/몇가지의 아무개' 대신 '아무개 몇개/몇가지'와 같이 쓰십시오." | ||||
93 | | ||||
94 | # ...을 포함 | ||||
95 | [\S+[를을이가] 포함\S+] | ||||
96 | id="language/포함" | ||||
97 | hint="어색한 표현. '..이 들어 있다'와 같이 바꿔 쓰십시오." | ||||
98 | | ||||
99 | [\s([A-Za-z가-힣]*[가-힣];)\s+] | ||||
100 | id="language/no_semicolon_msgstr" | ||||
101 | hint="우리말 맞춤법에서는 세미콜론을 쓰지 않습니다" | ||||
102 | valid ctx="^Keywords$" | ||||
103 | | ||||
104 | # 오타로 보이는 불완전한 음절 찾기 (U+3131..U+318E) | ||||
105 | # 예외: 인덱스 표시 ('ㄱ-ㅅ', 'ㄱㄴㄷ' 등) | ||||
106 | [[ㄱ-ㆎ]+] | ||||
107 | id="language/typo_incomplete" | ||||
108 | hint="음절이 불완전합니다. 오타로 보입니다" | ||||
109 | valid msgstr="^[ㄱ-ㆎ]-[ㄱ-ㆎ]" | ||||
110 | valid msgstr="^[ㄱ-ㆎ][ㄱ-ㆎ][ㄱ-ㆎ]" | ||||
111 | | ||||
112 | # TODO: ㅈ, ㅊ, ㅉ 다음의 이중 모음 | ||||
113 | | ||||
114 | # 받침에 대한 조사 구별 | ||||
115 | # 조건: addFilterHook name="remove/remove-fmtdirs-msg-tick~'~'" on="msg" | ||||
116 | # 해당 filterHook이 있으면 모든 %n이 ~ 문자열로 대체됨. | ||||
117 | [~(이|가|을|를|은|는|와|과|로|으로|로서|으로서|로써|으로써|로부터|으로부터|라는|이라는)] | ||||
118 | id="language/조사_받침" | ||||
119 | valid msgstr="~(이\(가\)|을\(를\)|은\(는\)|와\(과\)|\(으\)로|\(으\)로써|\(으\)로부터|\(이\)라는)" | ||||
120 | hint="받침에 대한 조사 구별이 없습니다" | ||||
121 | | ||||
122 | # 잘못된 문장 부호 사용(주로 일본어나 중국어를 원문으로 번역할 때 발견됨) | ||||
123 | [[。、]] | ||||
124 | id="language/invalid_punctuation" | ||||
125 | hint="고리점과 모점은 한국어 가로쓰기에서 쓰지 않습니다" | ||||
126 | | ||||
127 | [[『』「」《》〈〉]] | ||||
128 | id="language/invalid_punctuation_2" | ||||
129 | hint="낱표와 화살괄호는 따옴표로 대체하십시오" | ||||
130 | | ||||
131 | # CJK Compatibility 영역(U+3300..U+33FF) 사용 금지 | ||||
132 | [[㌀-㏿]+] | ||||
133 | id="language/cjk_compatibility" | ||||
134 | hint="한중일 호환용 영역에 있는 기호는 사용하지 않습니다. 풀어서 쓰십시오" | ||||
135 | | ||||
136 | # TODO: 괄호, 쌍점 주위 띄어쓰기 검사 | ||||
137 | | ||||
138 | # (비트|바이트) 등 한글로 쓴 단위 앞에 띄어쓰기 없음 검사 | ||||
139 | [(~|[0-9]+) +(비트|바이트|시간|분|초)\b] | ||||
140 | id="language/단위" | ||||
141 | hint="단위 명사는 숫자와 단위 사이를 띄어 쓰지 않습니다." | ||||
142 | | ||||
143 | # TODO: (합|됩)니다/(하|되)지 앞에 띄어쓰기 없음 검사 | ||||
144 | | ||||
145 | # TODO: hspell/ko | ||||
146 | | ||||
147 | # 의존명사를 위한 -할 형태의 동사 모음 | ||||
148 | [(가져올|갈|걸|고칠|나타날|내릴|놓일|되돌릴|만들|바꿀|보낼|볼|생길|시킬|쓸|알|얻어낼|얻을|없앨|열|올|일|읽어들일|읽을|있을|잠글|지울|찾을|할)수(가|도|는)?\s] | ||||
149 | id="language/dependent_noun_1" | ||||
150 | hint="의존 명사는 띄어 써야 합니다" | ||||
151 | | ||||
152 | [(가져올|갈|걸|고칠|나타날|내릴|놓일|되돌릴|만들|바꿀|보낼|볼|생길|시킬|쓸|알|얻어낼|얻을|없앨|열|올|일|읽어들일|읽을|있을|잠글|지울|찾을|할)\s*수(있|없)] | ||||
153 | id="language/dependent_noun_2" | ||||
154 | hint="의존 명사는 띄어 써야 합니다" | ||||
155 | | ||||
156 | [(가져올|갈|걸|고칠|나타날|내릴|놓일|되돌릴|만들|바꿀|보낼|볼|생길|시킬|쓸|알|얻어낼|얻을|없앨|열|올|일|읽어들일|읽을|있을|잠글|지울|찾을|할)때(가|도|는)?\s] | ||||
157 | id="language/dependent_noun_3" | ||||
158 | hint="'~할 때'라고 띄어 써야 합니다" | ||||
159 | | ||||
160 | # 조사 모음 | ||||
161 | #josa_re = '(?:'+'|'.join([ | ||||
162 | # '가', '이', '이\(가\)', '가\(이\)', '\(이\)가', '\(가\)이', | ||||
163 | # '를', '을', '을\(를\)', '를\(을\)', '\(을\)를', '\(를\)을', | ||||
164 | # '는', '은', '은\(는\)', '는\(은\)', '\(은\)는', '\(는\)은', | ||||
165 | # '와', '과', '와\(과\)', '과\(와\)', | ||||
166 | # '로', '으로', '\(으\)로', | ||||
167 | # '로서', '으로서', '\(으\)로서', | ||||
168 | # '로써', '으로써', '\(으\)로써', | ||||
169 | # '로부터', '으로부터', '\(으\)로부터', | ||||
170 | # '라는', '이라는', '\(이\)라는', | ||||
171 | # '의', '도', '에', '에서', '만', '부터', | ||||
172 | # ])+')' | ||||
173 | # 're': re.compile('([0-9A-Za-z-+\`\'\"\u2019\u201D()%_]+ ' + | ||||
174 | # josa_re + ')(?:$|\s)'), | ||||
175 | [([0-9A-Za-z-+\`\'"’”()%_]+ (?:가|이|이\(가\)|가\(이\)|\(이\)가|\(가\)이|를|을|을\(를\)|를\(을\)|\(을\)를|\(를\)을|는|은|은\(는\)|는\(은\)|\(은\)는|\(는\)은|와|과|와\(과\)|과\(와\)|로|으로|\(으\)로|로서|으로서|\(으\)로서|로써|으로써|\(으\)로써|로부터|으로부터|\(으\)로부터|라는|이라는|\(이\)라는|의|도|에|에서|만|부터))(?:$|\s)] | ||||
176 | id="language/조사" | ||||
177 | hint="조사는 체언에 붙여 써야 합니다" |