c + + - Internationalisering med MSWin ressourcer (dialog/menu/strenge)

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg undrer mig over, hvilken tilgang til i18n folk har fundet nyttige til Windows-emner, der typisk er inkluderet i en native C ++/WTL MSWin-applikation via ressource compileren?


Jeg har en del erfaring, om end i 2005, med den 'traditionelle' tilgang til at håndtere disse ting, groft sagt: duplikere ressourcefilen og oversætte til et andet sprog, dialoger og alt. Min erfaring med dette var, at det er lidt smertefuldt. Vil sætte pris på nogen feedback om positive erfaringer og hvordan disse blev opnået.


Jeg har også haft en del erfaring med GNU gettext, som synes at gøre et betydeligt bedre job adskille udviklerens bekymringer fra oversætterens bekymringer. Desværre mener jeg, at brugen af ​​GNU gettext i Windows-miljøet ville betyde at opgive de nyttige værktøjer der kommer indbygget i Visual Studio til at producere applikationsmenuer og dialoger osv. Eventuelle forslag til hvordan dette kan overvinde vil blive værdsat.


Et specifikt problem, jeg har, er, at MSWin ikke har/bruger layoutguider (som jeg er opmærksom på). Det betyder, at oversættelse af en dialogboks til et andet sprog sandsynligvis vil kræve dimensionelle ændringer i dialogboksen for at rumme enhver stigning eller fald i krav til tekstrum på grund af oversættelse.


Eventuelle andre forslag til tilgang ville også blive værdsat.

Bedste reference


Windows har ikke layoutguider, men nogle brugerbiblioteker, der skal bruges sammen med Windows. Bare for ét indlysende eksempel gør Qt det mere enklere end at arbejde med Win32 API direkte. Det har ledere til grid layout, flow layout osv. Det har også klasser til direkte at støtte oversættelse, herunder en QTranslator klasse, der vil se oversættelser op i en oversættelsesfil, direkte support til konvertering mellem forskellige tekstrepræsentationer mv. [1]