[Libreoffice-commits] core.git: hwpfilter/source

Jihui Choi jihui.choi at gmail.com
Thu Jul 16 03:39:27 PDT 2015


 hwpfilter/source/drawdef.h     |    6 
 hwpfilter/source/formula.cxx   |    2 
 hwpfilter/source/hbox.cxx      |   34 ++--
 hwpfilter/source/hbox.h        |   30 ++--
 hwpfilter/source/hcode.cxx     |   66 ++++-----
 hwpfilter/source/hinfo.cxx     |   56 ++++----
 hwpfilter/source/hiodev.h      |    4 
 hwpfilter/source/hpara.cxx     |    4 
 hwpfilter/source/hpara.h       |   14 +-
 hwpfilter/source/hwpeq.cxx     |   44 +++---
 hwpfilter/source/hwpfile.cxx   |    2 
 hwpfilter/source/hwpread.cxx   |   76 +++++------
 hwpfilter/source/hwpreader.cxx |  279 ++++++++++++++++++++---------------------
 13 files changed, 308 insertions(+), 309 deletions(-)

New commits:
commit 188208d93a5d95e1f5eb39294c5e467d6d53edef
Author: Jihui Choi <jihui.choi at gmail.com>
Date:   Mon Jun 22 12:56:10 2015 +0200

    tdf#91067: Translate Korean comments
    
    Change-Id: Idbee9cb5a1745bb2cc3c4cb1238773da7ff2a0a3
    Signed-off-by: Andrea Gelmini <andrea.gelmini at gelma.net>

