• Welcome to Valhalla Legends Archive.
 

Product Language

Started by MyndFyre, August 17, 2004, 06:50 PM

Previous topic - Next topic

MyndFyre

Quote from: Yoni on August 16, 2004, 05:30 PM
3. Hmm, in your second post you're sending 'enUS' for "Product language", why? I think this needs to be zero.

I would think that we believe it to be product language in the packet, because it has signified the value of a language identifier in the past.  Not having data to test at the moment, but since I'm interested -- what has worked for you?

If you're using the DWORD 'enUS', has that worked?  Alternatively, if you're using U.S. English, are you using the region-language code 1033?  What has worked for you all?
QuoteEvery generation of humans believed it had all the answers it needed, except for a few mysteries they assumed would be solved at any moment. And they all believed their ancestors were simplistic and deluded. What are the odds that you are the first generation of humans who will understand reality?

After 3 years, it's on the horizon.  The new JinxBot, and BN#, the managed Battle.net Client library.

Quote from: chyea on January 16, 2009, 05:05 PM
You've just located global warming.

UserLoser.

Quote from: MyndFyre on August 17, 2004, 06:50 PM
Quote from: Yoni on August 16, 2004, 05:30 PM
3. Hmm, in your second post you're sending 'enUS' for "Product language", why? I think this needs to be zero.

I would think that we believe it to be product language in the packet, because it has signified the value of a language identifier in the past.  Not having data to test at the moment, but since I'm interested -- what has worked for you?

If you're using the DWORD 'enUS', has that worked?  Alternatively, if you're using U.S. English, are you using the region-language code 1033?  What has worked for you all?

Yes, it works!  I already stated that the Warcraft III client sends that (Alteast, for me and my settings)

UserLoser.

Enjoy:

.text:1900F9D0 GetProductLanguage proc near            ; CODE XREF: sub_19014DB0+73p
.text:1900F9D0                 mov     ecx, [ecx+38h]
.text:1900F9D3                 xor     eax, eax
.text:1900F9D5                 mov     ax, cx
.text:1900F9D8                 mov     wLanguage, ecx
.text:1900F9DE                 cmp     eax, 407h
.text:1900F9E3                 jg      short loc_1900FA08
.text:1900F9E5                 jz      short loc_1900F9FD
.text:1900F9E7                 sub     eax, 7
.text:1900F9EA                 cmp     eax, 0Fh
.text:1900F9ED                 ja      short loc_1900FA57
.text:1900F9EF                 movzx   eax, byte ptr ds:word_1900FA80[eax]
.text:1900F9F6                 jmp     ds:ProductLanguageTable[eax*4]
.text:1900F9FD ; ---------------------------------------------------------------------------
.text:1900F9FD
.text:1900F9FD loc_1900F9FD:                           ; CODE XREF: GetProductLanguage+15j
.text:1900F9FD                                         ; DATA XREF: .text:1900FA64o
.text:1900F9FD                 mov     dwProductLanguage, 'deDE'
.text:1900FA07                 retn
.text:1900FA08 ; ---------------------------------------------------------------------------
.text:1900FA08
.text:1900FA08 loc_1900FA08:                           ; CODE XREF: GetProductLanguage+13j
.text:1900FA08                 sub     eax, 409h
.text:1900FA0D                 cmp     eax, 0Dh
.text:1900FA10                 ja      short loc_1900FA57
.text:1900FA12                 movzx   ecx, ds:byte_1900FAA8[eax]
.text:1900FA19                 jmp     ds:ProductLanguageTable2[ecx*4]
.text:1900FA20 ; ---------------------------------------------------------------------------
.text:1900FA20
.text:1900FA20 loc_1900FA20:                           ; DATA XREF: .text:1900FA68o
.text:1900FA20                                         ; .text:1900FA90o
.text:1900FA20                 mov     dwProductLanguage, 'enUS'
.text:1900FA2A                 retn
.text:1900FA2B ; ---------------------------------------------------------------------------
.text:1900FA2B
.text:1900FA2B loc_1900FA2B:                           ; DATA XREF: .text:1900FA6Co
.text:1900FA2B                                         ; .text:1900FA94o
.text:1900FA2B                 mov     dwProductLanguage, 'esES'
.text:1900FA35                 retn
.text:1900FA36 ; ---------------------------------------------------------------------------
.text:1900FA36
.text:1900FA36 loc_1900FA36:                           ; DATA XREF: .text:1900FA70o
.text:1900FA36                                         ; .text:1900FA98o
.text:1900FA36                 mov     dwProductLanguage, 'frFR'
.text:1900FA40                 retn
.text:1900FA41 ; ---------------------------------------------------------------------------
.text:1900FA41
.text:1900FA41 loc_1900FA41:                           ; DATA XREF: .text:1900FA74o
.text:1900FA41                                         ; .text:1900FA9Co
.text:1900FA41                 mov     dwProductLanguage, 'itIT'
.text:1900FA4B                 retn
.text:1900FA4C ; ---------------------------------------------------------------------------
.text:1900FA4C
.text:1900FA4C loc_1900FA4C:                           ; DATA XREF: .text:1900FA78o
.text:1900FA4C                                         ; .text:1900FAA0o
.text:1900FA4C                 mov     dwProductLanguage, 'ptBR'
.text:1900FA56                 retn
.text:1900FA57 ; ---------------------------------------------------------------------------
.text:1900FA57
.text:1900FA57 loc_1900FA57:                           ; CODE XREF: GetProductLanguage+1Dj
.text:1900FA57                                         ; GetProductLanguage+40j
.text:1900FA57                                         ; DATA XREF: ...
.text:1900FA57                 mov     dwProductLanguage, 0
.text:1900FA61                 retn
.text:1900FA61 GetProductLanguage endp

