[IGC 2016] 띵소프트 이득규 - 삼국지조조전 Online L10N 개발 Case Study

161
0 링링 - 링링 : http://www.rexv.org /
  • Upload

    -
  • Category

    Career

  • view

    925
  • download

    0

Transcript of [IGC 2016] 띵소프트 이득규 - 삼국지조조전 Online L10N 개발 Case Study

PowerPoint

0: http://www.rexv.org/

L10N Case Study[ Online ]

Inven Game Conference

0 . , //

Online 35 3 , . , IGC

, , //

0

(I2:Highwind) / / / 1 , CS ,

Career1999 PS1 SRPG2000 EP.1PC 2D MMO2005 EP.1PC 2D MMO2006 IP PC 3D MMO2008 PC 3D MO20104PC 3D MMO2013CEOMotiflowIP / Mobile2014 OnlineMobile SRPG

Localized Title1999 ( )2003 EP.1, , (/)2016 Online, , (/),

= = CEO: 0

(?) 3 2

0 IP SRPG

AOS: 2016-10-06 / IOS: 2016-10-10

!

0[] , + . . I18N

Online Online case study , . , . . ,

, , .

0

. .

/ /

///

8

INDEX 160 Pages

1ChapterAbout L10N

3Chapter+

5Chapter

7Chapter/

2Chapter

4Chapter

6Chapter

8Chapter

Chapter [1]

About L10NInven Game Conference

1 / L10N = Localization

: L10N

: / , , , , , , (Culturalization)

Online

1 L10N 1 Build 1+ Language: ( + ), , Online Live ( M17N L10N )

M17N = Multilingualization 1 Build N Language Online CBT2

I18N = Internationalization

1L10N : , , , DB,

UI / /

, , UI ,

1L10N , / , (UTC +9, +8), , , , , (, Currency) , (ISO 4217) / Common Sense / , , , , , , , Etc

1L10N / , , , ,

1L10N, ?, Fix / -> -> QA -> : L10N ( ) / LQA

1L10N, ? Online , , : HR

-> ->

, ,

1 Online L10N : [, , ], [, , ] : , , (): , ,

, , (/),

M17N? L10N? M17N M17N L10N : ( )5 1 :

1 L10N : Unicode

: /

TO

1 L10N , ,

Texts == Label Only: (X), (0)

UI : / /

: Fujitsu Color Doctor , /

:

1 VS = , = Online

1 Online VS

1 Online VS , , ( )

, ,

7, 8/9.

, , , . , . , , , . . . , , . .