diff --git a/hwpfilter/source/drawdef.h b/hwpfilter/source/drawdef.h
index b80c18b..c6be198 100644
--- a/hwpfilter/source/drawdef.h
+++ b/hwpfilter/source/drawdef.h
@@ -119,9 +119,9 @@ struct RotationProperty
  */
 struct HWPDOProperty
 {
-    int line_pstyle; /* 선 중간 모양 */
-    int line_hstyle; /* 끝 화살표 모양 */
-    int line_tstyle; /* 시작 모양 */
+    int line_pstyle; /* Style of the middle of line */
+    int line_hstyle; /* Style of the end of line */
+    int line_tstyle; /* Style of the start of line */
     unsigned int line_color;
     hunit line_width;
     unsigned int fill_color;
diff --git a/hwpfilter/source/formula.cxx b/hwpfilter/source/formula.cxx
index bb48aef..6478811 100644
--- a/hwpfilter/source/formula.cxx
+++ b/hwpfilter/source/formula.cxx
@@ -383,7 +383,7 @@ void Formula::makeDecoration(Node *res)
      else
           fprintf(stderr,"<math:munder>\n");
 #else
-     /* accent는 언제 true이고, 언제, false인지 모르겠다. */
+     /* FIXME: no idea when 'accent' is true or false. */
      if( isover ){
           padd("accent","CDATA","true");
           rstartEl("math:mover", rList);
diff --git a/hwpfilter/source/hbox.cxx b/hwpfilter/source/hbox.cxx
index 4ef9cbf..c026ca4 100644
--- a/hwpfilter/source/hbox.cxx
+++ b/hwpfilter/source/hbox.cxx
@@ -451,7 +451,7 @@ Footnote::~Footnote()
 // auto number(18)
 // new number(19)
 // show page number (20)
-// 홀수쪽시작/감추기 (21)
+// Start/Hide odd-numbered side (21)
 
 // mail merge(22)
 hchar_string MailMerge::GetString()
@@ -597,9 +597,9 @@ static void getOutlineNumStr(int style, int level, int num, hchar * hstr)
 enum
 { OUTLINE_ON, OUTLINE_NUM };
 
-/*  level 은 0부터 시작. 즉 1.1.1. 의 레벨은 2이다.
-    number는 값이 그대로 들어가 있다. 즉, 1.2.1에는 1,2,1이 들어가 있다.
-    style 은 1부터 값이 들어가 있다. hbox.h에 정의된 데로..
+/* level starts from zero. ex) '1.1.1.' is the level 2.
+   number has the value. ex) '1.2.1' has '1,2,1'
+   style has the value which starts from 1 according to the definition in hbox.h
  */
 hchar_string Outline::GetUnicode() const
 {
@@ -658,17 +658,17 @@ hchar_string Outline::GetUnicode() const
                     if( deco[i][0] ){
                         buffer[l++] = deco[i][0];
                     }
-/*  level 은 0부터 시작. 즉 1.1.1. 의 레벨은 2이다.
-    number는 값이 그대로 들어가 있다. 즉, 1.2.1에는 1,2,1이 들어가 있다.
-    style 은 1부터 값이 들어가 있다. hbox.h에 정의된 데로..
+/* level starts from zero. ex) '1.1.1.' is the level 2.
+   number has the value. ex) '1.2.1' has '1,2,1'
+   style has the value which starts from 1 according to the definition in hbox.h
  */
                     switch( user_shape[i] )
                     {
                         case 0:
                             buffer[l++] = '1' + number[i] - 1;
                             break;
-                        case 1: /* 대문자로마 */
-                        case 2: /* 소문자로마 */
+                        case 1: /* Uppercase Roman */
+                        case 2: /* Lowercase Roman */
                             num2roman(number[i], dest);
                             if( user_shape[i] == 1 ){
                                 char *ptr = dest;
@@ -693,22 +693,22 @@ hchar_string Outline::GetUnicode() const
                         case 6:
                             buffer[l++] = olHanglJaso(number[i] -1, OL_HANGL_JASO);
                             break;
-                        case 7: /* 한자 숫자 : 일반 숫자로 표현 */
+                        case 7: /* Chinese numbers: the number represented by the general */
                             buffer[l++] = '1' + number[i] -1;
                             break;
-                        case 8: /* 원숫자 */
+                        case 8: /* Circled numbers */
                             buffer[l++] = 0x2e00 + number[i];
                             break;
-                        case 9: /* 원 알파벳 소문자 */
+                        case 9: /* Circled lowercase alphabet */
                             buffer[l++] = 0x2c20 + number[i];
                             break;
-                        case 10: /* 원 가나다 */
+                        case 10: /* Circled Korean Alphabet */
                             buffer[l++] = 0x2c50 + number[i] -1;
                             break;
-                        case 11: /* 원 ㄱ ㄴ */
+                        case 11: /* Circled Korean Characters */
                             buffer[l++] = 0x2c40 + number[i] -1;
                             break;
-                        case 12: /* 이어진 숫자. */
+                        case 12: /* Sequenced numbers. */
                         {
                              char cur_num_str[10],buf[80];
                              int j;
@@ -742,7 +742,7 @@ hchar_string Outline::GetUnicode() const
 }
 
 
-/* 묶음 빈칸(30) */
-/* 고정폭 빈칸(31) */
+/* Bundle of spaces (30) */
+/* Fixed-width spaces (31) */
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/hwpfilter/source/hbox.h b/hwpfilter/source/hbox.h
index 4ceeb27..3bac8f5 100644
--- a/hwpfilter/source/hbox.h
+++ b/hwpfilter/source/hbox.h
@@ -82,9 +82,9 @@ struct SkipData: public HBox
 struct DateCode;
 struct FieldCode : public HBox
 {
-    uchar type[2];                    /* 2/0 - 계산식, 3/0-문서요약, 3/1-개인정보, 3/2-만든날짜, 4/0-누름틀 */
+    uchar type[2];                    /* 2/0 - Formula, 3/0-document summary, 3/1 Personal Information, 3/2-creation date, 4/0-pressing mold */
     char *reserved1;
-    unsigned short location_info;     /* 0 - 끝코드, 1 - 시작코드 */
+    unsigned short location_info;     /* 0 - End code, 1 - start code */
     char *reserved2;
     hchar *str1;
     hchar *str2;
@@ -198,7 +198,7 @@ enum
 struct CellLine
 {
     unsigned char key;
-    unsigned char top;                            // 0 - 라인없음, 1-single, 2-thick, 3-double
+    unsigned char top;                            // 0-No line, 1-single, 2-thick, 3-double
     unsigned char bottom;
     unsigned char left;
     unsigned char right;
@@ -246,7 +246,7 @@ struct FBoxStyle
 /**
  * Kind of wrap
  */
-    unsigned char txtflow;                        /* 그림피함. 0-2(자리차지,투명,어울림) */
+    unsigned char txtflow;                        /* Avoid painting. 0-2 (seat occupied, transparency, harmony) */
 /**
  * Horizontal alignment
  */
@@ -264,12 +264,12 @@ struct FBoxStyle
 /**
  * Index of floating object
  */
-    short     boxnum;                             /* 스타오피스에서 스타일 이름으로 사용될 숫자 */
+    short     boxnum;                             /* Numbers used as style-name in Libre Office */
 /**
  * Type of floating object : line, txtbox, image, table, equalizer and button
  */
     unsigned char boxtype;                        // (L)ine, t(X)tbox, Picture - (G)
-    short     cap_len; /* 캡션의 길이 */
+    short     cap_len; /* The length of the caption */
 
     void *cell;
 
@@ -307,8 +307,8 @@ struct FBox: public HBox
     char      xpos_type, ypos_type;
     unsigned char smart_linesp;
 
-/*  이 자료는 tbox나 pic에서는 파일에 기록하지 않고 실행시만 있으며,
-    line에서는 파일에 기록한다.
+/* In tbox or pic, this data exists in memory when running, isn't written to a file.
+   But in line, it will be written to a file.
  */
     short     boundsy, boundey;
     unsigned char boundx, draw;
@@ -539,7 +539,7 @@ struct Table
      TxtBox *box;
 };
 
-/* picture (11) 그림, OLE그림, 삽입그림, 그리기 */
+/* picture (11) graphics, OLE graphics, inserted graphics, drawing */
 enum pictype
 {
     PICTYPE_FILE, PICTYPE_OLE, PICTYPE_EMBED,
@@ -617,7 +617,7 @@ struct Picture: public FBox
  * follow_block_size is the size information of the Drawing object of hwp.
  * It's value is greater than 0 if the pictype is PICTYPE_DRAW.
  */
-    uint      follow_block_size;                  /* 추가정보 길이. */
+    uint      follow_block_size;                  /* Additional information length. */
     short     dummy1;                             // to not change structure size */
     short     dummy2;                             // to not change structure size */
     uchar     reserved1;
@@ -647,7 +647,7 @@ struct Picture: public FBox
 /**
  * It's for the Drawing object
  */
-    unsigned char *follow;                        /* 그림종류가 drawing일때, 추가정보. */
+    unsigned char *follow;                        /* When the type of image is drawing, gives additional information. */
 
     bool ishyper;
 
@@ -821,7 +821,7 @@ struct ShowPageNum: public HBox
     virtual bool Read(HWPFile &hwpf) SAL_OVERRIDE;
 };
 
-/* 홀수쪽시작 (21) */
+/* Start odd side (21) */
 /**
  * Controls the display of page number, header, footer and border.
  */
@@ -987,7 +987,7 @@ class Outline: public HBox
 /**
  * decoration character for the level type
  */
-        hchar     deco[MAX_OUTLINE_LEVEL][2];     /* 사용자 정의시 앞뒤 문자 */
+        hchar     deco[MAX_OUTLINE_LEVEL][2];     /* Prefix/postfix for Customize */
         hchar     dummy;
 
         Outline();
@@ -996,7 +996,7 @@ class Outline: public HBox
         hchar_string GetUnicode() const;
 };
 
-/* 묶음 빈칸(30) */
+/* Bundle of spaces (30) */
 /**
  * The Special space to be treated non-space when a string is
  * cut at the end of line
@@ -1011,7 +1011,7 @@ struct KeepSpace: public HBox
     virtual bool Read(HWPFile &hwpf) SAL_OVERRIDE;
 };
 
-/* 고정폭 빈칸(31) */
+/* Fixed-width spaces (31) */
 /**
  * @short Space with always same width not relation with fonts.
  */
diff --git a/hwpfilter/source/hcode.cxx b/hwpfilter/source/hcode.cxx
index e015052..700b2db 100644
--- a/hwpfilter/source/hcode.cxx
+++ b/hwpfilter/source/hcode.cxx
@@ -522,7 +522,7 @@ static hchar cdkssm2ks_han(hchar kssm)
     unsigned int index;
     unsigned char lo, hi;
 
-/* "한" */
+/* "One" */
     if (kssm == 0xd3c5)
         return 0xc7d1;
 
@@ -584,7 +584,7 @@ static const hchar choseong_to_unicode[] =
     0x110e, 0x110f, 0x1110, 0x1111, 0x1112, 0x1120, 0x1121, 0x1127,
     0x112b, 0x112d, 0x112f, 0x1132, 0x1136, 0x1140, 0x114c, 0x1158
 };
-/* 중성이 0과 1인 곳에는 다른 코드들이 들어가 있다. 이부분에 대한 법칙을 뽑아라. */
+/* There are some other codes where the medial sound is 0 or 1. It needs to extract the rules in those area */
 static const hchar joongseong_to_unicode[] =
 {
     0,      0,  0, 0x1161, 0x1162, 0x1163, 0x1164, 0x1165,
@@ -601,12 +601,12 @@ static const hchar jongseong_to_unicode[] =
     0x11bd, 0x11be, 0x11bf, 0x11c0, 0x11c1, 0x11c2, 0x11eb, 0x11f0
 };
 
-/* 중성이 0과 1인곳 */
-/* 처음 32개는 자모, 나머지 32개는 조합으로 구성.
- * 0x8000 ~ 0xa413까지 32개 나오고, 0x0400더한 0x8400에서 다시 32개 나오는 식으로 진행된다.
- * 자모영역은 일반 테이블로 나머지는 구조체 매핑테이블로 만든다.
- */
-/* 308개.. 1152개에서 308개를 제외한 나머지 844개는 자모조합이다. */
+/* The medial sound is 0 or 1
+ * first 32 are consonants and vowels and the other 32 is combinations of alphabets
+ * (0x8000 ~ 0xa413) are the first 32. the other 32 start from 0x8400
+ * consonants and vowels area is made as a general table and the rest are made of a sructure mapping table
+ *
+ * 844, except for the remaining 1152-308 is a combination of consonants and vowels. */
 static const hchar jamo_to_unicode[] =
 {
     0x3131, 0x3132, 0x3133, 0x3134, 0x3135, 0x3136, 0x3137, 0x3138,
@@ -665,7 +665,7 @@ struct JamoComp{
     hchar v2;
     hchar v3;
 };
-/* 704 + 12 = 706 개  */
+/* 704 + 12 = 706 */
 static const JamoComp jamocomp1_to_unicode[] =
 {
     {3, 0x1100, 0x1161, 0x11e7}, {3, 0x1100, 0x1161, 0x3167},
@@ -788,7 +788,7 @@ static const JamoComp jamocomp1_to_unicode[] =
     {3, 0x1105, 0x119e, 0x11d7}, {3, 0x1105, 0x119e, 0x11dc},
     {3, 0x1105, 0x119e, 0x11dd}, {2, 0x1105, 0x1176, 0x0000},
 
-/* -- 여기부터 숫자 안바꿈 즉, 3을 2로 바꾸어 주어야 함. */
+/* From here, numbers are not changed. So must change 3 to 2 manually. */
     {2, 0x1105, 0x1178, 0x0000}, {2, 0x1105, 0x117a, 0x0000},
     {2, 0x1105, 0x117b, 0x0000}, {2, 0x1105, 0x1186, 0x0000},
     {2, 0x1105, 0x1187, 0x0000}, {2, 0x1105, 0x118c, 0x0000},
@@ -913,13 +913,13 @@ int hcharconv(hchar ch, hchar *dest, int codeType)
           dest[0] = ch;
         return 1;
     }
-      /* 한자는 0x4000부터 4888가지의 값을 가진다. */
+      /* Chinese characters have a value of 4888 kinds from 0x4000. */
     else if (IsHanja(ch))
     {
         unsigned int index;
         unsigned char hi;
-        /*  4888이외의 수는 아래한글에서 정의한 확장한자이다. 이것에 대해서는
-            유니코드나 완성형코드로의 변환을 위한 매핑테이블어 없는 실정이다.
+        /*Out of 4888 kinds are Chinese characters which are defined by Hangul Word Processor. For this
+          there is no mapping table to convert to Unicode or completion code(KSC5601-87, EUC-KR)
          */
         if ((index = ch - 0x4000) >= 4888)
         {
@@ -931,8 +931,8 @@ int hcharconv(hchar ch, hchar *dest, int codeType)
         }
         if (codeType == KS)
         {
-            /*  한자코드는 상위코드와 하위코드로 나누어지며 하위코드는 0xA1 - 0xFE 까지의 값을 가진다.
-                즉 하위코드에 올수있는 가지수는 0xFE - 0xA1 +1 가지수이다.
+            /* Chinese code is divided into the upper cord and lower cord. Lower code has the value from 0xA1 up to 0xFE.
+               In other words, the number of lower code is the number of (0xFE - 0xA1) +1
              */
             hi = sal::static_int_cast<unsigned char>(index / (0xFE - 0xA1 + 1) + 0xCA);
             lo = sal::static_int_cast<unsigned char>(index % (0xFE - 0xA1 + 1) + 0xA1);
@@ -995,9 +995,9 @@ int hcharconv(hchar ch, hchar *dest, int codeType)
           dest[0] = ch;
         return 1 ;
     }
-/**
- * 특수문자 코드
- * 아래한글에서는 0x3400부터 특수문자가 시작된다. 조합형은 0xA1A0
+/*
+ * Special characters code
+ * In Hangul Word Processor, special characters begins from 0x3400. Combinations are from 0xA1A0
  */
     else
     {
@@ -1012,7 +1012,7 @@ int hcharconv(hchar ch, hchar *dest, int codeType)
                          dest[0] = ch;
                           return 1;
                      }
-                     /* 한글과컴퓨터 : 0x37c0 ~ 0x37c5 */
+                     /* Hangul and Computer: 0x37c0 ~ 0x37c5 */
                      if( ch2 >= 0x37c0 && ch2 <= 0x37c5 ){
                          if( ch2 == 0x37c0 ) dest[0] = 0xd55c;
                          else if( ch2 == 0x37c1 ) dest[0] = 0xae00;
@@ -1058,7 +1058,7 @@ int hcharconv(hchar ch, hchar *dest, int codeType)
     }
 }
 
-/* 한글일 경우. */
+/* If it's Korean(Hangul). */
 int kssm_hangul_to_ucs2(hchar ch, hchar *dest)
 {
     hchar choseong, joongseong, jongseong;
@@ -1069,13 +1069,13 @@ int kssm_hangul_to_ucs2(hchar ch, hchar *dest)
 
      //printf("kssm_hangul_to_ucs2 : [%d,%d,%d]\n", choseong,joongseong,jongseong);
 
-     if( joongseong < 2 ){ /* 조합되지 않은 영역 중성=0,1 */
-         if( joongseong == 0 && ch < 0xa414 ){ /* 고어포함 자모 */
+     if( joongseong < 2 ){ /* Not combined area, medial sound = 0,1 */
+         if( joongseong == 0 && ch < 0xa414 ){ /* consonants and vowels includes old characters */
              int index = choseong * 32 + jongseong;
              dest[0] = jamo_to_unicode[index];
              return 1;
          }
-         else{ /* 고어포함 자모조합 : 테이블 미완성 */
+         else{ /* combination of consonants and vowels includes old characters: an unfinished table */
              unsigned int index = choseong * 32 + jongseong - 308;
              if( index < SAL_N_ELEMENTS(jamocomp1_to_unicode) ){
                  dest[0] = jamocomp1_to_unicode[index].v1;
@@ -1087,11 +1087,11 @@ int kssm_hangul_to_ucs2(hchar ch, hchar *dest)
              return 1;
          }
      }
-     else if ( choseong == 1 && jongseong == 1 ){ /* 모음 */
+     else if ( choseong == 1 && jongseong == 1 ){ /* Vowel */
          dest[0] = joongseong_to_unicode[joongseong];
          return 1;
      }
-     else if ( joongseong == 2 && jongseong == 1 ){  /* 자음 */
+     else if ( joongseong == 2 && jongseong == 1 ){  /* Consonant */
          dest[0] = choseong_to_unicode[choseong];
        return 1;
     }
@@ -1100,8 +1100,8 @@ int kssm_hangul_to_ucs2(hchar ch, hchar *dest)
              joongseong == 25 || joongseong > 29 ||
              jongseong == 0 || jongseong == 18 ||
              jongseong > 29 ||
-             choseong == 1 || joongseong == 2  /* 완성되지 않은 한글 */
-             ) { /* 고어 */
+             choseong == 1 || joongseong == 2  /* Incomplete Hangul */
+             ) { /* Gore */
          int count = 0;
          if( choseong != 1 ){
              dest[count] = choseong_to_unicode[choseong];
@@ -1181,7 +1181,7 @@ hchar_string hstr2ucsstr(hchar const* hstr)
 }
 
 /**
- * 한컴스트링을 완성형스트링으로 변환한다
+ * Convert 'Hangul and Computer' strings to the completion code(KSC5601-87)
  */
 ::std::string hstr2ksstr(hchar const* hstr)
 {
@@ -1211,8 +1211,8 @@ hchar_string hstr2ucsstr(hchar const* hstr)
 
 
 /*
- * 한글에서 영문외의 문자까지 포함할 수 있는 kchar타입의 문자열을
- * 한글에서 사용하는 hchar타입의 문자열로 변환한다.
+ * Convert strings of kchar type, which can contain Korean, English and others
+ * to strings of hchar type of Hangul Word Processor
  */
 hchar_string kstr2hstr(unsigned char const* src)
 {
@@ -1243,7 +1243,7 @@ char* Int2Str(int value, const char *format, char *buf)
 }
 
 
-/* color인덱스 값과 음영값을 조합하여 스타오피스의 color로 변환 */
+/* Convert a combination of a color index value and a shade value to the color value of LibreOffice */
 char *hcolor2str(uchar color, uchar shade, char *buf, bool bIsChar)
 {
     unsigned short red,green,blue;
@@ -1451,11 +1451,11 @@ double calcAngle(int x1, int y1, int x2, int y2)
      }
      double angle;
      angle = (180 / PI) * atan( ( y2 - y1 ) * 1.0 / ( x2 - x1 ));
-     if( y2 >= y1 ){ /* 1,2사분면 */
+     if( y2 >= y1 ){ /* 1, 2 quadrant */
           if( angle < 0. )
                 angle += 180.;
      }
-     else{ /* 3, 4 사분면 */
+     else{ /* 3, 4 quadrants */
           if( angle > 0 )
                 angle += 180.;
           else
diff --git a/hwpfilter/source/hinfo.cxx b/hwpfilter/source/hinfo.cxx
index 96de6d7..0c158ad 100644
--- a/hwpfilter/source/hinfo.cxx
+++ b/hwpfilter/source/hinfo.cxx
@@ -72,61 +72,61 @@ HWPInfo::~HWPInfo()
 
 
 /**
- * 문서정보를 읽어들이는 함수 ( 128 bytes )
- * 문서정보는 파일인식정보( 30 bytes ) 다음에 위치한 정보이다.
+ * Function for reading document information (128 bytes)
+ * Document information is the information after the file identification information (30 bytes).
  */
 bool HWPInfo::Read(HWPFile & hwpf)
 {
-    hwpf.Read2b(&cur_col, 1);                     /* 문서를 저장할 당시의 커서가 위치한 문단번호 */
-    hwpf.Read2b(&cur_row, 1);                     /* 문단 칸 */
+    hwpf.Read2b(&cur_col, 1);                     /* When a document is saving, the paragraph number where the coursor is */
+    hwpf.Read2b(&cur_row, 1);                     /* Paragraphs rows */
 
-    hwpf.Read1b(&paper.paper_kind, 1);            /* 용지 종류 */
-    hwpf.Read1b(&paper.paper_direction, 1);       /* 용지 방향 */
+    hwpf.Read1b(&paper.paper_kind, 1);            /* Paper Type */
+    hwpf.Read1b(&paper.paper_direction, 1);       /* Paper orientation */
 
 // paper geometry information
     unsigned short tmp16;
     if (!hwpf.Read2b(tmp16))
         return false;
-    paper.paper_height = tmp16;                   /* 용지 길이 */
+    paper.paper_height = tmp16;                   /* Paper length */
     if (!hwpf.Read2b(tmp16))
         return false;
-    paper.paper_width = tmp16;                    /* 용지 너비 */
+    paper.paper_width = tmp16;                    /* Sheet width */
     if (!hwpf.Read2b(tmp16))
         return false;
-    paper.top_margin = tmp16;                     /* 위쪽 여백 */
+    paper.top_margin = tmp16;                     /* Top margin */
     if (!hwpf.Read2b(tmp16))
         return false;
-    paper.bottom_margin = tmp16;                  /* 아래쪽 여백 */
+    paper.bottom_margin = tmp16;                  /* The bottom margin */
     if (!hwpf.Read2b(tmp16))
         return false;
-    paper.left_margin = tmp16;                    /* 왼쪽 여백 */
+    paper.left_margin = tmp16;                    /* Left Margin */
     if (!hwpf.Read2b(tmp16))
         return false;
-    paper.right_margin = tmp16;                   /* 오른쪽 여백 */
+    paper.right_margin = tmp16;                   /* Right margins */
     if (!hwpf.Read2b(tmp16))
         return false;
-    paper.header_length = tmp16;                  /* 머리말 길이 */
+    paper.header_length = tmp16;                  /* Header length */
     if (!hwpf.Read2b(tmp16))
         return false;
-    paper.footer_length = tmp16;                  /* 꼬리말 길이 */
+    paper.footer_length = tmp16;                  /* Footer length */
     if (!hwpf.Read2b(tmp16))
         return false;
-    paper.gutter_length = tmp16;                  /* 제본여백 */
-    hwpf.Read2b(&readonly, 1);                    /* 예약 */
-    hwpf.Read1b(reserved1, 4);                    /* 예약 */
-    hwpf.Read1b(&chain_info.chain_page_no, 1);    /* 쪽 번호 연결 1-연결, 0-새로시작 (연결인쇄에서 사용) */
-    hwpf.Read1b(&chain_info.chain_footnote_no, 1);/* 각주번호 연결 1-연결 0-새로시작 */
-                                                  /* 연결인쇄할 파일의 이름 */
+    paper.gutter_length = tmp16;                  /* The binding margin */
+    hwpf.Read2b(&readonly, 1);                    /* Reserve */
+    hwpf.Read1b(reserved1, 4);                    /* Reserve */
+    hwpf.Read1b(&chain_info.chain_page_no, 1);    /* Connect page number: 1-Connect, 0-newly started (used in connection printing) */
+    hwpf.Read1b(&chain_info.chain_footnote_no, 1);/* Connect footnote number: 1-connect, 0-newly started*/
+                                                  /* the file name to be printed with connection */
     hwpf.Read1b(chain_info.chain_filename, CHAIN_MAX_PATH);
 
-    hwpf.Read1b(annotation, ANNOTATION_LEN);      /* 덧붙이는 말 ( 파일 저장할 때 덧붙이는 말에 지정한 내용 ) */
-    hwpf.Read2b(&encrypted, 1);                   /* 암호 여부 0-보통파일, 그외-암호걸린 파일 */
-//hwpf.Read1b(reserved2, 6);                      /* 아래 3개의값으로 바뀌었다. */
-    hwpf.Read2b(&beginpagenum,1);                 /* 페이지시작번호 */
+    hwpf.Read1b(annotation, ANNOTATION_LEN);      /* Annotation (additional information when a file is saving.) */
+    hwpf.Read2b(&encrypted, 1);                   /* encrypt: 0-normal file(without password), 1-protected by password */
+//hwpf.Read1b(reserved2, 6);                      /* it turned into below three values. */
+    hwpf.Read2b(&beginpagenum,1);                 /* Page starting number */
 
 // footnote
-    hwpf.Read2b(&beginfnnum,1);                   /* 각주 시작번호 */
-    hwpf.Read2b(&countfn,1);                      /* 각주 갯수 */
+    hwpf.Read2b(&beginfnnum,1);                   /* Footnote start number */
+    hwpf.Read2b(&countfn,1);                      /* Number of footnote */
 
     if (!hwpf.Read2b(tmp16))
         return false;
@@ -158,7 +158,7 @@ bool HWPInfo::Read(HWPFile & hwpf)
     if (hwpf.State())
         return false;
 
-/* 문서 요약을 읽는다. */
+/* Read the article summary. */
     if (!summary.Read(hwpf))
         return false;
     if (info_block_len > 0)
@@ -169,7 +169,7 @@ bool HWPInfo::Read(HWPFile & hwpf)
             return false;
     }
 
-/* hwpf의 값을 재설정 한다. */
+/* reset the value of hwpf. */
     hwpf.compressed = compressed != 0;
     hwpf.encrypted = encrypted != 0;
     hwpf.info_block_len = info_block_len;
diff --git a/hwpfilter/source/hiodev.h b/hwpfilter/source/hiodev.h
index 967be20..aac99c9 100644
--- a/hwpfilter/source/hiodev.h
+++ b/hwpfilter/source/hiodev.h
@@ -67,7 +67,7 @@ class DLLEXPORT HIODev
 
 struct gz_stream;
 
-/* 파일 입출력 장치 */
+/* File input and output devices */
 
 /**
  * This controls the HStream given by constructor
@@ -134,7 +134,7 @@ class HStreamIODev : public HIODev
         virtual void init() SAL_OVERRIDE;
 };
 
-/* 메모리 입출력 장치 */
+/* Memory, input and output devices */
 /**
  * The HMemIODev class controls the Input/Output device.
  * @short Memory IO device
diff --git a/hwpfilter/source/hpara.cxx b/hwpfilter/source/hpara.cxx
index e26fb6f..e7febc4 100644
--- a/hwpfilter/source/hpara.cxx
+++ b/hwpfilter/source/hpara.cxx
@@ -118,12 +118,12 @@ bool HWPPara::Read(HWPFile & hwpf, unsigned char flag)
     hwpf.Read1b(&pstyno, 1);
 
 
-/* Paragraph 대표 글자 */
+/* Paragraph representative character */
     cshape.Read(hwpf);
     if (nch > 0)
         hwpf.AddCharShape(&cshape);
 
-/* Paragraph 문단 모양 */
+/* Paragraph paragraphs shape  */
     if (nch && !reuse_shape)
     {
         pshape.Read(hwpf);
diff --git a/hwpfilter/source/hpara.h b/hwpfilter/source/hpara.h
index 7a6c5e3..193dcce 100644
--- a/hwpfilter/source/hpara.h
+++ b/hwpfilter/source/hpara.h
@@ -53,7 +53,7 @@ class HWPPara;
 
 struct LineInfo
 {
-/* 시작하는 글자의 위치 : 콘트롤은 여러 길이를 가진다 */
+/* the position of the starting character: the control has a different length */
 /**
  * Starting character position
  */
@@ -84,7 +84,7 @@ class DLLEXPORT HWPPara
 /**
  * Zero is for the new paragraph style.
  */
-        unsigned char     reuse_shape;            /* 0이면 새모양 */
+        unsigned char     reuse_shape;            /* the new shape if 0 */
         unsigned short    nch;
         unsigned short    nline;
 
@@ -95,16 +95,16 @@ class DLLEXPORT HWPPara
 /**
  * If the value is 0, all character of paragraph have same style given cshape
  */
-        unsigned char     contain_cshape;         /* 0이면 모든 글자가 대표 글자 모양 */
+        unsigned char     contain_cshape;         /* if it's 0, all the characters are representing with representative shape */
         unsigned char     etcflag;
 /**
  * Checks the special characters in the paragraph
  */
         unsigned long     ctrlflag;
         unsigned char     pstyno;
-        CharShape     cshape;                     /* 글자가 모두 같은 모양일때  */
-        ParaShape     pshape;                     /* reuse flag가 0이면     */
-        int           pno;                        /* run-time only      */
+        CharShape     cshape;                     /* When characters are all the same shape */
+        ParaShape     pshape;                     /* if reuse flag is 0, */
+        int           pno;                        /* then run-time only */
 
         LineInfo      *linfo;
         CharShape     *cshapep;
@@ -120,7 +120,7 @@ class DLLEXPORT HWPPara
 
         void  SetNext(HWPPara *n) { _next = n; };
 
-/* layout을 위한 함수 */
+/* Functions for layout */
 /**
  * Returns the character style of paragraph.
  */
diff --git a/hwpfilter/source/hwpeq.cxx b/hwpfilter/source/hwpeq.cxx
index a897abe..393a6db 100644
--- a/hwpfilter/source/hwpeq.cxx
+++ b/hwpfilter/source/hwpeq.cxx
@@ -32,7 +32,7 @@ using namespace std;
 #include <sal/types.h>
 #include <sal/macros.h>
 
-/* @Man: hwp수식을 LaTeX으로 바꾸기 */
+/* @Man: change the hwp formula to LaTeX */
 #ifdef WIN32
 # define ENDL  "\r\n"
 #else /* !WIN32 */
@@ -125,7 +125,7 @@ static const hwpeq eq_tbl[] = {
   { "bullet",     NULL,       0,  0   },
   { "cap",        NULL,       0,  0   },
   { "cases",      NULL,       0,  EQ_ENV  },
-  { "ccol",       NULL,       0,  0   }, /* 세로로 가운데 */
+  { "ccol",       NULL,       0,  0   }, /* Center vertically */
   { "cdot",       NULL,       0,  0   },
   { "cdots",      NULL,       0,  0   },
   { "check",      NULL,       1,  0   },
@@ -401,7 +401,7 @@ static const hwpeq *lookup_eqn(char *str)
   return result;
 }
 
-/* 첫자만 대문자이거나 전부 대문자면 소문자로 바꾼다. */
+/* If only the first character is uppercase or all characters are uppercase, change to lowercase */
 void make_keyword( char *keyword, const char *token)
 {
     char* ptr;
@@ -469,10 +469,10 @@ void push_token(MzString &white, MzString &token, istream *strm)
 }
 
 /*
- 읽은 토큰의 길이를 반환한다.
-*/
-/* control char, control sequence, binary sequence,
-   alphabet string, sigle character */
+ * It returns the length of the read tokens.
+ *
+ * control char, control sequence, binary sequence,
+ * alphabet string, sigle character */
 static int next_token(MzString &white, MzString &token, istream *strm)
 {
   int  ch = 0;
@@ -506,8 +506,8 @@ static int next_token(MzString &white, MzString &token, istream *strm)
       ch = strm->get();
     } while( ch != EOF && (ch & 0x80 || isalpha(ch)) ) ;
     strm->putback(sal::static_int_cast<char>(ch));
-    /*  sub, sub, over, atop 특수 처리
-        그 이유는 next_state()에 영향을 미치기 때문이다.
+    /* special treatment of sub, sub, over, atop
+       The reason for this is that affect next_state().
      */
     if( !STRICMP("sub", token) || !STRICMP("from", token) ||
     !STRICMP("sup", token) || !STRICMP("to", token) ||
@@ -558,18 +558,18 @@ static int read_white_space(MzString& outs, istream *strm)
   return result;
 }
 
-/* 인수가 필요하지 않은 경우 각 항목간의 구분은 space와 brace
-     sqrt {ab}c = sqrt{ab} c
-   (, }는 grouping
-   ^, _ 는 앞뒤로 결합한다.
-
-   sqrt 등과 같이 인수가 있는 형식 정리
-     sqrt a  -> sqrt{a}
-     sqrt {a}    -> sqrt{a}
-   1 이상의 인수가 있는 경우 인수들간의 역백은 없앤다.
-     \frac a b   -> frac{a}{b}
-   over의 형식 정리
-     a over b    -> {a}over{b}
+/* If the argument is not required, delimiters are space and brace for each items.
+   sqrt {ab} c = sqrt {ab} c
+   (,} are for grouping
+   ^ ,_ are for combination
+
+   Sorting of formats with arguments, such as sqrt
+      sqrt a -> sqrt {a}
+      sqrt {a} -> sqrt {a}
+   If there is more than one argument, it eliminates backslash between arguments.
+      \frac a b -> frac {a} {b}
+   Clean the form of over
+      a over b -> {a} over {b}
  */
 
 static int eq_word(MzString& outs, istream *strm, int status)
@@ -599,7 +599,7 @@ static int eq_word(MzString& outs, istream *strm, int status)
     state << white << token;
   }
   else {
-    /* 정상적인 token */
+    /* Normal token */
     int script_status = SCRIPT_NONE;
     while( true ) {
       state << white << token;
diff --git a/hwpfilter/source/hwpfile.cxx b/hwpfilter/source/hwpfile.cxx
index d4457a5..6f6ea75 100644
--- a/hwpfilter/source/hwpfile.cxx
+++ b/hwpfilter/source/hwpfile.cxx
@@ -389,7 +389,7 @@ ColumnDef *HWPFile::GetColumnDef(int num)
     else
         return 0;
 }
-/* @return 인덱스는 1부터 시작한다. */
+/* Index of @return starts from 1 */
 int HWPFile::GetPageMasterNum(int page)
 {
     std::list<ColumnInfo*>::iterator it = columnlist.begin();
diff --git a/hwpfilter/source/hwpread.cxx b/hwpfilter/source/hwpread.cxx
index ca8e3ea..55e2068 100644
--- a/hwpfilter/source/hwpread.cxx
+++ b/hwpfilter/source/hwpread.cxx
@@ -63,10 +63,10 @@ bool FieldCode::Read(HWPFile & hwpf)
 {
     uint size;
     hchar dummy;
-    uint len1;       /* hchar타입의 문자열 테이터 #1의 길이 */
-    uint len2;       /* hchar타입의 문자열 테이터 #2의 길이 */
-    uint len3;       /* hchar타입의 문자열 테이터 #3의 길이 */
-    uint binlen;     /* 임의 형식의 바이너리 데이타 길이 */
+    uint len1;       /* Length of hchar type string DATA #1 */
+    uint len2;       /* Length of hchar type string DATA #2 */
+    uint len3;       /* Length of hchar type string DATA #3 */
+    uint binlen;     /* Length of any binary data format */
 
     hwpf.Read4b(&size, 1);
     hwpf.Read2b(&dummy, 1);
@@ -100,7 +100,7 @@ bool FieldCode::Read(HWPFile & hwpf)
 
     hwpf.ReadBlock(bin, binlen);
 
-     if( type[0] == 3 && type[1] == 2 ){ /* 만든날짜로서 포맷을 생성해야 한다. */
+     if( type[0] == 3 && type[1] == 2 ){ /* It must create a format as created date. */
           DateCode *pDate = new DateCode;
           for (int i = 0 ; i < static_cast<int>(len3_); i++) {
                 if(str3[i] == 0 ) break;
@@ -377,55 +377,55 @@ bool Picture::Read(HWPFile & hwpf)
     hwpf.AddBox(this);
 
     hwpf.Read4b(&follow_block_size, 1);
-    hwpf.Read2b(&dummy1, 1);                      /* 예약 4바이트 */
+    hwpf.Read2b(&dummy1, 1);                      /* Reserved 4 bytes */
     hwpf.Read2b(&dummy2, 1);
 
     style.boxnum = fboxnum++;
      zorder = zindex++;
-    hwpf.Read1b(&style.anchor_type, 1);           /* 기준위치 */
-    hwpf.Read1b(&style.txtflow, 1);               /* 그림피함. 0-2(자리차지,투명,어울림) */
-    hwpf.Read2b(&style.xpos, 1);                  /* 가로위치 : 1 왼쪽, 2오른쪽, 3 가운데, 이외 = 임의 */
-    hwpf.Read2b(&style.ypos, 1);                  /* 세로위치 : 1 위, 2 아래, 3 가운데, 이외 임의 */
-    hwpf.Read2b(&option, 1);                      /* 기타옵션 : 테두리,그림반전,등. bit로 저장. */
-    hwpf.Read2b(&ctrl_ch, 1);                     /* 항상 11 */
-    hwpf.Read2b(style.margin, 12);                /* 여백 : [0-2][] out/in/셀,[][0-3] 왼/오른/위/아래 여백 */
-    hwpf.Read2b(&box_xs, 1);                      /* 박스크기 가로 */
-    hwpf.Read2b(&box_ys, 1);                      /* 세로 */
-    hwpf.Read2b(&cap_xs, 1);                      /* 캡션 크기 가로 */
-    hwpf.Read2b(&cap_ys, 1);                      /* 세로 */
-    hwpf.Read2b(&style.cap_len, 1);               /* 길이 */
-    hwpf.Read2b(&xs, 1);                          /* 전체 크기(박스 크기 + 캡션 + 여백) 가로 */
-    hwpf.Read2b(&ys, 1);                          /* 세로 */
-    hwpf.Read2b(&cap_margin, 1);                  /* 캡션 여백 */
+    hwpf.Read1b(&style.anchor_type, 1);           /* Reference position */
+    hwpf.Read1b(&style.txtflow, 1);               /* Avoid painting. 0-2 (seat occupied, transparency, harmony) */
+    hwpf.Read2b(&style.xpos, 1);                  /* Horizontal position: 1=left, 2=right, 3=center, and others=any */
+    hwpf.Read2b(&style.ypos, 1);                  /* Vertical position: 1=top, 2=down, 3=middle, and others=any */
+    hwpf.Read2b(&option, 1);                      /* Other options: Borders, reverse picture, and so on. Save as bit. */
+    hwpf.Read2b(&ctrl_ch, 1);                     /* Always 11 */
+    hwpf.Read2b(style.margin, 12);                /* Margin: [0-2] [] out / in / cell, [], [0-3] left / right / top / bottom margins */
+    hwpf.Read2b(&box_xs, 1);                      /* Box Size Width */
+    hwpf.Read2b(&box_ys, 1);                      /* Vertical */
+    hwpf.Read2b(&cap_xs, 1);                      /* Caption Size Width */
+    hwpf.Read2b(&cap_ys, 1);                      /* Vertical */
+    hwpf.Read2b(&style.cap_len, 1);               /* Length */
+    hwpf.Read2b(&xs, 1);                          /* The total size (box size + caption + margin) Horizontal */
+    hwpf.Read2b(&ys, 1);                          /* Vertical */
+    hwpf.Read2b(&cap_margin, 1);                  /* Caption margins */
     hwpf.Read1b(&xpos_type, 1);
     hwpf.Read1b(&ypos_type, 1);
-    hwpf.Read1b(&smart_linesp, 1);                /* 줄간격 보호 : 0 미보호, 1 보호 */
+    hwpf.Read1b(&smart_linesp, 1);                /* Line Spacing protection: 0 unprotected 1 protected */
     hwpf.Read1b(&reserved1, 1);
-    hwpf.Read2b(&pgx, 1);                         /* 실제 계산된 박스 가로 */
-    hwpf.Read2b(&pgy, 1);                         /* 세로 */
-    hwpf.Read2b(&pgno, 1);                        /* 페이지 숫자 : 0부터 시작 */
-    hwpf.Read2b(&showpg, 1);                      /* 박스보여줌 */
-    hwpf.Read2b(&cap_pos, 1);                     /* 캡션위치 0 - 7 메뉴순서. */
-    hwpf.Read2b(&num, 1);                         /* 박스번호 0부터 시작해서 매긴일련번호 */
+    hwpf.Read2b(&pgx, 1);                         /* Real Calculated box width */
+    hwpf.Read2b(&pgy, 1);                         /* Height */
+    hwpf.Read2b(&pgno, 1);                        /* Page number: starts from 0 */
+    hwpf.Read2b(&showpg, 1);                      /* Show the Box */
+    hwpf.Read2b(&cap_pos, 1);                     /* Caption positions 0-7 Menu Order. */
+    hwpf.Read2b(&num, 1);                         /* Box number, serial number which starts from 0 */
 
-    hwpf.Read1b(&pictype, 1);                     /* 그림종류 */
+    hwpf.Read1b(&pictype, 1);                     /* Picture type */
 
     unsigned short tmp16;
-    if (!hwpf.Read2b(tmp16))                      /* 그림에서 실제 표시를 시작할 위치 가로 */
+    if (!hwpf.Read2b(tmp16))                      /* the real horizontal starting point where shows the picture */
         return false;
     skip[0] = tmp16;
-    if (!hwpf.Read2b(tmp16))                      /* 세로 */
+    if (!hwpf.Read2b(tmp16))                      /* Vertical */
         return false;
     skip[1] = tmp16;
-    if (!hwpf.Read2b(tmp16))                      /* 확대비율 : 0 고정, 이외 퍼센트 단위 가로 */
+    if (!hwpf.Read2b(tmp16))                      /* Zoom Ratio: 0:fixed, others are percentage for horizontal */
         return false;
     scale[0] = tmp16;
-    if (!hwpf.Read2b(tmp16))                      /* 세로 */
+    if (!hwpf.Read2b(tmp16))                      /* Vertical */
         return false;
     scale[1] = tmp16;
 
-    hwpf.Read1b(picinfo.picun.path, 256);         /* 그림파일 이름 : 종류가 Drawing이 아닐때. */
-    hwpf.Read1b(reserved3, 9);                    /* 밝기/명암/그림효과 등 */
+    hwpf.Read1b(picinfo.picun.path, 256);         /* Picture File Name: when type is not a Drawing. */
+    hwpf.Read1b(reserved3, 9);                    /* Brightness / Contrast / Picture Effect, etc. */
 
     UpdateBBox(this);
     if( pictype != PICTYPE_DRAW )
@@ -460,7 +460,7 @@ bool Picture::Read(HWPFile & hwpf)
         style.boxtype = 'D';
     hwpf.AddFBoxStyle(&style);
 
-// cation
+// caption
     hwpf.ReadParaList(caption);
 
     return !hwpf.State();
@@ -834,7 +834,7 @@ bool Outline::Read(HWPFile & hwpf)
 }
 
 
-/* 묶음 빈칸(30) */
+/* Bundle of spaces (30)*/
 KeepSpace::KeepSpace()
     : HBox(CH_KEEP_SPACE)
     , dummy(0)
@@ -853,7 +853,7 @@ bool KeepSpace::Read(HWPFile & hwpf)
 }
 
 
-/* 고정폭 빈칸(31) */
+/* Fixed-width spaces (31) */
 FixedSpace::FixedSpace()
     : HBox(CH_FIXED_SPACE)
     , dummy(0)
diff --git a/hwpfilter/source/hwpreader.cxx b/hwpfilter/source/hwpreader.cxx
index a68a29b..5240584 100644
--- a/hwpfilter/source/hwpreader.cxx
+++ b/hwpfilter/source/hwpreader.cxx
@@ -555,8 +555,8 @@ void HwpReader::makeDrawMiscStyle( HWPDrawingObject *hdo )
                 pList->clear();
                 rendEl( "draw:fill-image");
             }
-/* 그라데이션이 존재해도, 비트맵파일이 존재하면, 이것이 우선이다. */
-            else if( prop->flag >> 16  & 0x01 )   /* 그라데이션 존재여부 */
+/*  If there is a gradient, when a bitmap file is present, this is the first. */
+            else if( prop->flag >> 16  & 0x01 )   /* existence gradient */
             {
                 padd( "draw:name", sXML_CDATA, ascii(Int2Str(hdo->index, "Grad%d", buf)));
                 switch( prop->gstyle )
@@ -802,8 +802,8 @@ void HwpReader::makeStyles()
 
 /**
  * parse automatic styles from hwpfile
- * 자동적으로 반영이 되는 스타일을 정의한다. 예를들어 각각의 문단이나, 테이블, 헤더 등등의 스타일을 이곳에서 정의하고, Body에서는 이곳에 정의된 스타일을 이용한다.
- * 1. paragraph, text, fbox, page스타일에 대해 지원한다.
+ * Define a style that is automatically reflected. For example, defining styles of each paragraph, tables, header, and etc,. at here. In Body, use the defined style.
+ * 1. supports for the styles of paragraph, text, fbox, and page.
  */
 void HwpReader::makeAutoStyles()
 {
@@ -1032,7 +1032,7 @@ void HwpReader::makeMasterStyles()
         rstartEl("style:master-page", rList);
         pList->clear();
 
-        if( pSet[i].bIsSet )                      /* 현재 설정이 바뀌었으면 */
+        if( pSet[i].bIsSet )                      /* If you've changed the current setting */
         {
               if( !pSet[i].pagenumber ){
                     if( pPrevSet && pPrevSet->pagenumber )
@@ -1074,11 +1074,11 @@ void HwpReader::makeMasterStyles()
             pPage = &pSet[i];
             pPrevSet = &pSet[i];
         }
-        else if( pPrevSet )                       /* 이전의 설정된 것이 있으면. */
+        else if( pPrevSet )                       /* If the previous setting exists */
         {
             pPage = pPrevSet;
         }
-        else                                      /* 아직 설정이 없다면 기본설정으로 */
+        else                                      /* If the previous settings doesn't exist, set to the default settings */
         {
             rstartEl("style:header", rList);
             padd("text:style-name", sXML_CDATA, "Standard");
@@ -1098,7 +1098,7 @@ void HwpReader::makeMasterStyles()
 
             continue;
         }
-// ------------- header -------------
+// header
         if( pPage->header )
         {
             rstartEl("style:header", rList);
@@ -1128,7 +1128,7 @@ void HwpReader::makeMasterStyles()
             d->nPnPos = 0;
             rendEl("style:header");
         }
-                                                  /* 기본으로 한다. */
+                                                  /* Will be the default. */
         else if( pPage->header_odd && !pPage->header_even )
         {
             rstartEl("style:header", rList);
@@ -1163,7 +1163,7 @@ void HwpReader::makeMasterStyles()
             d->nPnPos = 0;
             rendEl("style:header-left");
         }
-                                                  /* 기본으로 한다. */
+                                                  /* Will be the default.  */
         else if( pPage->header_even && !pPage->header_odd )
         {
             rstartEl("style:header-left", rList);
@@ -1198,7 +1198,7 @@ void HwpReader::makeMasterStyles()
             rendEl("text:p");
             rendEl("style:header");
         }
-// ------------- footer -------------
+// footer
         if( pPage->footer )
         {
             rstartEl("style:footer", rList);
@@ -1229,7 +1229,7 @@ void HwpReader::makeMasterStyles()
             d->nPnPos = 0;
             rendEl("style:footer");
         }
-                                                  /* 기본으로 한다. */
+                                                  /* Will be the default. */
         else if( pPage->footer_odd && !pPage->footer_even )
         {
             rstartEl("style:footer", rList);
@@ -1264,7 +1264,7 @@ void HwpReader::makeMasterStyles()
             d->nPnPos = 0;
             rendEl("style:footer-left");
         }
-                                                  /* 기본으로 한다. */
+                                                  /* Will be the default. */
         else if( pPage->footer_even && !pPage->footer_odd )
         {
             rstartEl("style:footer-left", rList);
@@ -1307,11 +1307,11 @@ void HwpReader::makeMasterStyles()
 
 
 /**
- * 텍스트 스타일을 위한 프로퍼티들을 만든다.
+ * Create the properties for text styles.
  * 1. fo:font-size, fo:font-family, fo:letter-spacing, fo:color,
  *    style:text-background-color, fo:font-style, fo:font-weight,
  *    style:text-underline,style:text-outline,fo:text-shadow,style:text-position
- *    을 지원한다.
+ *    Support them.
  */
 void HwpReader::parseCharShape(CharShape * cshape)
 {
@@ -1381,11 +1381,11 @@ void HwpReader::parseCharShape(CharShape * cshape)
 
 
 /**
- * 실제 Paragraph에 해당하는 properties들을 만든다.
+ * Create the properties that correspond to the real Paragraph.
  * 1. fo:margin-left,fo:margin-right,fo:margin-top, fo:margin-bottom,
  *    fo:text-indent, fo:line-height, fo:text-align, fo:border
- *    가 구현됨.
- * TODO : 탭설정 => 기본값이 아닌것들만 선택적으로 설정해야 한다.
+ *    are implemented.
+ * TODO: Tab Settings => set values of properties only which doesn't have the default value
  */
 void HwpReader::parseParaShape(ParaShape * pshape)
 {
@@ -1453,7 +1453,7 @@ void HwpReader::parseParaShape(ParaShape * pshape)
 
 
 /**
- * Paragraph에 대한 스타일을 만든다.
+ * Make the style of the Paragraph.
  */
 void HwpReader::makePStyle(ParaShape * pshape)
 {
@@ -1523,8 +1523,8 @@ void HwpReader::makePStyle(ParaShape * pshape)
 
 
 /**
- * 페이지의 스타일을 만든다. 여기에는 header/footer, footnote등이 포함된다.
- * TODO : , fo:background-color(정보가 없다)
+ * Create a style for the page. This includes the header/footer, footnote and more.
+ * TODO: fo: background-color (no information)
  */
 void HwpReader::makePageStyle()
 {
@@ -1757,7 +1757,7 @@ void HwpReader::makePageStyle()
          rendEl("style:properties");
          rendEl("style:footer-style");
 
-    /* footnote style 이건 dtd에서는 빠졌으나, 스펙에는 정의되어 있다. REALKING */
+    /* Footnote style, but it fell in the dtd, the specification has been defined. REALKING */
          rstartEl("style:footnote-layout", rList);
 
          padd("style:distance-before-sep", sXML_CDATA,
@@ -1796,18 +1796,18 @@ void HwpReader::makeColumns(ColumnDef *coldef)
   {
         switch( coldef->separator )
         {
-             case 1:                           /* 얇은선 */
+             case 1:                           /* thin line */
                   padd("style:width", sXML_CDATA, "0.02mm");
                   //fall-through
-             case 3:                           /* 점선 */
+             case 3:                           /* dotted line */
                   padd("style:style", sXML_CDATA, "dotted");
                   padd("style:width", sXML_CDATA, "0.02mm");
                   break;
-             case 2:                           /* 두꺼운선 */
-             case 4:                           /* 2중선 */
+             case 2:                           /* thick line */
+             case 4:                           /* double line */
                   padd("style:width", sXML_CDATA, "0.35mm");
                   break;
-             case 0:                           /* 없음 */
+             case 0:                           /* None */
              default:
                   padd("style:style", sXML_CDATA, "none");
                   break;
@@ -1853,7 +1853,7 @@ void HwpReader::makeTStyle(CharShape * cshape)
 
 void HwpReader::makeTableStyle(Table *tbl)
 {
-// --------------- table ----------------
+// table
     TxtBox *hbox = tbl->box;
 
     padd("style:name", sXML_CDATA,
@@ -1870,7 +1870,7 @@ void HwpReader::makeTableStyle(Table *tbl)
     rendEl("style:properties");
     rendEl("style:style");
 
-// --------------- column ----------------
+// column
     for (size_t i = 0 ; i < tbl->columns.nCount -1 ; i++)
     {
         sprintf(buf,"Table%d.%c",hbox->style.boxnum, static_cast<char>('A'+i));
@@ -1886,7 +1886,7 @@ void HwpReader::makeTableStyle(Table *tbl)
         rendEl("style:style");
     }
 
-// --------------- row ----------------
+// row
     for (size_t i = 0 ; i < tbl->rows.nCount -1 ; i++)
     {
         sprintf(buf,"Table%d.row%" SAL_PRI_SIZET "u",hbox->style.boxnum, i + 1);
@@ -1902,7 +1902,7 @@ void HwpReader::makeTableStyle(Table *tbl)
         rendEl("style:style");
     }
 
-// --------------- cell ---------------------
+// cell
     for (std::list<TCell*>::iterator it = tbl->cells.begin(), aEnd = tbl->cells.end(); it != aEnd; ++it)
     {
         TCell *tcell = *it;
@@ -1920,14 +1920,14 @@ void HwpReader::makeTableStyle(Table *tbl)
         {
             switch( cl->linetype[2] )
             {
-                case 1:                           /* 가는실선 */
-                case 3:                           /* 점선 -> 스타오피스에는 점선이 없다. */
+                case 1:                           /* A thin solid line */
+                case 3:                           /* Dotted line -> LibreOffice, there is no dotted line */
                     padd("fo:border", sXML_CDATA,"0.002cm solid #000000");
                     break;
-                case 2:                           /* 굵은실선 */
+                case 2:                           /* Bold lines */
                     padd("fo:border", sXML_CDATA,"0.035cm solid #000000");
                     break;
-                case 4:                           /* 2중선 */
+                case 4:                           /* Double line */
                     padd("style:border-line-width", sXML_CDATA,"0.002cm 0.035cm 0.002cm");
                     padd("fo:border", sXML_CDATA,"0.039cm double #000000");
                     break;
@@ -1937,56 +1937,56 @@ void HwpReader::makeTableStyle(Table *tbl)
         {
             switch( cl->linetype[0] )
             {
-                case 1:                           /* 가는실선 */
-                case 3:                           /* 점선 -> 스타오피스에는 점선이 없다. */
+                case 1:                           /* A thin solid line */
+                case 3:                           /* Dotted line -> LibreOffice, there is no dotted line */
                     padd("fo:border-left", sXML_CDATA,"0.002cm solid #000000");
                     break;
-                case 2:                           /* 굵은실선 */
+                case 2:                           /* Bold lines */
                     padd("fo:border-left", sXML_CDATA,"0.035cm solid #000000");
                     break;
-                case 4:                           /* 2중선 */
+                case 4:                           /* Double line */
                     padd("style:border-line-width-left", sXML_CDATA,"0.002cm 0.035cm 0.002cm");
                     padd("fo:border-left", sXML_CDATA,"0.039cm double #000000");
                     break;
             }
             switch( cl->linetype[1] )
             {
-                case 1:                           /* 가는실선 */
-                case 3:                           /* 점선 -> 스타오피스에는 점선이 없다. */
+                case 1:                           /* A thin solid line */
+                case 3:                           /* Dotted line -> LibreOffice, there is no dotted line */
                     padd("fo:border-right", sXML_CDATA,"0.002cm solid #000000");
                     break;
-                case 2:                           /* 굵은실선 */
+                case 2:                           /* Bold lines */
                     padd("fo:border-right", sXML_CDATA,"0.035cm solid #000000");
                     break;
-                case 4:                           /* 2중선 */
+                case 4:                           /* Double line */
                     padd("style:border-line-width-right", sXML_CDATA,"0.002cm 0.035cm 0.002cm");
                     padd("fo:border-right", sXML_CDATA,"0.039cm double #000000");
                     break;
             }
             switch( cl->linetype[2] )
             {
-                case 1:                           /* 가는실선 */
-                case 3:                           /* 점선 -> 스타오피스에는 점선이 없다. */
+                case 1:                           /* A thin solid line */
+                case 3:                           /* Dotted line -> LibreOffice, there is no dotted line */
                     padd("fo:border-top", sXML_CDATA,"0.002cm solid #000000");
                     break;
-                case 2:                           /* 굵은실선 */
+                case 2:                           /* Bold lines */
                     padd("fo:border-top", sXML_CDATA,"0.035cm solid #000000");
                     break;
-                case 4:                           /* 2중선 */
+                case 4:                           /* Double line */
                     padd("style:border-line-width-top", sXML_CDATA,"0.002cm 0.035cm 0.002cm");
                     padd("fo:border-top", sXML_CDATA,"0.039cm double #000000");
                     break;
             }
             switch( cl->linetype[3] )
             {
-                case 1:                           /* 가는실선 */
-                case 3:                           /* 점선 -> 스타오피스에는 점선이 없다. */
+                case 1:                           /* A thin solid line */
+                case 3:                           /* Dotted line -> LibreOffice, there is no dotted line */
                     padd("fo:border-bottom", sXML_CDATA,"0.002cm solid #000000");
                     break;
-                case 2:                           /* 굵은실선 */
+                case 2:                           /* Bold lines */
                     padd("fo:border-bottom", sXML_CDATA,"0.035cm solid #000000");
                     break;
-                case 4:                           /* 2중선 */
+                case 4:                           /* Double line */
                     padd("style:border-line-width-bottom", sXML_CDATA,"0.002cm 0.035cm 0.002cm");
                     padd("fo:border-bottom", sXML_CDATA,"0.039cm double #000000");
                     break;
@@ -2323,14 +2323,14 @@ void HwpReader::makeCaptionStyle(FBoxStyle * fstyle)
                 case 0:
                     padd("fo:padding", sXML_CDATA,"0mm");
                     break;
-                case 1:                           /* 가는실선 */
-                case 3:                           /* 점선 -> 스타오피스에는 점선이 없다. */
+                case 1:                           /* A thin solid line */
+                case 3:                           /* Dotted line -> LibreOffice, there is no dotted line */
                     padd("fo:border", sXML_CDATA,"0.002cm solid #000000");
                     break;
-                case 2:                           /* 굵은실선 */
+                case 2:                           /* Bold lines */
                     padd("fo:border", sXML_CDATA,"0.035cm solid #000000");
                     break;
-                case 4:                           /* 2중선 */
+                case 4:                           /* Double line */
                     padd("style:border-line-width", sXML_CDATA,"0.002cm 0.035cm 0.002cm");
                     padd("fo:border", sXML_CDATA,"0.039cm double #000000");
                     break;
@@ -2340,56 +2340,56 @@ void HwpReader::makeCaptionStyle(FBoxStyle * fstyle)
         {
             switch( cell->linetype[0] )
             {
-                case 1:                           /* 가는실선 */
-                case 3:                           /* 점선 -> 스타오피스에는 점선이 없다. */
+                case 1:                           /* A thin solid line */
+                case 3:                           /* Dotted line -> LibreOffice, there is no dotted line */
                     padd("fo:border-left", sXML_CDATA,"0.002cm solid #000000");
                     break;
-                case 2:                           /* 굵은실선 */
+                case 2:                           /* Bold lines */
                     padd("fo:border-left", sXML_CDATA,"0.035cm solid #000000");
                     break;
-                case 4:                           /* 2중선 */
+                case 4:                           /* Double line */
                     padd("style:border-line-width-left", sXML_CDATA,"0.002cm 0.035cm 0.002cm");
                     padd("fo:border-left", sXML_CDATA,"0.039cm double #000000");
                     break;
             }
             switch( cell->linetype[1] )
             {
-                case 1:                           /* 가는실선 */
-                case 3:                           /* 점선 -> 스타오피스에는 점선이 없다. */
+                case 1:                           /* A thin solid line */
+                case 3:                           /* Dotted line -> LibreOffice, there is no dotted line */
                     padd("fo:border-right", sXML_CDATA,"0.002cm solid #000000");
                     break;
-                case 2:                           /* 굵은실선 */
+                case 2:                           /* Bold lines */
                     padd("fo:border-right", sXML_CDATA,"0.035cm solid #000000");
                     break;
-                case 4:                           /* 2중선 */
+                case 4:                           /* Double line */
                     padd("style:border-line-width-right", sXML_CDATA,"0.002cm 0.035cm 0.002cm");
                     padd("fo:border-right", sXML_CDATA,"0.039cm double #000000");
                     break;
             }
             switch( cell->linetype[2] )
             {
-                case 1:                           /* 가는실선 */
-                case 3:                           /* 점선 -> 스타오피스에는 점선이 없다. */
+                case 1:                           /* A thin solid line */
+                case 3:                           /* Dotted line -> LibreOffice, there is no dotted line */
                     padd("fo:border-top", sXML_CDATA,"0.002cm solid #000000");
                     break;
-                case 2:                           /* 굵은실선 */
+                case 2:                           /* Bold lines */
                     padd("fo:border-top", sXML_CDATA,"0.035cm solid #000000");
                     break;
-                case 4:                           /* 2중선 */
+                case 4:                           /* Double line */
                     padd("style:border-line-width-top", sXML_CDATA,"0.002cm 0.035cm 0.002cm");
                     padd("fo:border-top", sXML_CDATA,"0.039cm double #000000");
                     break;
             }
             switch( cell->linetype[3] )
             {
-                case 1:                           /* 가는실선 */
-                case 3:                           /* 점선 -> 스타오피스에는 점선이 없다. */
+                case 1:                           /* A thin solid line */
+                case 3:                           /* Dotted line -> LibreOffice, there is no dotted line */
                     padd("fo:border-bottom", sXML_CDATA,"0.002cm solid #000000");
                     break;
-                case 2:                           /* 굵은실선 */
+                case 2:                           /* Bold lines */
                     padd("fo:border-bottom", sXML_CDATA,"0.035cm solid #000000");
                     break;
-                case 4:                           /* 2중선 */
+                case 4:                           /* Double line */
                     padd("style:border-line-width-bottom", sXML_CDATA,"0.002cm 0.035cm 0.002cm");
                     padd("fo:border-bottom", sXML_CDATA,"0.039cm double #000000");
                     break;
@@ -2408,7 +2408,7 @@ void HwpReader::makeCaptionStyle(FBoxStyle * fstyle)
 
 
 /**
- * Floating 객체에 대한 스타일을 만든다.
+ * Create a style for the Floating objects.
  */
 void HwpReader::makeFStyle(FBoxStyle * fstyle)
 {
@@ -2534,14 +2534,14 @@ void HwpReader::makeFStyle(FBoxStyle * fstyle)
                 case 0:
                           padd("fo:border", sXML_CDATA, "none");
                     break;
-                case 1:                           /* 가는실선 */
-                case 3:                           /* 점선 -> 스타오피스에는 점선이 없다. */
+                case 1:                           /* A thin solid line */
+                case 3:                           /* Dotted line -> LibreOffice, there is no dotted line */
                     padd("fo:border", sXML_CDATA,"0.002cm solid #000000");
                     break;
-                case 2:                           /* 굵은실선 */
+                case 2:                           /* Bold lines */
                     padd("fo:border", sXML_CDATA,"0.035cm solid #000000");
                     break;
-                case 4:                           /* 2중선 */
+                case 4:                           /* Double line */
                     padd("style:border-line-width", sXML_CDATA,"0.002cm 0.035cm 0.002cm");
                     padd("fo:border", sXML_CDATA,"0.039cm double #000000");
                     break;
@@ -2551,56 +2551,56 @@ void HwpReader::makeFStyle(FBoxStyle * fstyle)
         {
             switch( cell->linetype[0] )
             {
-                case 1:                           /* 가는실선 */
-                case 3:                           /* 점선 -> 스타오피스에는 점선이 없다. */
+                case 1:                           /* A thin solid line */
+                case 3:                           /* Dotted line -> LibreOffice, there is no dotted line */
                     padd("fo:border-left", sXML_CDATA,"0.002cm solid #000000");
                     break;
-                case 2:                           /* 굵은실선 */
+                case 2:                           /* Bold lines */
                     padd("fo:border-left", sXML_CDATA,"0.035cm solid #000000");
                     break;
-                case 4:                           /* 2중선 */
+                case 4:                           /* Double line */
                     padd("style:border-line-width-left", sXML_CDATA,"0.002cm 0.035cm 0.002cm");
                     padd("fo:border-left", sXML_CDATA,"0.039cm double #000000");
                     break;
             }
             switch( cell->linetype[1] )
             {
-                case 1:                           /* 가는실선 */
-                case 3:                           /* 점선 -> 스타오피스에는 점선이 없다. */
+                case 1:                           /* A thin solid line */
+                case 3:                           /* Dotted line -> LibreOffice, there is no dotted line */
                     padd("fo:border-right", sXML_CDATA,"0.002cm solid #000000");
                     break;
-                case 2:                           /* 굵은실선 */
+                case 2:                           /* Bold lines */
                     padd("fo:border-right", sXML_CDATA,"0.035cm solid #000000");
                     break;
-                case 4:                           /* 2중선 */
+                case 4:                           /* Double line */
                     padd("style:border-line-width-right", sXML_CDATA,"0.002cm 0.035cm 0.002cm");
                     padd("fo:border-right", sXML_CDATA,"0.039cm double #000000");
                     break;
             }
             switch( cell->linetype[2] )
             {
-                case 1:                           /* 가는실선 */
-                case 3:                           /* 점선 -> 스타오피스에는 점선이 없다. */
+                case 1:                           /* A thin solid line */
+                case 3:                           /* Dotted line -> LibreOffice, there is no dotted line */
                     padd("fo:border-top", sXML_CDATA,"0.002cm solid #000000");
                     break;
-                case 2:                           /* 굵은실선 */
+                case 2:                           /* Bold lines */
                     padd("fo:border-top", sXML_CDATA,"0.035cm solid #000000");
                     break;
-                case 4:                           /* 2중선 */
+                case 4:                           /* Double line */
                     padd("style:border-line-width-top", sXML_CDATA,"0.002cm 0.035cm 0.002cm");
                     padd("fo:border-top", sXML_CDATA,"0.039cm double #000000");
                     break;
             }
             switch( cell->linetype[3] )
             {
-                case 1:                           /* 가는실선 */
-                case 3:                           /* 점선 -> 스타오피스에는 점선이 없다. */
+                case 1:                           /* A thin solid line */
+                case 3:                           /* Dotted line -> LibreOffice, there is no dotted line */
                     padd("fo:border-bottom", sXML_CDATA,"0.002cm solid #000000");
                     break;
-                case 2:                           /* 굵은실선 */
+                case 2:                           /* Bold lines */
                     padd("fo:border-bottom", sXML_CDATA,"0.035cm solid #000000");
                     break;
-                case 4:                           /* 2중선 */
+                case 4:                           /* Double line */
                     padd("style:border-line-width-bottom", sXML_CDATA,"0.002cm 0.035cm 0.002cm");
                     padd("fo:border-bottom", sXML_CDATA,"0.039cm double #000000");
                     break;
@@ -2688,7 +2688,7 @@ void HwpReader::makeChars(hchar_string & rStr)
 
 
 /**
- * 문단내에 특수문자가 없고 모든 문자가 동일한 CharShape를 사용하는 경우
+ * If no special characters in the paragraph and all characters use the same CharShape
  */
 void HwpReader::make_text_p0(HWPPara * para, bool bParaStart)
 {
@@ -2755,8 +2755,8 @@ void HwpReader::make_text_p0(HWPPara * para, bool bParaStart)
 }
 
 
-/**
- * 문단내에 특수문자가 없으나 문자들이 다른 CharShape를 사용하는 경우
+/*
+ * There is no special characters in the paragraph, but characters use different CharShapes
  */
 void HwpReader::make_text_p1(HWPPara * para,bool bParaStart)
 {
@@ -2839,7 +2839,7 @@ void HwpReader::make_text_p1(HWPPara * para,bool bParaStart)
 
 
 /**
- * 문단 내의 특수문자가 있으며 문자들이 다른 CharShape를 갖는 경우에 대해 처리
+ * Special characters are in the paragraph and characters use different CharShapes
  */
 void HwpReader::make_text_p3(HWPPara * para,bool bParaStart)
 {
@@ -2974,9 +2974,9 @@ void HwpReader::make_text_p3(HWPPara * para,bool bParaStart)
                     }
                     makeTab(static_cast<Tab *>(para->hhstr[n]));
                     break;
-                case CH_TEXT_BOX:                 /* 10 - 표/텍스트박스/수식/버튼/하이퍼텍스트 순 */
+                case CH_TEXT_BOX:                 /* 10 - ordered by Table/text box/formula/button/hypertext */
                 {
-/* 일단은 표만 처리하고, 수식은 text:p안에 들어가는 것으로 처리. */
+/* produce tables first, and treat formula as being in text:p. */
                     TxtBox *hbox = static_cast<TxtBox *>(para->hhstr[n]);
 
                     if( hbox->style.anchor_type == 0 )
@@ -3074,11 +3074,11 @@ void HwpReader::make_text_p3(HWPPara * para,bool bParaStart)
                     makeChars(str);
                     makeMailMerge(static_cast<MailMerge *>(para->hhstr[n]));
                     break;
-                case CH_COMPOSE:                  /* 23 - 글자겹침 */
+                case CH_COMPOSE:                  /* 23 - overlapping letters */
                     break;
                 case CH_HYPHEN:                   // 24
                     break;
-                case CH_TOC_MARK:                 /* 25 아래의 3개는 작업해야 한다. */
+                case CH_TOC_MARK:                 /* 25 Need to fix below 3 */
                     if( !pstart ) {STARTP;}
                     if( !tstart ) {STARTT;}
                     makeChars(str);
@@ -3106,7 +3106,7 @@ void HwpReader::make_text_p3(HWPPara * para,bool bParaStart)
 
 void HwpReader::makeFieldCode(hchar_string & rStr, FieldCode *hbox)
 {
-/* 누름틀 */
+/* Push frame */
     if( hbox->type[0] == 4 && hbox->type[1] == 0 )
     {
         padd("text:placeholder-type", sXML_CDATA, "text");
@@ -3117,7 +3117,7 @@ void HwpReader::makeFieldCode(hchar_string & rStr, FieldCode *hbox)
         rchars( OUString(rStr.c_str()));
         rendEl( "text:placeholder" );
     }
-/* 문서요약 */
+/* Document Summary */
     else if( hbox->type[0] == 3 && hbox->type[1] == 0 )
     {
         if (hconv(hbox->str3) == "title")
@@ -3145,7 +3145,7 @@ void HwpReader::makeFieldCode(hchar_string & rStr, FieldCode *hbox)
             rendEl( "text:keywords" );
         }
     }
-/* 개인정보 */
+/* Personal Information */
     else if( hbox->type[0] == 3 && hbox->type[1] == 1 )
     {
         if (hconv(hbox->str3) == "User")
@@ -3225,7 +3225,7 @@ void HwpReader::makeFieldCode(hchar_string & rStr, FieldCode *hbox)
 
 /**
  * Completed
- * 스타오피스에서는 북마크를 Reference로 참조하나 hwp에는 그 기능이 없다.
+ * In LibreOffice, refer bookmarks as reference, but hwp doesn't have the sort of feature.
  */
 void HwpReader::makeBookmark(Bookmark * hbox)
 {
@@ -3236,7 +3236,7 @@ void HwpReader::makeBookmark(Bookmark * hbox)
         pList->clear();
         rendEl("text:bookmark");
     }
-    else if (hbox->type == 1)                     /* 블록 북마크일 경우 시작과 끝이 있다 */
+    else if (hbox->type == 1)                     /* Block bookmarks days begin and end there if */
     {
         padd("text:name", sXML_CDATA, (hconv(hbox->id)));
         rstartEl("text:bookmark-start", rList);
@@ -3433,7 +3433,7 @@ void HwpReader::makeTable(TxtBox * hbox)
     pList->clear();
 
     Table *tbl = hbox->m_pTable;
-// ----------- column ----------------
+// column
     for (size_t i = 0 ; i < tbl->columns.nCount -1 ; i++)
     {
         sprintf(buf,"Table%d.%c",hbox->style.boxnum, static_cast<char>('A'+i));
@@ -3443,7 +3443,7 @@ void HwpReader::makeTable(TxtBox * hbox)
         rendEl("table:table-column");
     }
 
-// ----------- cell ----------------
+// cell
     int j = -1, k = -1;
     for (std::list<TCell*>::iterator it = tbl->cells.begin(), aEnd = tbl->cells.end(); it != aEnd; ++it)
     {
@@ -3455,7 +3455,7 @@ void HwpReader::makeTable(TxtBox * hbox)
                 rendEl("table:table-row");
                 k = j;
             }
-// --------------- row ----------------
+// row
             sprintf(buf,"Table%d.row%d",hbox->style.boxnum, tcell->nRowIndex + 1);
             padd("table:style-name", sXML_CDATA, ascii( buf ));
             rstartEl("table:table-row", rList);
@@ -3485,10 +3485,10 @@ void HwpReader::makeTable(TxtBox * hbox)
 
 
 /**
- * 텍스트박스와 테이블을 파싱한다.
- * 1. draw:style-name, draw:name, text:anchor-type, svg:width,
- *    fo:min-height, svg:x, svg:y
- * TODO : fo:background-color로 셀의 칼라 설정=>스타일에 들어가는 지 아직 모르겠다.
+ * Parses the text boxes and tables.
+ * 1. draw: style-name, draw: name, text: anchor-type, svg: width,
+ * Fo: min-height, svg: x, svg: y
+ * TODO: fo:background-color <= no idea whether the value of color setting->style is in it or not
  */
 void HwpReader::makeTextBox(TxtBox * hbox)
 {
@@ -3530,7 +3530,7 @@ void HwpReader::makeTextBox(TxtBox * hbox)
             Double2Str(WTMM(( hbox->box_ys + hbox->cap_ys) )) + "mm");
         rstartEl("draw:text-box", rList);
         pList->clear();
-        if( hbox->cap_pos % 2 )                   /* 캡션이 위쪽에 위치한다 */
+        if( hbox->cap_pos % 2 )                   /* The caption is on the top */
         {
             parsePara(hbox->caption.front());
         }
@@ -3597,7 +3597,7 @@ void HwpReader::makeTextBox(TxtBox * hbox)
     {
         rstartEl("draw:text-box", rList);
         pList->clear();
-/* 캡션이 존재하고, 위쪽에 있으면 */
+/* If captions are present and it is on the top */
         if( hbox->style.cap_len > 0 && (hbox->cap_pos % 2) && hbox->type == TBL_TYPE )
         {
             parsePara(hbox->caption.front());
@@ -3610,7 +3610,7 @@ void HwpReader::makeTextBox(TxtBox * hbox)
         {
             parsePara(hbox->plists[0].front());
         }
-/* 캡션이 존재하고, 아래쪽에 있으면 */
+/* If captions are present and it is on the bottom */
         if( hbox->style.cap_len > 0 && !(hbox->cap_pos % 2) && hbox->type == TBL_TYPE)
         {
             parsePara(hbox->caption.front());
@@ -3638,7 +3638,7 @@ void HwpReader::makeTextBox(TxtBox * hbox)
 
 
 /**
- * MathML로 변환해야 한다.
+ * It must be converted into MathML.
  *
  */
 void HwpReader::makeFormula(TxtBox * hbox)
@@ -3690,12 +3690,11 @@ void HwpReader::makeFormula(TxtBox * hbox)
     delete form;
 }
 
-
 /**
- * platform정보를 읽어들여서 href가 C:\나 D:\로 시작할 경우 리눅스나 솔라리스이면
- * C:\ => 홈으로, D:\ => 루트(/)로 바꾸어주는 작업이 필요하다. 이것은
- * 한컴이 도스에뮬레이터를 쓰기 때문이다.
+ * Read the platform information. if the platform is Linux or Solaris, it needs to change
+ * C: \ => Home, D: \ => changed to root (/). Because HWP uses DOS emulator.
  */
+
 void HwpReader::makeHyperText(TxtBox * hbox)
 {
     HyperText *hypert = hwpfile.GetHyperText();
@@ -3740,10 +3739,10 @@ void HwpReader::makeHyperText(TxtBox * hbox)
 
 
 /**
- * platform정보를 읽어들여서 href가 C:\나 D:\로 시작할 경우 리눅스나 솔라리스이면
- * C:\ => 홈으로, D:\ => 루트(/)로 바꾸었다. 이것은
- * 한컴이 도스에뮬레이터를 쓰기 때문이다.
+ * Read the platform information. if the platform is Linux or Solaris, it needs to change¶
+ * C: \ => Home, D: \ => changed to root (/). Because HWP uses DOS emulator.
  */
+
 void HwpReader::makePicture(Picture * hbox)
 {
     switch (hbox->pictype)
@@ -3790,7 +3789,7 @@ void HwpReader::makePicture(Picture * hbox)
                     Double2Str(WTMM( hbox->box_ys + hbox->style.margin[1][2] + hbox->style.margin[1][3] + hbox->cap_ys )) + "mm");
                 rstartEl("draw:text-box", rList);
                 pList->clear();
-                if( hbox->cap_pos % 2 )           /* 캡션이 위쪽에 위치한다 */
+                if( hbox->cap_pos % 2 )           /* Caption is on the top */
                 {
                     parsePara(hbox->caption.front());
                 }
@@ -3935,7 +3934,7 @@ void HwpReader::makePicture(Picture * hbox)
             if( hbox->style.cap_len > 0 )
             {
                 rendEl( "text:p");
-                if( !(hbox->cap_pos % 2))         /* 캡션이 아래쪽에 위치하면, */
+                if( !(hbox->cap_pos % 2))         /* Caption is at the bottom, */
                 {
                     parsePara(hbox->caption.front());
                 }
@@ -4013,13 +4012,13 @@ void HwpReader::makePictureDRAW(HWPDrawingObject *drawobj, Picture * hbox)
                      ZZPoint pt[3], r_pt[3];
                      for(i = 0 ; i < 3 ; i++ ){
                          pt[i].x = pal->pt[i].x - drawobj->property.rot_originx;
-                         /* 물리좌표계로 변환 */
+                         /* Convert to a physical coordinate */
                          pt[i].y = -(pal->pt[i].y - drawobj->property.rot_originy);
                      }
 
                 double rotate, skewX ;
 
-                     /* 2 - 회전각 계산 */
+                     /* 2 - rotation angle calculation */
                      if( pt[1].x == pt[0].x ){
                          if( pt[1].y > pt[0].y )
                              rotate = PI/2;
@@ -4036,7 +4035,7 @@ void HwpReader::makePictureDRAW(HWPDrawingObject *drawobj, Picture * hbox)
                          r_pt[i].y = (int)(pt[i].y * cos(-(rotate)) + pt[i].x * sin(-(rotate)));
                      }
 
-                     /* 4 - 휜각 계산 */
+                     /* 4 - Calculation of reflex angle */
                      if( r_pt[2].y == r_pt[1].y )
                          skewX = 0;
                      else
@@ -4074,7 +4073,7 @@ void HwpReader::makePictureDRAW(HWPDrawingObject *drawobj, Picture * hbox)
             }
             switch (drawobj->type)
             {
-                case HWPDO_LINE:                  /* 선 - 시작좌표, 끝좌표. */
+                case HWPDO_LINE:                  /* Line-starting coordinates, ending coordinates. */
                     if( drawobj->u.line_arc.flip & 0x01 )
                     {
                         padd("svg:x1", sXML_CDATA,
@@ -4108,7 +4107,7 @@ void HwpReader::makePictureDRAW(HWPDrawingObject *drawobj, Picture * hbox)
                     pList->clear();
                     rendEl("draw:line");
                     break;
-                case HWPDO_RECT:                  /* 사각형 - 시작위치, 가로/세로 */
+                case HWPDO_RECT:                  /* rectangle - the starting position, vertical/horizontal  */
                     if( !bIsRotate )
                     {
                         padd("svg:x", sXML_CDATA,
@@ -4150,8 +4149,8 @@ void HwpReader::makePictureDRAW(HWPDrawingObject *drawobj, Picture * hbox)
                     }
                     rendEl("draw:rect");
                     break;
-                case HWPDO_ELLIPSE:               /* 타원 - 시작위치, 가로/세로 */
-                case HWPDO_ADVANCED_ELLIPSE:      /* 변형된 타원 */
+                case HWPDO_ELLIPSE:               /* Ellipse - the starting position, vertical/horizontal */
+                case HWPDO_ADVANCED_ELLIPSE:      /* modified ellipse */
                 {
                     if( !bIsRotate )
                     {
@@ -4200,10 +4199,10 @@ void HwpReader::makePictureDRAW(HWPDrawingObject *drawobj, Picture * hbox)
                     break;
 
                 }
-                case HWPDO_ARC:                   /* 호 */
+                case HWPDO_ARC:                   /* Arc */
                 case HWPDO_ADVANCED_ARC:
                 {
-                    /* 호일경우에, 스타오피스는 전체 타원의 크기를 사이즈로 한다. */
+                    /*  If it is the arc, LibreOffice assumes the size as the entire ellipse size */
                          uint flip = drawobj->u.line_arc.flip;
                     if( !bIsRotate )
                     {
@@ -4310,7 +4309,7 @@ void HwpReader::makePictureDRAW(HWPDrawingObject *drawobj, Picture * hbox)
                     break;
 
                 }
-                     case HWPDO_CURVE: /* 곡선 : 다각형으로 변환. */
+                     case HWPDO_CURVE: /* Curve: converts to polygons. */
                 {
                     bool bIsNatural = true;
                     if( drawobj->property.flag >> 5 & 0x01){
@@ -4426,7 +4425,7 @@ void HwpReader::makePictureDRAW(HWPDrawingObject *drawobj, Picture * hbox)
                     break;
                 }
                 case HWPDO_CLOSED_FREEFORM:
-                case HWPDO_FREEFORM:              /* 다각형 */
+                case HWPDO_FREEFORM:              /* polygon */
                 {
                     bool bIsPolygon = false;
 
@@ -4569,8 +4568,8 @@ void HwpReader::makeLine(Line *   )
 
 
 /**
- * 입력-주석-숨은설명 : 사용자에게 숨은 설명을 보여준다.
- * 문단이 포함될 수 있으나, 단지 문자열만 뽑아내어 파싱한다.
+ * Input-comment-hidden description: shows a hidden explanation to the users.
+ * Parse out only strings, but it may contain paragraphs.
  */
 void HwpReader::makeHidden(Hidden * hbox)
 {
@@ -4603,7 +4602,7 @@ void HwpReader::makeHidden(Hidden * hbox)
 
 
 /**
- * 각주는 text:footnote, 미주는 text:endnote로 변환
+ * Converts footnote to text:footnote, endnote to text:endnote
  */
 void HwpReader::makeFootnote(Footnote * hbox)
 {
@@ -4693,7 +4692,7 @@ void HwpReader::makeShowPageNum()
         nPos = 2;
     else if( hbox->where == 3 || hbox->where == 6 )
         nPos = 3;
-    else                                          /* 이 경우가 존재하면 안된다. */
+    else                                          /* should not exist in this case. */
     {
         if( d->nPnPos == 1 )
             nPos = 1;


More information about the Libreoffice-commits mailing list