.text:1900FA62                 align 4
.text:1900FA64 ProductLanguageTable dd offset loc_1900F9FD
.text:1900FA64                                         ; DATA XREF: GetProductLanguage+26r
.text:1900FA68                 dd offset loc_1900FA20
.text:1900FA6C                 dd offset loc_1900FA2B
.text:1900FA70                 dd offset loc_1900FA36
.text:1900FA74                 dd offset loc_1900FA41
.text:1900FA78                 dd offset loc_1900FA4C
.text:1900FA7C                 dd offset loc_1900FA57
.text:1900FA80 word_1900FA80   dw 600h                 ; DATA XREF: GetProductLanguage+1Fr
.text:1900FA82                 dw 201h
.text:1900FA84                 dw 306h
.text:1900FA86                 dw 606h
.text:1900FA88                 dw 406h
.text:1900FA8A                 dw 606h
.text:1900FA8C                 dw 606h
.text:1900FA8E                 dw 506h
.text:1900FA90 ProductLanguageTable2 dd offset loc_1900FA20
.text:1900FA90                                         ; DATA XREF: GetProductLanguage+49r
.text:1900FA94                 dd offset loc_1900FA2B
.text:1900FA98                 dd offset loc_1900FA36
.text:1900FA9C                 dd offset loc_1900FA41
.text:1900FAA0                 dd offset loc_1900FA4C
.text:1900FAA4                 dd offset loc_1900FA57
.text:1900FAA8 byte_1900FAA8   db 0                    ; DATA XREF: GetProductLanguage+42r

Yoni

Looks like you should listen to UserLoser.

I guess that selects the language of friends messages, among other things, maybe.

UserLoser.

#4
Quote from: Yoni on August 17, 2004, 09:02 PM
Looks like you should listen to UserLoser.

I guess that selects the language of friends messages, among other things, maybe.

Always listen to UserLoser.

'deDE': German/Dutch?  Someone who speaks one of them, verify.
'enUS': English
'esES': Spanish
'frFR': French
'itIT': Italian
'ptBR': Portuguese/Brazillian?  But messages come in English

Dark-Feanor

Quote
[22:24:52] [78:0] <From: UserLoser> Your friend UserLoser has entered Battle.net.
[22:25:14] [78:2] <From: UserLoser> Your friend UserLoser has exited Battle.net.
[22:25:42] [109:0] <From: UserLoser> Your friend UserLoser has entered Battle.net.
[22:25:46] [109:2] <From: UserLoser> Your friend UserLoser has exited Battle.net.
[22:25:54] [94:0] <From: UserLoser> Il tuo amico UserLoser si è connesso a Battle.net.
[22:28:41] [94:0] <From: UserLoser> Il tuo amico UserLoser ha abbandonato Battle.net.
[22:30:01] [62:0] <From: UserLoser> Il tuo amico UserLoser si è connesso a Battle.net.
[22:30:09] [62:2] <From: UserLoser> Il tuo amico UserLoser ha abbandonato Battle.net.
- Feanor[xL]
clan exile
Firebot
iago: "caps lock is like cruise control for cool"

Yoni

Quote from: UserLoser. on August 17, 2004, 09:37 PM
'deDE': German/Dutch?  Someone who speaks one of them, verify.
Has to be German (Deutsche). Dutch would be NL.

DeCeP7ioN

- Deception


K

I use the Name property of the .NET CultureInfo.CurrentCulture (or the selected Culture). Just have to remove the dash and convert it to a dword via the BitConverter class.

TangoFour

Quote from: Yoni on August 18, 2004, 03:05 AM
Quote from: UserLoser. on August 17, 2004, 09:37 PM
'deDE': German/Dutch?  Someone who speaks one of them, verify.
Has to be German (Deutsche). Dutch would be NL.

Definitely German

The confusion arises here: The German word for German is Deutsch, which is mainly spoken in Germany

Dutch on the other hand is the language mainly spoken in the Netherlands

The Dutch word for Dutch is Nederlands