Isela Mosqueira

Localization Project Management

Menu

Skip to content
  • About Me
  • Resume
  • Projects
    • Leadership
    • Data-Driven Decisions
    • Website Localization
    • Software I18n and L10n
    • Translation Technology
    • Video Localization
    • Desktop Publishing
    • Social Localization and Translation Crowdsourcing
    • L10n High School Outreach

Software I18n and L10n

 Localizing Top-Down Car Racing Game in C#

My teammates (Gretchen Mina, Madelyn Sanchez) and I were tasked with localizing a program of our choice. We elected for a “Top-Down Car Racing” game, since, at first glance, the game seemed to contain minimal strings to localize and seemed to have simple controls which would (in theory) allow for an easy(ish) internationalization experience.

We set out to localize the game into three languages: Spanish (es-MX), Japanese (ja-JA), and Russian (ru-RU). We planned to use C# with Visual Studio (VS) and GitHub to share are updated versions of the file with each other. During our first deep dive of the game, we realized that the “YOU WIN” messages the player sees when they crash are images, not strings, and would therefore need to be edited with DTP (using Adobe PhotoShop) and re-uploaded to appear in the localized versions.

Our team then created our first iteration of a plan:

We ran into a number of issues while working on this project. In this blog post, I will focus mainly on the issues and solutions I handled, but for different perspectives, please click here for a look at Gretchen’s blog post and here to read Madelyn’s.

Challenge #1: GitHub Sharing

This was the first time for all of us using GitHub, so initially we were unsure about how effectively we could use this tool we were all learning for the first time. Thankfully, a few things proved to be very useful in our endeavor to make GitHub work for us in this project.

First, the fact that we had already used Gitlab for a previous project helped greatly. Although GitHub’s design and processes are slightly different than Gitlab’s, the essential actions and general ideas are the same.

Next, I found an extremely helpful and easy-to-follow GitHub tutorial video, which allowed me to learn all of the processes to create a project, share it, and to create new branches, commit new changes, send a push request, accept pull requests, and merge to the master. This tutorial explains all these concepts in an extremely easy-to-understand way, which especially benefits those of us who had never before used either GitHub or any Git repository.

Challenge #2: Language Picker

There were various issues with our language picker. First, the drop-down language picker we added completely covered the “Start” button so that the user could select the language they wanted, but they couldn’t start the game. Also, the game started as soon as the program was run, without time for the user to select their language. Last, once we got the language picker moved over so that the “Start” button was accessible, we were able to have the user select their language, but then they couldn’t play the game because the keyboard controls (arrow keys to move left and right) were disabled to allow for the language picker.

The original game started with the ResetGame(); function, which was causing the game to start as soon as the program was run. In order to fix this, I commented ResetGame(); out and called the gameOver(); function at run time instead. This allowed for the user to still use the keys, since in the gameOver(); function, the keys are enabled:

btnStart.Enabled = true;

langPicker.Enabled = true;

I also edited the ResetGame(); function to read:

This allowed for those buttons to be disabled only at the time of reset.

Lessons Learned

Our team learned a number of excellent lessons from localizing this program.

First, GitHub is an extremely valuable tool for file sharing and working collaboratively on a program with a team of people. However, extreme caution should be taken when updating the code and ensuring that the most recent version is getting uploaded as it should be, especially if this is your first time interacting with GitHub (or a Git repository)!

Additionally, one can search the internet trying to find a solution to an issue for days, but sometimes you just need to look within your own code for a solution. This was the case for me when solving for our language picker issue, and realizing that the btnStart.Enabled = true; and langPicker.Enabled = true; strings in the gameOver(); function provided the clues I needed to try to run the same commands but running “false” instead of “true” meant that the keys were locked, whereas the btnStart.Enabled = true; and langPicker.Enabled = true; strings allowed the user to interact with the buttons.

In sum, this project provided our group with incredible insight into the best practices and pain points of internationalizing and localizing software programs.

Sources Used

Top-Down Car Racing Game by David Mohr: https://github.com/mooict/Top-Down-Car-Racing-game-in-windows-form

“How to use GitHub with Visual Studio 2022” by Shad Sluiter: https://youtu.be/BWqpTpo1kfw

Widgets

LinkedIn

Proudly powered by WordPress | Theme: Illustratr by WordPress.com.