Toon posts:

[c++] _tsetlocale

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben hier eventjes aan het proberen geslagen om met locale's te werken... Maar dat lukt niet echt goed :S.

Wat ik geprobeerd heb:

_tsetlocale( LC_ALL, _T("Chinese_Taiwan.950") );

maar dit geeft NULL terug... Wat niet echt klopt want als ik in mijn landinstellingen ga zien staat die wel geinstalleerd (vinkje aan "950 (ANSI/OEM - Traditional Chinese Big5)).

Nu de hamvraag: Hoe kan ik in mijn programmaatje Chinese karakters/menu's enzo tonen?
Bvb Opera en IE kunnen zonder problemen deze karakters aan... Hoe moet ik dat regelen??

Wat mijn idee was: zet de locale tegoei, en doe gewoon alsof je ansi-string output... Maar ik kan al die locale niet goed zetten?


PS: Waarom Chinees? Omdat dit natuurlijk het meest voor de hand liggende vreemde taal is die ik kon bedenken :p
PS2: ik heb Windows 2000 NL

  • Elijan9
  • Registratie: Februari 2004
  • Laatst online: 09:28
Wil je een bepaalde locale kunnen gebruiken in je applicatie, dan zal je ook de vertaal-bestanden moeten maken voor de desbetreffende taal, denk ik... Ik lees niet terug of je deze al hebt gemaakt...?

Verder is het voor alle verdere zinnen in je applicatie vanzelfsprekend dat je de "_T()" functie gebruikt om de string ter vertalen naar de huidige locale, maar dit geldt nu net niet voor de string waarmee je je locale selecteert... (Omdat deze niet current-locale afhankelijk is/zou mogen zijn...)

War is when the young and stupid are tricked by the old and bitter into killing each other. - Niko Bellic


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:56

.oisyn

Moderator Devschuur®

Demotivational Speaker

Die _T() is een macro die een string definieert als char of wchar_t, afhankelijk van de unicode setting in je project. Net als dat TCHAR een typedef is van char of wchar_t, afhankelijk van dezelfde setting. Dit gebeurt allemaal at compile-time, en de gekozen locale (run-time) heeft daar dus weinig mee te maken

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Topicstarter
Akkoord allemaal :p

Hoe zeggen ze dat weer? "triviale details weggelaten voor de essentie weer te geven"?


Het probleem is dat ik hier via "landinstellingen" die dingen geinstalleerd heb (een pak .nls-jes percies), en dat ik percies die locale niet kan kiezen 8)7.

Ook kan ik niet dadelijk iets vinden dat daarop duidt in de msdn wat ik dan eindelijk zou moeten doen?

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 09-04 22:08
MSDN: "chinese_taiwan.950"

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • epic007
  • Registratie: Februari 2004
  • Laatst online: 11-03 09:21
Verwijderd schreef op 09 mei 2004 @ 14:05:
Nu de hamvraag: Hoe kan ik in mijn programmaatje Chinese karakters/menu's enzo tonen?
Om chinese/japanse etc characters te gebruiken moet je je project als unicode compileren. Verder zitten die karakters niet in alle fonts, bijvoorbeeld japanse zitten in "MS Gothic".

Bij het creeren van een font HFONT CreateFont(...); moet je bij fdwCharSet aangeven SHIFTJIS_CHARSET, dan wordt een font gekozen met de juiste karakters erin. Nu moet je alleen nog een unicode-string hebben waarin die karakters gebruikt worden.
Pagina: 1