# Path: KPC/classes.py
# class Error:
#     '''An individual error from a check against an entry. One check
#     usually returns list of errors or empty list if there's no error.
#     '''
#     SUCCESS = 0
#     DEPRECATED = 1
#     WARNING = 2
#     ERROR = 3
# 
#     def __init__(self, message):
#         self.pos = 0
#         self.level = Error.ERROR
#         self.message = message
# 
# class HeaderCheck(BaseCheck):
#     '''Base class to check the header entries. Subclasses should
#     implement check_header() function.
#     '''
#     def check(self, entry, context):
#         # header messages only
#         if entry.msgid != '':
#             return []
#         fields = {}
#         # parse msgstr
#         for line in entry.msgstr.split('\n'):
#             try:
#                 k, v = line.split(': ', 1)
#                 fields[k] = v
#             except ValueError:
#                 pass
#         return self.check_header(entry, fields)


from KPC.classes import Error, HeaderCheck
        result = []
        # Report-Msgid-Bugs-To: 내용이 없는 경우
        try:
            if fields['Report-Msgid-Bugs-To'] == '':
                errmsg = 'Report-Msgid-Bugs-To: 비어 있습니다. ' \
                         '버그 보고하는 메일 혹은 웹 주소를 쓰십시오'
                result.append(Error(errmsg))
        except KeyError:
            pass

        # 기본값 그대로 쓴 경우
        if fields['Last-Translator'].startswith('FULL NAME'):
            errmsg = 'Last-Translator: 기본값을 바꾸지 않았습니다. 번역자 이름을 쓰십시오'
            result.append(Error(errmsg))
        if 'EMAIL@ADDRESS' in fields['Last-Translator']:
            errmsg = 'Last-Translator: 기본값을 바꾸지 않았습니다. 번역자 메일 주소를 쓰십시오'
            result.append(Error(errmsg))
        # Language-Team: 쓰지 않았거나 gettext 기본값을 바꾸지 않은 경우
        if 'Language-Team' not in fields:
            errmsg = 'Language-Team: 필드가 없습니다. 번역 팀이 따로 없으면 본인 주소를 쓰십시오'
            result.append(Error(errmsg))
        elif fields['Language-Team'] == '':
            errmsg = 'Language-Team: 비어 있습니다. 번역 팀이 따로 없으면 본인 주소를 쓰십시오'
            result.append(Error(errmsg))
        elif 'ko@li.org' in fields['Language-Team']:
            errmsg = 'Language-Team: 기본값을 바꾸지 않았습니다. 해당 번역팀 메일 주소를 쓰십시오'
            result.append(Error(errmsg))
        # Content-Type: UTF-8 추천
        if 'charset=utf-8' not in fields['Content-Type'].lower():
            errmsg = 'Content-Type: UTF-8 사용을 추천합니다 (charset=UTF-8)'

# Path: KPC/classes.py
# class Error:
#     '''An individual error from a check against an entry. One check
#     usually returns list of errors or empty list if there's no error.
#     '''
#     SUCCESS = 0
#     DEPRECATED = 1
#     WARNING = 2
#     ERROR = 3
# 
#     def __init__(self, message):
#         self.pos = 0
#         self.level = Error.ERROR
#         self.message = message
# 
# class HeaderCheck(BaseCheck):
#     '''Base class to check the header entries. Subclasses should
#     implement check_header() function.
#     '''
#     def check(self, entry, context):
#         # header messages only
#         if entry.msgid != '':
#             return []
#         fields = {}
#         # parse msgstr
#         for line in entry.msgstr.split('\n'):
#             try:
#                 k, v = line.split(': ', 1)
#                 fields[k] = v
#             except ValueError:
#                 pass
#         return self.check_header(entry, fields)


# Path: KPC/checks/convention/common-header.py
from KPC.classes import Error, HeaderCheck

        result = []
        # Report-Msgid-Bugs-To: 내용이 없는 경우
        try:
            if fields['Report-Msgid-Bugs-To'] == '':
                errmsg = 'Report-Msgid-Bugs-To: 비어 있습니다. ' \
                         '버그 보고하는 메일 혹은 웹 주소를 쓰십시오'
                result.append(Error(errmsg))
        except KeyError:
            pass

        # 기본값 그대로 쓴 경우
        if fields['Last-Translator'].startswith('FULL NAME'):
            errmsg = 'Last-Translator: 기본값을 바꾸지 않았습니다. 번역자 이름을 쓰십시오'
            result.append(Error(errmsg))
        if 'EMAIL@ADDRESS' in fields['Last-Translator']:
            errmsg = 'Last-Translator: 기본값을 바꾸지 않았습니다. 번역자 메일 주소를 쓰십시오'
            result.append(Error(errmsg))
        # Language-Team: 쓰지 않았거나 gettext 기본값을 바꾸지 않은 경우
        if 'Language-Team' not in fields:
            errmsg = 'Language-Team: 필드가 없습니다. 번역 팀이 따로 없으면 본인 주소를 쓰십시오'
            result.append(Error(errmsg))
        elif fields['Language-Team'] == '':
            errmsg = 'Language-Team: 비어 있습니다. 번역 팀이 따로 없으면 본인 주소를 쓰십시오'
            result.append(Error(errmsg))
        elif 'ko@li.org' in fields['Language-Team']:
            errmsg = 'Language-Team: 기본값을 바꾸지 않았습니다. 해당 번역팀 메일 주소를 쓰십시오'
            result.append(Error(errmsg))
        # Content-Type: UTF-8 추천
        if 'charset=utf-8' not in fields['Content-Type'].lower():
            errmsg = 'Content-Type: UTF-8 사용을 추천합니다 (charset=UTF-8)'

            result.append(Error(errmsg))