Localization is crucial for reaching out to a global audience, however, it’s often an afterthought for most developers and non-trivial to implement. Traditionally, game developers have outsourced this task due to its time consuming nature.
But it doesn’t have to be this way.
Yan Cui will show you a simple technique his team used at GameSys which allowed them to localize an entire story-driven, episodic MMORPG (with over 5000 items and 1500 quests) in under an hour of work and 50 lines of code, with the help of PostSharp.
31. 6 sins of traditional approach to localization
large up-front development effort
not future proof
duplicated effort for each client platform
hard to get good test coverage
prone to regressions
pressure on QA resources
49. 6 sins of traditional approach to localization
large up-front development effort
not future proof
duplicated effort for each client platform
hard to get good test coverage
prone to regressions
pressure on QA resources
50. 6 sins of traditional approach to localization
large up-front development effort
not future proof
duplicated effort for each client platform
hard to get good test coverage
prone to regressions
pressure on QA resources
53. 1. ingest gettext (.po) file
2. check domain objects for
string fields/properties
3. use localized text when
transforming to DTO
4. repeat for next language
54. 1. ingest gettext (.po) file
2. check domain objects for
string fields/properties
3. use localized text when
transforming to DTO
4. repeat for next language
hey Watson!
I found a Pattern!
63. ps. we had a convention of suffix DTO types with VO
64. 6 sins of traditional approach to localization
large up-front development effort
not future proof
duplicated effort for each client platform
hard to get good test coverage
prone to regressions
pressure on QA resources
65. 6 sins of traditional approach to localization
large up-front development effort
not future proof
duplicated effort for each client platform
hard to get good test coverage
prone to regressions
pressure on QA resources
66. 6 sins of traditional approach to localization
large up-front development effort
not future proof
duplicated effort for each client platform
hard to get good test coverage
prone to regressions
pressure on QA resources
76. A. you
publisher
service
Q. where did TNT get the .po files from?
game designer
tool for generating new .po file
unchanged strings keep msgstr
changed strings has empty msgstr