PDA

View Full Version : [C++] Gnu Gettext sotto Windows


stdecden
26-12-2007, 15:55
Salve a tutti,

Ho letto di queste librerie da qualche parte e mi piace l'idea dell'internazionalzzazione di un programma. Vorrei sapere da voi come far funzionare queste librerie sotto windows e di dove trovarle (possibilmente il link), e come funzionano esattamente, perché cercando in rete non ho trovato molto... :help:

variabilepippo
26-12-2007, 16:14
Con quale compilatore vorresti utilizzare la libreria?

stdecden
26-12-2007, 19:43
Visual c++ 2005 Express
oppure
MinGW

71104
26-12-2007, 20:39
Salve a tutti,

Ho letto di queste librerie da qualche parte e mi piace l'idea dell'internazionalzzazione di un programma. Vorrei sapere da voi come far funzionare queste librerie sotto windows e di dove trovarle (possibilmente il link), e come funzionano esattamente, perché cercando in rete non ho trovato molto... :help: ho letto di sfuggita la descrizione di quell'affare. su Windows quella robaccia non ha senso, basta che usi poche accortezze:
1) usa correttamente i tipi Win32 e scrivi sorgenti portabili per Unicode, standard che su Windows è ben radicato fin dentro il kernel (cosa che permette ad esempio di dare ai files nomi con caratteri russi, giapponesi, ecc.)
2) definisci la macro UNICODE (non hai bisogno di farlo in Visual C++ 2005 perché viene fatto automaticamente dall'IDE nelle opzioni di ogni nuovo progetto che crei)
3) tutto il materiale che nel tuo programma deve essere internazionalizzato (etichette dei controlli nelle finestre, stringhe di testo, informazioni di versione, ecc.) mettilo nelle risorse, e non hardcoded nei sorgenti (prassi comune per le stringhe di testo).

variabilepippo
26-12-2007, 21:27
basta che usi poche accortezze


I passi indicati sono corretti, però POI bisogna gestire le risorse in funzione della lingua dell'utente (ciò che fa GNU Gettext, oltre a tante altre librerie simili) e non è molto divertente farlo a manina... Gli ambiente Borland hanno strumenti (e componenti di terze parti) che semplificano notevolmente l'internazionalizzazione di un progetto.

71104
26-12-2007, 22:04
I passi indicati sono corretti, però POI bisogna gestire le risorse in funzione della lingua dell'utente (ciò che fa GNU Gettext, oltre a tante altre librerie simili) e non è molto divertente farlo a manina... Gli ambiente Borland hanno strumenti (e componenti di terze parti) che semplificano notevolmente l'internazionalizzazione di un progetto.
capisco che certe risorse debbano anche essere create specificamente per una lingua (per esempio con le scritture verticali le finestre so da rifare) ma intanto se usi Unicode hai già fatto tre quarti del necessario. la fetta di utenti che perdi non è eccessiva a meno che non desideri fortemente che il tuo programma venga usato in Israele dove ci saranno si e no 4 computers di cui solo 3 connessi ad Internet e quindi in grado di scaricare il tuo programma :D comunque a questo punto vorrei sapere se mi sono perso anche qualcos'altro. cosa fanno di preciso queste Gettext?

variabilepippo
26-12-2007, 22:27
in Israele dove ci saranno si e no 4 computers di cui solo 3 connessi ad Internet


In realtà Israele è uno degli stati più informaticamente avanzati a livello mondiale... :rolleyes:


cosa fanno di preciso queste Gettext?


Una volta inserite le stringhe UNICODE nelle risorse come suggerisci di gestire il relativo caricamento in base alla lingua del sistema operativo o a quella prescelta dall'utente? In altre parole: se l'utente seleziona la lingua da un menu, come fai a pescare le stringhe corrette per aggiornare l'interfaccia utente? Come apporti le modifiche ai controlli? Come gestisci le caratteristiche specifiche di ogni lingua (plurali, forme irregolari, etc)? Gettext (ed altre librerie) semplificano queste operazioni fondamentali...

71104
27-12-2007, 11:40
In realtà Israele è uno degli stati più informaticamente avanzati a livello mondiale... :rolleyes: eh lo so, sono ai primissimi posti davanti agli Stati Uniti, secondi solo al Giappone, dico bene? :asd:
perché sono sempre io quello che vive fuori dal mondo :asd:

suvvia scherzo :D


Una volta inserite le stringhe UNICODE nelle risorse come suggerisci di gestire il relativo caricamento in base alla lingua del sistema operativo o a quella prescelta dall'utente? veramente avevo in testa un'idea diversa: crei risorse diverse per ogni lingua e compili N versioni localizzate per le N diverse lingue.

Come gestisci le caratteristiche specifiche di ogni lingua (plurali, forme irregolari, etc)? :wtf:
cosa ti comporta il fatto che in una lingua i plurali si costruiscano diversamente che in un'altra, o che non ci siano affatto? gli unici problemi potresti averli quando generi le stringhe da codice, e tu semplicemente non farlo: metti tutto nelle risorse, anche le stringhe nelle quali il codice deve modificare delle parti (cosa che si può fare con wsprintf (http://msdn2.microsoft.com/en-us/library/ms647550.aspx)).

Natural Born Killer
07-07-2008, 16:54
cosa ti comporta il fatto che in una lingua i plurali si costruiscano diversamente che in un'altra, o che non ci siano affatto? gli unici problemi potresti averli quando generi le stringhe da codice, e tu semplicemente non farlo: metti tutto nelle risorse, anche le stringhe nelle quali il codice deve modificare delle parti (cosa che si può fare con wsprintf (http://msdn2.microsoft.com/en-us/library/ms647550.aspx)).


Ciao
Volevo riallacciarmi al vostro discorso..

Se creo un file delle traduzioni con chiavi in lingua inglese e poi devo darlo in giro per farlo tradurre in varie lingue, i traduttori come fanno a capire se la parola o stringa, è singolare o plurale / maschile o femminile dato che, per esempio in italiano, ci sono queste differenze..

Se può aiutare uso gettext di php ma il discorso è in generale..

Saluti