Organisation de l'application et localisation

CrazyJoCrazyJo Membre
12:44 modifié dans Vos applications #1
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  :-*

Réponses

  • AliGatorAliGator Membre, Modérateur
    12:44 modifié #2
    Hello CrazyJo

    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.
  • tabliertablier Membre
    12:44 modifié #3
    Dans mon "Tutoriel Cacao pour les débutants" il y a un exemple clair (je l'espère) de localisation du fichier .nib, des phrases, des infos, de l'aide en ligne et du nom de l'appli!  D'accord, il faut lire un peu!!
    :P
  • CrazyJoCrazyJo Membre
    12:44 modifié #4
    dans 1188248865:

    Dans mon "Tutoriel Cacao pour les débutants" il y a un exemple clair (je l'espère) de localisation du fichier .nib, des phrases, des infos, de l'aide en ligne et du nom de l'appli!  D'accord, il faut lire un peu!!
    :P

    Ah oui ! J'avais pas vu ?! ??? merci 8--)
    Sinon pour ce qui est de l'organisation du projet ?
  • tabliertablier Membre
    12:44 modifié #5
    Il n'y a pas de recette miracle pour organiser un projet. C'est souvent une question d'habitude du programmeur. Les "pros" du forum te donneront certainement des conseils valables, de même en ce qui concerne la gestion des versions (je suis nul sur ce point!).
  • schlumschlum Membre
    12:44 modifié #6
    Je regarde vite fait... Quelques remarques :

    - "Pictures" -> à  mettre dans "Resources"

    - Attention à  l'indentation, là  c'est assez atroce... Tu utilises Xcode pour l'édition ??

    - Cette partie là  :
    //DECLARATION DE VARIALBES<br />NSImage*	_PictureR;<br />NSImage*	_PictureP;<br />NSImage*	_PictureS;<br /><br /><br />int userScoreV = 0;<br />int computerScoreV = 0;<br />int roundN = 0;<br />int roundWinV = 0;<br />int roundLostV = 0;
    


    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"
  • CrazyJoCrazyJo Membre
    12:44 modifié #7
    Merci Schlum d'avoir donné une réponse à  propos de l'organisation.

    - 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 


  • schlumschlum Membre
    12:44 modifié #8
    dans 1188673638:

    Merci Schlum d'avoir donné une réponse à  propos de l'organisation.

    - 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.


    Il suffit de régler l'indentation automatique, elle est pas mal faite  ;)

    - 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


    Dans le .h de la classe, entre les {} avant la déclaration des méthodes  ???
    Faudrait revoir un peu la conception objet  :P


    -je comprends pas le terme "macro" et peine à  trouver une explication simple et précise sur la toile avec un exemple.


    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

    -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 )


    Oui, il faut créer le fichier ; tu devrais lire "Cocoa par la pratique"
  • CrazyJoCrazyJo Membre
    12:44 modifié #9
    Ok voià  de mes nouvelles. J'ai enfin réussi la localisation Français - Anglais ! ;)
    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 
  • tabliertablier Membre
    12:44 modifié #10
    Je ne sais pas trop ce que cela signifie  :-\\ .
    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.
  • CrazyJoCrazyJo Membre
    12:44 modifié #11
    Ca n'a malheuresement rien changé. Toujours la même erreur.. :crackboom:- :crackboom:- :crackboom:- :crackboom:-
  • Philippe49Philippe49 Membre
    12:44 modifié #12

    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.

  • CrazyJoCrazyJo Membre
    12:44 modifié #13
    le clean ne fait rien  :'(
    Si jamais j'ai remis le lien du projet dans mon premier message
  • schlumschlum Membre
    octobre 2007 modifié #14
    Au fait, ça n'a probablement rien à  voir avec le problème ci-dessus, mais je dois rectifier une erreur que j'ai dit au dessus...
    Ce n'est pas "Localized.strings" mais "Localizable.strings" !
  • schlumschlum Membre
    octobre 2007 modifié #15
    dans 1191664639:

    le clean ne fait rien  :'(
    Si jamais j'ai remis le lien du projet dans mon premier message


    Mauvais archive... Y a pas le .xcodeproj et y a le build...
  • CrazyJoCrazyJo Membre
    12:44 modifié #16
    J'ai rezipé le dossier maintenant -> toujours le même lien.
  • Philippe49Philippe49 Membre
    octobre 2007 modifié #17
    supprimé
  • schlumschlum Membre
    12:44 modifié #18
    dans 1191672351:

    J'ai rezipé le dossier maintenant -> toujours le même lien.


    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).
  • CrazyJoCrazyJo Membre
    12:44 modifié #19
    J'ai suivi ton conseil et effectivement mainenant il n'y a plus d'erreur . Maintenant il faudrait que qq qui soit sous Intel teste l'app et me dise si celle-ci se lance. Le lien de téléchargement de l'App est toujours le même sur la page 1 post 1 .

    merci Schlum 
  • BruBru Membre
    12:44 modifié #20
    dans 1191692499:

    Maintenant il faudrait que qq qui soit sous Intel teste l'app et me dise si celle-ci se lance.


    C'est ok chez moi sur le MacBook.

    .
Connectez-vous ou Inscrivez-vous pour répondre.