KEMBAR78
Game Localization in Python | PDF
Walter Liu
2013/05/17
GAME LOCALIZATION BY
PYTHON
Isn’t game localization
EASY?
Why not use UNICODE?
My name is not <FullName>.
遊戲翻譯-踢牙老奶奶
Every sentence is 踢牙老奶奶.
EPIC FAIL!!!
Flow & Tools
Summary
AGENDA
EPIC FAIL !!!
One Day ….
Chinese > 300,0000 words
English > 500,000 words
1 expansion += 80,000 words
> 50,000 Lines
1003 匕首
1004 長劍
1005 皮甲
1006 木盾
1003 Dagger
1004
1006 木盾
WHAT DID WE FAIL IN OUR TEXT FILES
<data>xx</data>
<資料>xx</資料>
<data
>叉叉</data>
<data>叉叉/data>
WHAT DID WE FAIL IN OUR XML FILES
tell($uid, “請往東邊走”)
tell($uid“Please go east.”)
tell($uid,“Please go east.
”)
WHAT DID WE FAIL IN OUR SCRIPT FILES
 printf(“%s撿起%d金幣”, uid, gold);
 printf(“%d gold is picked up by %s.”, uid, gold);
 printf(“%d gold is picked up by .”, uid, gold);
WHAT WE FAILED IN PROGRAM
 NPC/Spell name
 in DB: 馬超
 In data: 馬超
 NPC/Spell name
 in DB: Ma cao
 In data: Ma Chao
WHAT WE FAILED IN ACROSS FILES
> 1500 bugs
> 9 months
1 EXPANSION
FLOW & TOOLS
WHY DO PYTHON GOOD AT THIS?
Good Unicode library
Fast string process
Easy to develop
Excellent string library
EXTRACT
new Original Text
old Original Text
old Translated Text
Delta Text for
translation
extraction bad log
extract.py
EXTRACT EXAMPLE
ORIG-old ORIG-new TRANS-old TRANS-delta
1003 匕首 1003 匕首 1003 Dagger
1004 長劍 1004 長劍 1004長劍
1005 皮甲 1005 皮甲
Extract log
ID 1004 not existed in old translation article.
MERGE/VERIFICATION
Last Translated Text
Delta Text for
translation
New translated text
Delta Translated
Text
Out source translation
verification bad log
merge.py
(merge/verification)
VERIFICATION LOG EXAMPLE
 1003 匕首
 1004 長劍
 1005 皮甲
 1006 木盾
 1003 Dagger
 1004
 1006 木盾
 Text ID 1004 is empty.
 Text ID 1005 is missing.
 Text ID 1006 didn’t translated.
Data Preparation
Extract text
Summarize
Out sourcing
BEFORE Our sourcing
Artist modify UI Use Merge tool
Use a script of
Emeditor To import
DB ImportDirectly useDirectly use
NPC data in DBscriptdataXml
Translated UI
strings
ini
Data importerXml importer Script importer SQL importerIni importer
Receive translation
files
Summarize name
table (Manual)
Data checker Script checkerName synchronizer
Upload to SVN 03
Test and fix
Upload to SVN 04
AFTER Our sourcing
Translated Text
Check Text format
Import/merge
Completed/Test
RESULT
2000 => 200bugs
9 => 3 months
1 EXPANSION
Design your game I18N well.
Use/write tools to localize your game.
Python is a good tool for this.
Design a good localization flow to help
your team.
SUMMARY

Game Localization in Python