Pentru a putea vota, modifica pagini sau abona la modificările unei pagini trebuie să fiți autentificați. Cu această ocazie scăpați și de acest mesaj deranjant.

Localizarea in Visual C++: Diferență între versiuni

De la l10n.ro
Salt la: navigare, căutare
(Legături)
Linia 24: Linia 24:
  
 
</pre>
 
</pre>
 +
 +
== Extragerea textelor ==
 +
Extragerea textelor din fisierele .C si .CPP este extrem de usoara folosing <tt>xgettext</tt>, dar cand veti ajunge la fisierele <tt>.RC</tt> o sa descoperiti ca nu sunt suportate. Din fericire dupa multe incercari nereusite am gasit singur o solutie simpla
 +
 +
<pre>xgettext --from-code=UTF-8 --add-comments --omit-header --no-location --keyword=MENUITEM --keyword=LTEXT --keyword=DEFPUSHBUTTON --keyword=PUSHBUTTON --keyword=CAPTION --language=Tcl -o resources.po project.rc</pre>
 +
 +
Sau pe scurt: intrucat sintaxa Tcl e destul de compatibila cu cea din .RC, folosind keyword-urile respective obtinei un parser de .RC in xgettext. Cool?... o sa trimit si un mail ca sa modifice sa recunoasca fisierele rc direct.
  
 
[[Category:Tutorial]]
 
[[Category:Tutorial]]

Versiunea de la data 4 decembrie 2007 11:05

Introducere

Dupa 7 ani de zile am putut sa renuntam la suportul pentru Win9x si am inceput portarea aplicatiei, scrisa in MFC, pe unicode.

Acum pot sa recomand oricum vrea sa internationalizeze/localizeze sa foloseasca libraria gettext din urmatoarele motive:

  • mentenanta fisierelor de localizare este net superioara
  • poate fi folosita si in aplicatii comerciale (este LGPL)

Gettext

Descarcati:

Ar trebui sa stiti ca implicit gettext intoarce textele in UTF-8 ceea ce este foarte bine, mai putin pentru Windows care foloseste in modul Unicode (UTF16-LE), asa ca trebuie sa le convertiti la runtime (oricum e suficient de rapida conversia).

#include "../contrib/gettext-runtime/include/libintl.h"

CString strDomain=CString(textdomain("myproject")); // if you put "" will default to "messages"
CString strBinded = CString(bindtextdomain("myproject","d:\\dev\\pbxtools\\src\\debug\\locale\\")); // put you path here

// later
AfxMessageBox(_("Hello World!"), (UINT)MB_OK, (UINT)0);


Extragerea textelor

Extragerea textelor din fisierele .C si .CPP este extrem de usoara folosing xgettext, dar cand veti ajunge la fisierele .RC o sa descoperiti ca nu sunt suportate. Din fericire dupa multe incercari nereusite am gasit singur o solutie simpla

xgettext --from-code=UTF-8 --add-comments --omit-header --no-location --keyword=MENUITEM --keyword=LTEXT --keyword=DEFPUSHBUTTON --keyword=PUSHBUTTON --keyword=CAPTION --language=Tcl -o resources.po project.rc

Sau pe scurt: intrucat sintaxa Tcl e destul de compatibila cu cea din .RC, folosind keyword-urile respective obtinei un parser de .RC in xgettext. Cool?... o sa trimit si un mail ca sa modifice sa recunoasca fisierele rc direct.

Legături