This document discusses using Python for game localization. It describes failures in localizing text, XML, and script files across different files. It then outlines a localization workflow using Python tools to extract text differences, merge translations, and verify outputs. Key benefits of Python for localization are its Unicode library, fast string processing, and ease of development. The workflow helped reduce bugs from over 2000 to 200 and localization time from 9 months to 3 months for one expansion.
11. 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
12. NPC/Spell name
in DB: 馬超
In data: 馬超
NPC/Spell name
in DB: Ma cao
In data: Ma Chao
WHAT WE FAILED IN ACROSS FILES
15. WHY DO PYTHON GOOD AT THIS?
Good Unicode library
Fast string process
Easy to develop
Excellent string library
16. EXTRACT
new Original Text
old Original Text
old Translated Text
Delta Text for
translation
extraction bad log
extract.py
17. 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.
18. 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)
19. 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.
21. 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
23. 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