[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