Author | Message | Time |
---|---|---|
Barabajagal | Has anyone tried using a language other than English as their system's language on older games like DRTL and W2BN? I'm making my bot locale-friendly (adding language packs for the entire thing), and it's going to really mess up detection of bnet messages if bnet sends English text when the entire bot's in German. I'm also curious as to whether using 0x50 for W2BN connection makes a difference... | October 26, 2008, 2:41 AM |
Yegg | I was working on this myself, and noticed something odd. First off, I haven't had the time to continue my research on it as I had a million other things come up, but at some point in time I'll get back to it. The odd thing I noticed might not be odd, I haven't really looked into it. Bnetdocs lists the last part of SID_LOCALEINFO as: [quote](STRING) Abbreviated language name (STRING) Country name (STRING) Abbreviated country name (STRING) Country (English)[/quote] First off, the abbreviated language name is "ENU" in most cases. ISO 639-1 states that "en" or "eng" is English. "enu" is not an abbreviation for anything. It seems like a good assumption would be that the "ENU" is short for "English United States". Country name is equal to "1" for USA. It might always be equal to "1" considering ISO 639 has ISO 639-1, 639-2, and 639-3. For English, ISO 639-1 is "en" and ISO 639-2 is "eng". Battle.net uses the "en" abbreviation, so perhaps that's where the "1" for Country name comes from. ISO 3166-1 lists USA as "USA". Those are some notes I've taken on locale info on Battle.net so far. When I get around to it, I'll look into other languages. I was originally trying to do it on another computer (long story) and things basically went haywire and I got pissed, took a break, and haven't had time to get back to it since. Good luck on this, shouldn't be any serious work but I'll keep an eye on this thread. | October 26, 2008, 3:26 AM |
Barabajagal | Oh, huh... I used the GetLocaleInfoA API, using LOCALE_SABBREVLANGNAME, LOCALE_SNATIVECTRYNAME, LOCALE_SABBREVCTRYNAME, and LOCALE_SENGCOUNTRY for each field respectively. I guess my Country Name was wrong... Apparently one's supposed to use LOCALE_ICOUNTRY there. Still, I logged in to D1 using German locales and got DEU, 49, DEU, and Germany from a packet log and it still displayed everything in English, though it sent me to Diablo DEU-1. | October 26, 2008, 4:23 AM |
Yegg | Well, the DEU matches ISO 639. But why is is DEU twice for Germany, but for United States it's ENU and USA? Any idea how they get the 49? Update: The number (1 for USA or Canada, 49 for Germany, etc.) represents international phone code. | October 26, 2008, 4:58 AM |
Barabajagal | The first is language name and the second is country name... | October 26, 2008, 6:55 AM |
Yegg | [quote author=Andy link=topic=17695.msg180155#msg180155 date=1225004134] The first is language name and the second is country name... [/quote] In Germany's case, "DEU" is both the language name and country name according to ISO-639 and ISO-3166. "ENU" is not the language name of any country, nor is it the name of any country by ISO. | October 26, 2008, 2:20 PM |
Barabajagal | I already said, it's all the GetLocaleInfoA API. ISO standards have nothing to do with it. And all of this is moot because I'm not asking about the packet, I'm asking about why BNet doesn't use the locale, even in the actual client. | October 26, 2008, 7:33 PM |