Organisation de l'application et localisation
CrazyJo
Membre
Bonjour ,
J'ai presque fini ma première application codée en Cocoa. Il s'agit de Chifoumi v.03 (les deux versions précédentes étaient codées en ASS). Vu que c'est pour le moment le plus grand projet que j'ai réaliser avec Cocoa je voulais savoir si mon code était bien organisé. Histoire de savoir si c'est comme ça que l'on organise un projet ou pas . Donc je mets à disposition tout le projet à télécharger icihttp://soft4mac.mac-gratuit.fr/OC/Chifoumi.zip. Se serait vraiment sympa si quelqu'un pourrait jeter un coup d'oeil dessus et me dire son avis sur l'organisation du projet .
J'ai commencer par faire l'application en Anglais mais je souhaitais aussi la traduire en Français. Alors j'ai recréé un .nib et je l'ai traduis en Français. L'interface est certes bien traduite en français mais je ne sais pas comment faire pour traduire les phrases qui ne font pas parties du GUI.(c-à -d les phrases en Anglais qui sont écrites dans le code lui - même)
Merci beaucoup :-*
J'ai presque fini ma première application codée en Cocoa. Il s'agit de Chifoumi v.03 (les deux versions précédentes étaient codées en ASS). Vu que c'est pour le moment le plus grand projet que j'ai réaliser avec Cocoa je voulais savoir si mon code était bien organisé. Histoire de savoir si c'est comme ça que l'on organise un projet ou pas . Donc je mets à disposition tout le projet à télécharger icihttp://soft4mac.mac-gratuit.fr/OC/Chifoumi.zip. Se serait vraiment sympa si quelqu'un pourrait jeter un coup d'oeil dessus et me dire son avis sur l'organisation du projet .
J'ai commencer par faire l'application en Anglais mais je souhaitais aussi la traduire en Français. Alors j'ai recréé un .nib et je l'ai traduis en Français. L'interface est certes bien traduite en français mais je ne sais pas comment faire pour traduire les phrases qui ne font pas parties du GUI.(c-à -d les phrases en Anglais qui sont écrites dans le code lui - même)
Merci beaucoup :-*
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Je n'ai malheureusement pas le temps de regarder ton projet et son organisation, ni de retrouver de bon cours sur la localisation/traductiion des applis Cocoa.
Mais pour ce qui est de la localisation, je te conseille de rechercher du côté de la fonction/macro [tt]NSLocalizedString[/tt] : c'est la fonction de base à utiliser pour traduire tes textes que tu mets dans ton code par exemple (entre autres pour les boites de dialogue, etc) : tu fournis en paramètre à cette macro le "nom" de la chaà®ne, et il va aller chercher la chaà®ne correspondante, selon la langue de l'appli, dans les fichiers ".strings" se trouvant dans les dossiers ".lproj"
Tout cela est détaillé dans quelques sites sur le net, avec le mot clé "NSLocalizedString" tu devrais trouver ton bonheur, comme ici par exemple.
:P
Ah oui ! J'avais pas vu ?! ??? merci 8--)
Sinon pour ce qui est de l'organisation du projet ?
- "Pictures" -> à mettre dans "Resources"
- Attention à l'indentation, là c'est assez atroce... Tu utilises Xcode pour l'édition ??
- Cette partie là :
Elle n'a rien à faire là ... C'est de la programmation objet, on ne déclare pas ses variables en dehors des méthodes, ou de la classe.
- Je vois que plusieurs méthodes ont des noms commençant par une majuscule ; attention, c'est contraire aux conventions
- Tes classes, macros etc... devraient commencer par un préfix qui permet d'identifier ton application (par exemple "CHI")
- Tout ce qui est chaà®ne à afficher dans l'interface devrait être dans un "Localized.strings" (en UTF-8 ou UTF-16) et être appelé par la macro "NSLocalizedString"
- OK : J'ai déplacé Pictures dans Ressources
- J'utilise bien Xcode . C'est vrai qu'au niveau des espaces je n'ai pas vraiment fait attention mais je viens de trouver un petit article sur indentation . Avec cette histoire de 4 espaces avant et après les méthodes.
- Pour ce qui est de la "déclaration de variables" je ne sais où mettre cette partie dans le code ... Parce que j'ai plein de méthode qui régissent avec ces mêmes variables
-OK j'ai changé les MAJ en minuscules
-je comprends pas le terme "macro" et peine à trouver une explication simple et précise sur la toile avec un exemple.
-C'est quoi un "Localized.strings" ? un fichier déjà créé à modifier , je dois le créer ? et ou et comment appeler une macro "NSLocalizedString" ?! (Bon en fait je verrais bien vu que je n'ai pas encore lu la partie sur la localisation du tuto de tablier. Je pense que ça devrais m'aider )
Si quelqu'un d'autre peut me dire son avis sur le code c'est volontiers
Il suffit de régler l'indentation automatique, elle est pas mal faite
Dans le .h de la classe, entre les {} avant la déclaration des méthodes ???
Faudrait revoir un peu la conception objet :P
C'est simplement quelque-chose qui est remplacé avant la compilation
Par exemple "#define PI 3.14159265", ça va remplacer PI par sa valeur partout dans le code
Oui, il faut créer le fichier ; tu devrais lire "Cocoa par la pratique"
Maintenant j'ai copié le projet sur mon g4 en 10.4 pour pouvoir compilé avec xCode 2.2.1. Du coup je pourrais compiler pour 10.4 et les ordis Intel. Sauf que le projet ne se compile pas sous xCode 2.2.1. En effet celui-ci indique cette erreur après la compilation :
Command /System/Library/PrivateFrameworks/DevToolsCore.framwork/Ressources/pbxcp failed with exit code 1
Que signifie-t-elle ? merci
Tu peux essayer la chose suivante (sans garanties): dans le dossier de ton projet, tu ouvres le dossier "Build" et tu le vides complètement.
Puis tu ré-ouvres le projet avec Xcode et tu vérifies dans les settings du projet que le "Target SDK" est bien "Mac OS X 10.4 (Universal)". Et enfin tu recompiles.
Je ne suis pas entré dans ton code, schlum s'en occupe.
Simplement, la remarque suivante : ce type de problème de compilation se résout parfois en donnant un coup de balai "clean all" pour reprendre la compilation du projet à zéro.
Si jamais j'ai remis le lien du projet dans mon premier message
Ce n'est pas "Localized.strings" mais "Localizable.strings" !
Mauvais archive... Y a pas le .xcodeproj et y a le build...
Merci... Mais t'aurais pu enlever le dossier "build" !
Ton problème c'est que les ressources sont organisées n'importe comment dans le projet...
Le Localizable.strings se retrouve à l'intérieur d'un .nib, il n'y a pas de Localizable.strings dans le dossier English, et pas de InfoPlist.strings dans le dossier French, ton projet est complètement affolé et se plante.
Alors mon conseil, enlève toutes les ressources, et remets les bien proprement.
C'est ce que j'ai fait et ça fonctionne (mais je ne peux pas te passer le résultat parce que j'ai converti ton .xcode en .xcodeproj avant pour pouvoir travailler).
merci Schlum
C'est ok chez moi sur le MacBook.
.