Below is my guide on how to publish your SC2 custom map into all locales and regions. I ran through this process myself and it wasn’t as intuitive as I expected it would be, so I’ve wrote this up to help explain how it’s done.
Blizzard has recently been upgrading player accounts for some developers to give them global access to publish maps in all regions of the world. This may become obsolete once SC2 is patched for global access (coming soon).
This tutorial assumes you’re using local enUS, but it can be adapted to any locale. Anyways, here’s how it’s done.
1) First, get an authenticator for your account. This is completely unrelated to publishing; it’s just a good idea.
2) Localize your map. This is done by making duplicate folders for each locale. To do this, start by opening your map in the editor, and save it a new location as “StarCraft II Component Folders” (there is an option from the pull down list to save it as this instead of the standard “StarCraft II Map Files”).
Once you save your map, you can browse to its folder location and you’ll see folders like Base.SC2Data, Images, and your local folder enUS.SC2Data.
You now must copy your enUS.SC2Data folder for each locale, and rename each folder to match each local. This will copy your game strings and text into the other languages.
Here’s a list of each locale and an image of what your folders will look when you’re done.
Next find the file ComponentList, right click and open it using notepad (NOT the Sc2 editor). You need to make a duplicate entry of GameText for each locale. Here’s what your XML will look like:
Save your changes to this file, and now open the ComponentList file using the Sc2 editor. Once it’s open, save the map as a regular map file. Now you’re ready to publish!
3) You need to download the client for each region. Go to battle.net and look at your games, you should see a client for each region (if Blizzard has activated this on your account).
Here’s what you would see on your list of game downloads.
Download the clients you need, and save them in a NEW folder. Download the clients for North America (NA), Europe (EU), Taiwan (TW), and Southeast Asia & ANZ (SEA).
Do not download Latin America (LA) because it’s the same global region as North America. Do not download Russia (RU) because it’s the same global region as Europe.
You’ll need to let each client download in full before you publish. I hope you have enough hard drive space. :)
4) Log in and publish!
When you want to log into the SC2 client for another region, you’ll need to update your game’s language settings. If you don’t, you’ll get an error on logging in that you’re missing a language pack. To do this, go to your windows documents folder:
C:\Users\<User Name>\Documents\StarCraft II
Open file variables.txt, find these properties:
localeidassets=enUS
localeiddata=enUS
Change these properties to match your global region, save the file, and now start the corresponding client.
For publishing, you should open your map file using the SC2 editor corresponding with the region you’re uploading to.
When you publish it will ask you what locale you want to publish to. I’m honestly not sure how much this local choice matters for publishing, and it’s confusing because some of your language locale settings don’t exist on the list of locales for publishing. Here’s a list of what I set for my variables.txt for each region, and what locale I published to for each region.
A note about China. China has its own region, so your account can’t be granted access to it. To log into China you’ll need Blizzard to send you new account information just for China, log in to your new account and download the Chinese client.
Now you’re done. Sit back and enjoy players writing reviews in languages you can’t read!
There might be easier ways to switch gateways such as using gateway switcher, but I didn't want to bother at that time, so I took the "install 50gb of starcraft" approach instead. It turns out, at least for me, that if you don't do anything in map and just upload it through editor it doesn't suffer from any localization issues. So all I had to do was to just publish my source map in all regions without any of localization work (except for china, for that I needed to do some checkbox checking in localization options).
About variables.txt (the only thing that I needed to change), I've found here that replacing localeassets and data values with "???" will make it work for everything.
And yes, it's amusing to see reviews that you can't read. Not that I'd want to hang in there anyway since even navigating through b-net menus in those regions is a nightmare due to latency.
1. If your map has only one locale, you only need this one locale.
So, copy pasting enUS with your tutorial makes no sense. If your map has exactly 1 locale, this locale is used in every client. Thankfully this has been added a few patches ago (might have been 1.3?).
2. If you decide to copy paste the locales when you only got one locale, you only need to:
Map -> Locale -> Modify Locales -> check all locales, OK, then save the map.
In the import module, you can see what you have done when you show the "reserved" files.
I'm not sure which locale it copies from, when you already have multiple locales in your map. I just tested it and it's not the current active one. So, it might be a hard-coded order.
So.... basically you only need a few seconds for that in case you even want to do these unnecessary things. ;)
Anyway, your second part shows nicely how the locales are integrated into the map.
@ installing SC2 multiple times:
You don't need to do that either.
I use it to switch from Europe to America and have no problems with it (in its recent version).
So, downloading the client for every language isn't required. You only need one installation. You don't even need to download the locales.
ALTERNATIVE TO THE RELOCALIZER:
If you don't like to use a program, you can switch your editor's gateway via registry. But I don't recommend this, when you have no idea of the registry or how to paste the code into a registry file that you only need to execute. <<code>>
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Blizzard Entertainment\StarCraft II Editor\Preferences]
"BattleNetHost"="us.logon.battle.net"
<</code>>
The host needs to be changed accordingly to the other gateways. For example, Europe would be "eu.logon.battle.net". I think here on mapster there is a list with all gateway addresses, too. I think it was created during beta 2.5 years ago.
edit:
Small addition:
You need exactly one locale or all locales in your map. So you only need to do this, if you want to translate your map. But then you need to update the text in every (yes, EVERY) locale.
If you map is not finished, you shouldn't really bother doing this.
Thanks for the feedback! The info you posted here just goes to show how much there is to know about the localization process. I knew there had to be tricks and shortcuts, but I had trouble finding a single repository of information on how to do it.
I'm not surprised there's a better way to get a map working in all locales. When I was trying to figure it out, I posted my first map version to EU and tested it with no problems, but my first half dozen reviews were all 1 star ratings about a param/value/ error which happens when the localized strings aren't available for your locale. I ended up doing it the way I described above as a fool-proof method to ensure that there would be no param/value/ errors. At the time I was more concerned with getting a working version up asap rather than finding the quickest method.
SKROW’S GUIDE TO GLOBAL PUBLISHING
Below is my guide on how to publish your SC2 custom map into all locales and regions. I ran through this process myself and it wasn’t as intuitive as I expected it would be, so I’ve wrote this up to help explain how it’s done.
Blizzard has recently been upgrading player accounts for some developers to give them global access to publish maps in all regions of the world. This may become obsolete once SC2 is patched for global access (coming soon).
This tutorial assumes you’re using local enUS, but it can be adapted to any locale. Anyways, here’s how it’s done.
1) First, get an authenticator for your account. This is completely unrelated to publishing; it’s just a good idea.
2) Localize your map. This is done by making duplicate folders for each locale. To do this, start by opening your map in the editor, and save it a new location as “StarCraft II Component Folders” (there is an option from the pull down list to save it as this instead of the standard “StarCraft II Map Files”).
Once you save your map, you can browse to its folder location and you’ll see folders like Base.SC2Data, Images, and your local folder enUS.SC2Data.
You now must copy your enUS.SC2Data folder for each locale, and rename each folder to match each local. This will copy your game strings and text into the other languages.
Here’s a list of each locale and an image of what your folders will look when you’re done.
Next find the file ComponentList, right click and open it using notepad (NOT the Sc2 editor). You need to make a duplicate entry of GameText for each locale. Here’s what your XML will look like:
Save your changes to this file, and now open the ComponentList file using the Sc2 editor. Once it’s open, save the map as a regular map file. Now you’re ready to publish!
3) You need to download the client for each region. Go to battle.net and look at your games, you should see a client for each region (if Blizzard has activated this on your account).
Here’s what you would see on your list of game downloads.
Download the clients you need, and save them in a NEW folder. Download the clients for North America (NA), Europe (EU), Taiwan (TW), and Southeast Asia & ANZ (SEA).
Do not download Latin America (LA) because it’s the same global region as North America. Do not download Russia (RU) because it’s the same global region as Europe.
You’ll need to let each client download in full before you publish. I hope you have enough hard drive space. :)
4) Log in and publish! When you want to log into the SC2 client for another region, you’ll need to update your game’s language settings. If you don’t, you’ll get an error on logging in that you’re missing a language pack. To do this, go to your windows documents folder:
C:\Users\<User Name>\Documents\StarCraft II
Open file variables.txt, find these properties:
localeidassets=enUS
localeiddata=enUS
Change these properties to match your global region, save the file, and now start the corresponding client.
For publishing, you should open your map file using the SC2 editor corresponding with the region you’re uploading to.
When you publish it will ask you what locale you want to publish to. I’m honestly not sure how much this local choice matters for publishing, and it’s confusing because some of your language locale settings don’t exist on the list of locales for publishing. Here’s a list of what I set for my variables.txt for each region, and what locale I published to for each region.
North America: variables.txt- enUS, Publish- enUS
Europe: variables.txt- enGB, Publish- enGB
Southeast Asia: variables.txt- enSG, Publish- enUS
Taiwan: variables.txt- zhTW, Publish- enUS
China: variables.txt- zhCN, Publish- zhCN
A note about China. China has its own region, so your account can’t be granted access to it. To log into China you’ll need Blizzard to send you new account information just for China, log in to your new account and download the Chinese client.
Now you’re done. Sit back and enjoy players writing reviews in languages you can’t read!
Gratz on being featured!
There might be easier ways to switch gateways such as using gateway switcher, but I didn't want to bother at that time, so I took the "install 50gb of starcraft" approach instead. It turns out, at least for me, that if you don't do anything in map and just upload it through editor it doesn't suffer from any localization issues. So all I had to do was to just publish my source map in all regions without any of localization work (except for china, for that I needed to do some checkbox checking in localization options).
About variables.txt (the only thing that I needed to change), I've found here that replacing localeassets and data values with "???" will make it work for everything.
And yes, it's amusing to see reviews that you can't read. Not that I'd want to hang in there anyway since even navigating through b-net menus in those regions is a nightmare due to latency.
Regarding your tutorial:
1. If your map has only one locale, you only need this one locale.
So, copy pasting enUS with your tutorial makes no sense. If your map has exactly 1 locale, this locale is used in every client. Thankfully this has been added a few patches ago (might have been 1.3?).
2. If you decide to copy paste the locales when you only got one locale, you only need to:
Map -> Locale -> Modify Locales -> check all locales, OK, then save the map.
In the import module, you can see what you have done when you show the "reserved" files.
I'm not sure which locale it copies from, when you already have multiple locales in your map. I just tested it and it's not the current active one. So, it might be a hard-coded order.
So.... basically you only need a few seconds for that in case you even want to do these unnecessary things. ;)
Anyway, your second part shows nicely how the locales are integrated into the map.
@ installing SC2 multiple times:
You don't need to do that either.
To switch to another gateway, you can use:
Simon's Relocalizer
I use it to switch from Europe to America and have no problems with it (in its recent version).
So, downloading the client for every language isn't required. You only need one installation. You don't even need to download the locales.
ALTERNATIVE TO THE RELOCALIZER:
If you don't like to use a program, you can switch your editor's gateway via registry. But I don't recommend this, when you have no idea of the registry or how to paste the code into a registry file that you only need to execute.
<<code>>
Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\Blizzard Entertainment\StarCraft II Editor\Preferences] "BattleNetHost"="us.logon.battle.net" <</code>>
The host needs to be changed accordingly to the other gateways. For example, Europe would be "eu.logon.battle.net". I think here on mapster there is a list with all gateway addresses, too. I think it was created during beta 2.5 years ago.
edit:
Small addition:
You need exactly one locale or all locales in your map. So you only need to do this, if you want to translate your map. But then you need to update the text in every (yes, EVERY) locale.
If you map is not finished, you shouldn't really bother doing this.
@Ahli634: Go
Thanks for the feedback! The info you posted here just goes to show how much there is to know about the localization process. I knew there had to be tricks and shortcuts, but I had trouble finding a single repository of information on how to do it.
I'm not surprised there's a better way to get a map working in all locales. When I was trying to figure it out, I posted my first map version to EU and tested it with no problems, but my first half dozen reviews were all 1 star ratings about a param/value/ error which happens when the localized strings aren't available for your locale. I ended up doing it the way I described above as a fool-proof method to ensure that there would be no param/value/ errors. At the time I was more concerned with getting a working version up asap rather than finding the quickest method.
Thanks so much for this guide! You have no idea how much trouble you've spared me. You're awesome-thanks again!