package Ġtw . ta ib unk es imi . ch ho eta igi . database . dicts . mary kn oll ta i eng Ċ Ċ import Ġorg . apache . commons . csv . CSV Format Ċ import Ġtw . ta ib unk es imi . ch ho eta igi . database . Ch ho e Ta igi Database Output Settings Ċ import Ġtw . ta ib unk es imi . ch ho eta igi . database . dicts . mary kn oll ta i eng . entry . M ary kn oll T ai Eng Dict Out Entry Ċ import Ġtw . ta ib unk es imi . ch ho eta igi . database . dicts . mary kn oll ta i eng . entry . M ary kn oll T ai Eng Dict Src Entry Ċ import Ġtw . ta ib unk es imi . ch ho eta igi . database . joined . Joined Dict ColumnName Ċ import Ġtw . ta ib unk es imi . lib . lo maj ich o ano ann . Ta igi L om aji Ku iku Cho ano ann Ċ import Ġtw . ta ib unk es imi . lib . lo maj ich o ano ann . po j fix . Po j Input Fix Ċ import Ġtw . ta ib unk es imi . lib . lo maj ich o ano ann . po j fix . Po j Input Fix Type Ċ import Ġtw . ta ib unk es imi . util . io . Csv IO Ċ import Ġtw . ta ib unk es imi . util . io . X ls x IO Ċ import Ġjava . util .* Ċ Ċ object ĠM ary kn oll T ai Eng Dict Processor Ġ{ ĊĠĠĠ Ġprivate Ġconst Ġval ĠSRC _ FILENAME Ġ= Ġ" Mk dictionary 2 0 1 3 _ fix 2 0 2 1 0 7 1 2 . xlsx " ĊĊĠĠĠ Ġfun Ġrun (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdict Ġ= Ġload Dict () ĊĠĠĠĠĠĠĠ Ġval Ġprocessed Dict Array Ġ= Ġprocess Dict ( dict ) ĊĠĠĠĠĠĠĠ Ġsave Dict ( processed Dict Array ) ĊĠĠĠĠĠĠĠ Ġreturn Ġprocessed Dict Array . count () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Dict (): ĠArrayList < M ary kn oll T ai Eng Dict Src Entry > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresource Ġ= ĠThread . currentThread (). context ClassLoader . getResource ( SRC _ FILENAME ) ĊĠĠĠĠĠĠĠ Ġprintln (" path : Ġ" Ġ+ Ġresource !!. path ) ĊĊĠĠĠĠĠĠĠ Ġval Ġread X ls Dict ArrayList Ġ= ĠX ls x IO . read ( resource . path , Ġ" TD ", Ġtrue ) ĊĊĠĠĠĠĠĠĠ Ġval Ġdict Array Ġ= ĠArrayList < M ary kn oll T ai Eng Dict Src Entry >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( record Column ArrayList Ġin Ġread X ls Dict ArrayList ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsrc Entry Ġ= ĠM ary kn oll T ai Eng Dict Src Entry () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Entry . id Ġ= Ġrecord Column ArrayList [ 0 ] ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġfixed Po j Ġ= Ġrecord Column ArrayList [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (" :: ", Ġ"") Ġ Ġ// Ġremove Ġ":: " Ġsymbol Ġfor Ġsub cat og ory ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ("* ", Ġ" nn ") Ġ Ġ// Ġfix ĠPO J ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ("+ ", Ġ" o ") Ġ Ġ// Ġfix ĠPO J ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (" 1 1 ", Ġ" 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (" 2 2 ", Ġ" 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (" 3 3 ", Ġ" 3 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (" 4 4 ", Ġ" 4 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (" 5 5 ", Ġ" 5 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (" 7 7 ", Ġ" 7 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (" 8 8 ", Ġ" 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfixed Po j Ġ= ĠPo j Input Fix . fix Ku iku Only Po j With Delimiter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfixed Po j , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnum Set . of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPo j Input Fix Type . ON N _ SI A _ CHO _ O ON N , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPo j Input Fix Type . PH IN NIM _ NN _ SI A _ CHO _ TO AS IA _ N , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPo j Input Fix Type . SI AN N TI AU _ SO O JI _ BO _ TI _ IM CHAT _ BO E ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Entry . po j Ġ= Ġfixed Po j ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Entry . ho ab un Ġ= Ġrecord Column ArrayList [ 2 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Entry . english Ġ= Ġrecord Column ArrayList [ 3 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Entry . pageNumber Ġ= Ġ"" Ġ// ĠTODO : ĠNeed Ġto Ġadd Ġpage Ġnumber Ġin Ġsource Ġfile ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdict Array . add ( src Entry ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġdict Array ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprocess Dict ( dict Array : ĠArrayList < M ary kn oll T ai Eng Dict Src Entry >): ĠList < M ary kn oll T ai Eng Dict Out Entry > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprocessed Dict Array Ġ= ĠArrayList < M ary kn oll T ai Eng Dict Out Entry >() ĊĊĠĠĠĠĠĠĠ Ġvar Ġid Count Ġ= Ġ 1 ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( src Entry : ĠM ary kn oll T ai Eng Dict Src Entry Ġin Ġdict Array ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġout Entry Ġ= ĠM ary kn oll T ai Eng Dict Out Entry () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . id Ġ= Ġid Count . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Count ++ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . po j Input Ġ= Ġsrc Entry . po j . trim () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . po j Unicode Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTa igi L om aji Ku iku Cho ano ann . only Po j Input To Po j Unicode ( out Entry . po j Input ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . k ip Input Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTa igi L om aji Ku iku Cho ano ann . only Po j Input To K ip Input ( out Entry . po j Input ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . k ip Unicode Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTa igi L om aji Ku iku Cho ano ann . only K ip Input To K ip Unicode ( out Entry . k ip Input ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . ho ab un Ġ= Ġsrc Entry . ho ab un . trim () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . english Ġ= Ġsrc Entry . english . trim () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . pageNumber Ġ= Ġsrc Entry . pageNumber . trim () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprocessed Dict Array . add ( out Entry ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġsort ĊĠĠĠĠĠĠĠ Ġreturn Ġprocessed Dict Array . sorted With ( compare By Ġ{ Ġit . id . toInt () Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsave Dict ( formatted Dict Array : ĠList < M ary kn oll T ai Eng Dict Out Entry >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdict : ĠArrayList < ArrayList < String >> Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġfor Ġ( out Entry : ĠM ary kn oll T ai Eng Dict Out Entry Ġin Ġformatted Dict Array ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġentry Array : ĠArrayList < String > Ġ= ĠArrayList () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . id . let Ġ{ Ġentry Array . add ( it ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . po j Unicode . let Ġ{ Ġentry Array . add ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . po j Input . let Ġ{ Ġentry Array . add ( it ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . k ip Unicode . let Ġ{ Ġentry Array . add ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . k ip Input . let Ġ{ Ġentry Array . add ( it ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . ho ab un . let Ġ{ Ġentry Array . add ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . english . let Ġ{ Ġentry Array . add ( it ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . pageNumber . let Ġ{ Ġentry Array . add ( it ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdict . add ( entry Array ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCh ho e Ta igi Database Output Settings . SAVE _ FOLDER _ DATABASE Ġ+ ĠCh ho e Ta igi Database Output Settings . timestamp Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/" Ġ+ ĠCh ho e Ta igi Database Output Settings . FILENAME _ DICT _ OUTPUT _ MARY KN OL L _ TA I EN G _ S UT IAN ĊĠĠĠĠĠĠĠ Ġval Ġcsv Format : ĠCSV Format Ġ= ĠCSV Format . DEFAULT . with Header ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJo ined Dict ColumnName . DICT _ COLUMN _ NAME _ DICT _ WORD _ ID , ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠJo ined Dict ColumnName . DICT _ COLUMN _ NAME _ PO J _ UNICODE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJo ined Dict ColumnName . DICT _ COLUMN _ NAME _ PO J _ INPUT , ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠJo ined Dict ColumnName . DICT _ COLUMN _ NAME _ K IP _ UNICODE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJo ined Dict ColumnName . DICT _ COLUMN _ NAME _ K IP _ INPUT , ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠJo ined Dict ColumnName . DICT _ COLUMN _ NAME _ HO AB UN , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJo ined Dict ColumnName . DICT _ COLUMN _ NAME _ EN GB UN , ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠJo ined Dict ColumnName . DICT _ COLUMN _ NAME _ PAGE _ NUMBER ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠCsv IO . write ( path , Ġdict , Ġcsv Format ) ĊĠĠĠ Ġ} Ċ }