: . . . .: . ( _

: , , , , : (, ), ( , ) -> 23

1 13 KOEI 9(2003) /

2016, 13 + (1998) ,

, ,

7, 8/9.

, , , . , . , , , . . . , , . .

: . . . .: . ( _

: , , , , : (, ), ( , ) -> 24

1

->

7, 8/9.

, , , . , . , , , . . . , , . .

: . . . .: . ( _

: , , , , : (, ), ( , ) -> 25

1

( )

->

7, 8/9.

, , , . , . , , , . . . , , . .

: . . . .: . ( _

: , , , , : (, ), ( , ) -> 26

1 Online 500 108

19 ( ) 3: , 3: , , Director : Director/: :

35 ( ) 4: / / 5: / : / : KOEI

930 27

1

: VS

: VS

,

1 STAFF ROLL / CREDIT Credit

35+19 ,

? ,

: ,

29

1 / / BI BI

CI

/

1, , , , . ,

, ,

1 / EULA (End-User License Agreement) ,

Online : Nexon Korea / : Nexon Japan / : . , , : Nexon Taiwan / : Nexon Korea / ( )

,

, .32

1 E-mail / PW - 3 3 , -

, .33

1Nexon TOY, , , , , , , SDK

TOY

, , , ,

1Nexon TOY

Chapter [2]

Inven Game Conference

2 : 180~230 , , ,

X / O / ()

: HP, MP, EXP

KBS /

2 UI 1/2byte .

) X / , O /

: / / -> -> -> , (KOEI )

2 UI UI

Shrink

, , ,

: 18pt. (Bytes) (Bytes)/81288//1620181810104624241212 101088 50 * 350 * 350 * 450 * 4

2 but (=) glossary . /

12 12 , , ,

, , , > (, )

2 /

/ . KOEI

/ + +

, , Gap []

2

, EP1 (2016/08, xlsx 17MB), ,

, /

2 /// / , (?) //

, QA , , TO

Chapter [3]

+ Inven Game Conference

3 , 2016 : HP -> / MP ->

UI Clamp X, shrink O UI

Key Korean

3 CI, BI

: : , Diet

3 3+ L10N Dynamic(Unity) Font Key NGUI Localized Label

//

/ / / ,

+ 1 more something47

3 ) KEYKoreanJapaneseChineseTraditional ChineseEnglish!!Take this!, ., .Darn...!!Hmph!!!Argh!, , .\n . \n ., .\n . \n .\n\n\n~\n\nPant, pant\nWe can't take this any longer. They'll kill us all\nif we don't turn the tide., .\n ., .\n .\nAh, those Yellow Turbans.\nThey're relentless. .\n ! .\n !\n\n\nReinforcements will be here soon.\nWe must hold out until then! , \n \n. ,\n \n.\n\n\n\nI'm sorry to say this,\nbut the royal forces only care\nabout their own safety.

48

3 Select Process

,

, key backup /

Merge +

3 Merge Process +

Parse and Exchange Test / UI

Key QA

3 Data DrivenPython 2.7 C# , , , /

3 Source Data Format.xls / ,

.cs Unity C#

.prefab / .scene UI Unity

.xml / .jsonXML: + xls Export + JSON: json import.

.csv

etcAOS/iOS Native /

3 Output Data Format.xls

.csv

3 Select Output Data Pipeline TimeStamp Setting Back Up

.duplicated.xls[] ( )

.deleted.xls[]

.added.xls[]

3 Merge Output Data Pipeline.translated.xls[] added

.merged.xls[] translated + duplicated

.csv[] merged

3 Select Matching Rule , 2016/08, 2.1MB

Field [~] [#]

, data [===] ( )

Unity: Localized Label Text Label / Label Localized Label Label

C#: Localized Text

3 Event Only Localize Rule () 2016/08, xls 15MB

2016/09 1,140

-> 1 + 2

But

3 Event Only Localize Rule : added added translated translated

+

3 AOS java native, iOS Object-C native, level but Merge . (=) iOS SVN

QA .

3 +

3 2 .kr: .jp:

,

BI

.

3: , / DB

1/2byte Online ( )

3: / ID , , Nexon MMORPG /

: but :

(10 ), , , , , , , (/), Online

3 / / /

: , , , (/) :

/

3 / / +

,

: +

3 19

3 Raw data (regex) +

: Suck : Suck, Suuck, suck, SUCK, ssuck : m/(s+\w*)(u+[a-z|0-9]*)(c+[a-z|0-9]*)k/: http://www.rexv.org/

?: : , , , , , , ,

3 (Unicode equivalence) NFD (Normalization Form Canonical Decomposition) (U+304C) (U+304B) + (U+3099) (U+1EC7) e (U+0065) + (U+0302) + (U+0323) (U+AC00~U+D7A3) (U+C704) (U+110B) + (U+1171) (U+D55C) (U+1112) + (U+1161) + (U+11AB) e (U+0071) + (U+0307) + (U+0323) e (U+0071) + (U+0323) + (U+0307)

NFD : , , , , , , , : m/([|]+[-|-|-]*)(+|+|+|+)(+[-|-|-]*)([||s]*)/NFD ,

3 : -- (Syllable-Initial-Peak-Final Encoding Approach) 5.2 2002 . 8 Noto Sans CJK

, (Hanyang private use area code) / PUA 5000

3 (Unicode equivalence) NFKD (Normalization Form Compatibility Decomposition) (U+FB01) f (U+0066) + i (U+0069) (U+017F) s (U+0073) (U+1E9B) s (U+0073) + (U+0307)

()

3 /

) / .

/

?

Chapter [4]

Inven Game Conference

4 Rasterize TypeRaster VS VectorRaster: aka. Bitmap, Pixmap, Dot, Pixel ,

Vector: ,

4 Bitmap VS Vector : Rester

: ,

Post Script Type . Adobe .

4TTF vs OTFTTF (True Type Font)1980 Apple Adobe PS Type 1 , 1991 Windows 3.1 Hinting Instruction: 2 : , , 1 (bold, italic)

OTF (Open Type Font)1996 Adobe + Microsoft (2007 ISO )True Type + Post Script: 3 : , , 2 , Quadratic B-Splines 2 Cubic Bzier Curves3

3.1 6 . 75

4TTF vs OTF

Circle and quadratic bezier8 + 8 Point

Circle and cubic bezier4 + 8 Point

TTF vs OTF ?Hinting TTF : / HD Hinting OTF Cubic Bezier (B-Spline subset)http://www.truetype-typography.com/articles/ttvst1.htm

76

4TTF OTF

Online / TTF, OTF () TTF OTF

77

4 Online Case StudyFont on Unity3D (Dynamic Font / Unity Font) Free Type Font Rendering Engine https://www.freetype.org/TTF, OTF IVS

Dynamic Font on Online Online NGUI/UGUI Unity Font Unicode Freetype 2.1 3.1 9.0? 5.2

/ , : /: + : /

PT 78

4,

Online

(2015 ) ( ) (~ ) ( ) +

79

4, https://sourceforge.net/projects/fontforge/http://fontforge.org/

80

4 OTF 65,536 , , ( ),

, , http://www.unicode.org/charts/PDF/UAC00.pdf , Unicode 5.1(2007) 1100:11FF, A960:A97F, D7B0:D7FF http://std.dkuug.dk/jtc1/sc2/wg2/docs/n3242.pdf

9.0.0 (2016.06.21, 128,172 )

81

4 () 2 : 12MB: 24.2MB 16MB [ vs ] 11MB ()

: 4.5MB

[] 2 : 819KB2048*2048 ETC1 2 TTF 2

Subset 3.51MB357KB3MB 970KB462KB0.5MB 11.5MB1.83MB9.2MB 12.7MB2.13MB9.6MB

82

4 Subset Font Makerhttp://opentype.jp/subsetfontmk.htm . Windows / Mac BM TTF/OTF .

83

4 [] // VBA mergeC++ +

[] KS X 1001:2004 (KS C 5601) 2350, 4888 EUC-KR()ISO-2022-KR( )CP949 (EUC-KR + 8,822, Windows )

84

4 [] 3,4 +

[] 2 2

[] IVS

85

4IVS? Ideographic Variation Sequence(?) 2 1 (1 , 2 type ) ( )

KS, JIS, GB, CNS, TCVN () (CJK, CJKV)

subset ,

86

Chapter [5]

Inven Game Conference

5 ? ? ,

5 /

19 ( )

/

/

SDK ( )

89

5 1101010101011100 1010111000000000 14 10

19 21 28

Unicode

{[(21) + ]28} + + 0xAC00

90

5 http://www.asiafont.com/ ( )1 5 ( ) 2 , 3 save ( 4 )

( ): 100 ( ): 300 Online PC ( ): 700 700

TTF OTF ( )

91

5

92

5 460 ? .

noto sans subset , . But 99 ASC II 2,350 11,172AC00:D7A3 = 19 21 28 , 4,888 2,128 20,637

. . .

93

5 / + , , () key : ,

) VS

5 :

QA

() !

/

95

5 : ? , : QA : QA

2 ,

,

: !

96

5 : (?) ! !, !! ! !

, ,

97

5 / / / / / , , /

() : [] [ ] : , : ( ) : : , ,

,

Unicode ,

()

5

()public static string krSuffixTest(string name, int type) {char last = name[name.Length - 1];string result;if (last < 0xAC00 || last > 0xD7A3) {return name;}

switch (type) {case 1:result = (last - 0xAC00) % 28 > 0 ? "" : "";break;case 2:result = (last - 0xAC00) % 28 > 0 ? "" : "";break;case 3:result = (last - 0xAC00) % 28 > 0 ? "" : "";break;case 4:int ksf = (last - 0xAC00) % 28;if (ksf == 0 || ksf == 8) {result = "";} else {result = "";}break;case 5:result = (last - 0xAC00) % 28 > 0 ? "" : "";break;case 6:result = (last - 0xAC00) % 28 > 0 ? "" : "";break;case 7:result = (last - 0xAC00) % 28 > 0 ? "" : "";break;case 8:result = (last - 0xAC00) % 28 > 0 ? "" : "";break;default:return name;}return name+result;}5

(Stringbuilder )

: : (),

, (X), (O), (O), (O), (O), (O) , , , , , , , ()

5

CBT2 () ? . .101

5 (EULA) ,

()

5 : , (K-IDEA)

103

5 : Push Notification: 3

/ 3,000

( 9~ 8) 3,000

1,000

PM, , , ( 50 3 2)

104

5 : = 2014.05.28 , 2014.11.29 , 12681 50 50 8

, [ ]

Opt-in

(KISA)

: 105

5 :

106

5 :

107

5 : , ,

108

5 : Online , . 11

109

5 : 50 1 1

( )

110

5 : /

111

5 :

( ) ., . , ,

,

112

5 : ( ) .

. .

. .

.

113

5 : 9~ 8

, , ,

/

114

5 : 50 4 () : ()

& 1,000

115

5 : , , 1,000

/, , 14

http://spam.kisa.or.kr/kor/notice/noticeView.jsp?p_No=10&b_No=10&d_No=72http://www.kisa.or.kr/jsp/common/downloadAction.jsp?bno=49&dno=43&fseq=1

116

Chapter [6]

Inven Game Conference

6 /

/ 35 ( )

/

/

, BM,

118

6 (Morisawa) vs Fontworks 1924 /DTP (?)

20 ,

UI Nexon Japan Fontworks

119

6 Fontworkshttp://fontworks.co.jp/

, GroupY( ) LETS 1/3 Subscription ( ) ( )1~4 IVS

.

120

6 1 2

1byte / 2byte

1~4 ?

121

6 1 M17N : 1-2 : L10N

1 1

2

6 Latishttp://latisglobal.com/

6 1Cycle (1/2)Company Thingsoft/1 Thingsoft1 Thingsoft ThingsoftNexon Korea , QANexon NetworksQA [] [] []LatisNexon KoreaThingsoft Thingsoft / 1Nexon Japan Thingsoft / 2KOEI TECMO (2016/08~) Thingsoft

6 1Cycle (2/2)Company KOEI TECMO Nexon Japan QANexon NetworksNexon KoreaQA [ ]Nexon JapanKOEI TECMO [ ], Thingsoft Shipping, Thingsoft , , Thingsoft

(10~)

6 1Cycle (2/2) 1~2 () / (TO )

QA 1 : QA 2 : 3 :

/ 17.9MB (2016/08 ) : xls 1,140 15.8MB : xls 1 2.1MB

3~6

http://ft-lab.ne.jp/cgi-bin-unity/wiki.cgi?page=unity_ngui_label

Case

Label Size

( )private string m_ConvWrapText(UILabel label, string orgText) { string orgStr = orgText; string wrapStr = ""; if (!label.Wrap(orgStr, out wrapStr)) { wrapStr = label.text; } if (wrapStr.Equals(orgStr)) return orgStr; string str = orgStr.Replace("\r\n", "\n"); string kinsokuStr = "";6

6 () while (true) { string [] strArray = str.Split('\n'); string wrapStrE = ""; string newStr = ""; for (int i = 0; i < strArray.Length; i++) { if (i > 0) newStr += "\n"; string strL = strArray[i]; if (!label.Wrap(strL, out wrapStrE)) { wrapStrE = strL; } if (wrapStrE.Equals(strL)) { newStr += strL; continue; } string [] strLineArray = wrapStrE.Split('\n'); string newLineStr = ""; for (int j = 0; j < strLineArray.Length; j++) { string strLine = strLineArray[j]; string str0 = strLine[0].ToString(); if (newLineStr.Length > 0 && kinsokuStr.IndexOf(str0) >= 0) { string lastStr = newLineStr.Substring(newLineStr.Length - 1, 1); newLineStr = newLineStr.Substring(0, newLineStr.Length - 1); strLine = lastStr + strLine; } if (newLineStr.Length > 0) newLineStr += "\n"; newLineStr += strLine; } newStr += newLineStr; } str = newStr; if (!label.Wrap(str, out wrapStrE)) { wrapStrE = str; } if (str.Equals(wrapStrE)) break; } return str;}

6 ()GameObject mainG = GameObject.Find("/UI Root/message_label") as GameObject;UILabel label = mainG.GetComponent("UILabel") as UILabel;string orgText = label.text;

label.text = m_ConvWrapText(label, orgText);// Garbage , System.Text.StringBuilder , StringBuilder Replace()

,

6 L10N . 2 ( ) < :

http://www.slideshare.net/RyoheiTokimura/unite2015-u-gui

130

6 L10N / / /

/ .

131

6

. () etc

6

() Nexon Japan AOS, iOS

6 , 3 9 / 6

/

. : :

134

6 () Nexon Japan

/ , ,

2 2

NEXON JAPAN

6 3, 9 / , (3 : 10/1 ~ 3/31, 9 : 4/1 ~ 9/30) , / , / / / . (3/31, 9/30)( )

6 , , 1~2 ( , , , , () ) (60 ) ( , . )

6 / 20 , 20

, > 20 > > 20

6

'' . . ? ? ? / 139

6 []

[][]

20[][]

140

6 ,

:

, / , 5,000 20 2%5,000 10

1,000 200 1,000 2/10

6 ( ) , ,

, ,

6

,

6 ,

, () ()

Chapter [7]

, Inven Game Conference

7 / ,

/ .

/

SDK , BM

146

7 Lionbridgehttp://www.lionbridge.com /

7, , / -> //

: + ->

: ->

: -> 2/3 .

7

.

/ , / ,

7 /: + (O) , (X) , (KOEI)

/:

, , UI Zhang Liao- Temporary Base, ShouchunS. Chun TGreen Dragon Crecent Blade

7 : Shit / Suck / Asshole : Darn American

7, 1CycleCompany 1 [] []Thingsoft ( ) QA 1 [1] [2] []Thingsoft ( )

QA 2Lion Bridge 2Lion Bridge ,Lion Bridge Thingsoft

L10N Hold 2015 11

76 : Hold

: , Hold

: Hold

7 5 (0+, 6+, 12+, 15+, 18+) , , , (TV CF, ) ( )

, , , +18 50*50 pixel 45*45 pixel , ,

154

7: 18+Sex : , , / : , , , , : : , : ,, 15+Sex : , , / : , , / : : +18 12+Sex : / : , : : 6+ : / 0+ 0+

155

7

156

Chapter [8]

Inven Game Conference

8 L10N , , ?

Online L10N Online

[]

8Referencehttp://www.unicode.org/Public/UNIDATA/EastAsianWidth.txthttp://terms.naver.com/entry.nhn?docId=2270340&cid=51173&categoryId=51173&expCategoryId=51173

, , [ ], , 2013.3.10https://ko.wikipedia.org/wiki/%ED%99%95%EC%9E%A5_%ED%95%9C%EA%B8%80_%EC%9E%90%EB%AA%A8http://terms.naver.com/entry.nhn?docId=795707&cid=46674&categoryId=46674

https://namu.wiki/w/%ED%95%9C%EA%B5%AD%EC%96%B4%EC%9D%98%20%EC%A1%B0%EC%82%AC

http://www.truetype-typography.com/http://www.unicode.org/versions/index.htmlhttp://ko.wikipedia.org/wiki/KS_X_1001https://hansanghoo.gitbooks.io/webfont_study/content/chapter3.htmlhttps://www.google.com/get/noto/http://www.unicode.org/reports/tr37/https://ko.wikipedia.org/wiki/%ED%95%9C%EC%A4%91%EC%9D%BC_%ED%86%B5%ED%95%A9_%ED%95%9C%EC%9E%90

8Referencehttp://cjk-code.comhttp://std.dkuug.dk/JTC1/SC2/wg2/docs/n2243.pdfhttp://academic.naver.com/search.nhn?field=0&dir_id=1&query=%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C&gk_qdt=&qvt=1&q_title=&q_author=&q_journal=&q_source=&q_keyword=&q_volume_issue=&q_applicationnum=https://developers.googleblog.com/2014/07/noto-cjk-font-that-is-complete.htmlhttp://std.dkuug.dk/jtc1/sc2/wg2/docs/n3242.pdfhttps://ko.wikipedia.org/wiki/%EC%98%9B%ED%95%9C%EA%B8%80http://terms.naver.com/entry.nhn?docId=795707&cid=46674&categoryId=46674https://kldp.org/node/89864