[IGC 2016] 띵소프트 이득규 - 삼국지조조전 Online L10N 개발 Case Study
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