game localization in python

Post on 15-Jan-2015

334 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

A story about bad game localization, and how we use Python to improve our productivity.

TRANSCRIPT

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 textDelta 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 toolUse a script of

Emeditor To importDB ImportDirectly useDirectly use

NPC data in DBscriptdataXmlTranslated UI

stringsini

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

top related