IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Couper une string dans un dialogue


Sujet :

C++

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Couper une string dans un dialogue
    Bonjour,

    je travaille actuellement sur un logiciel, qui a ete cree en anglais, mais qui a pour vocation d'etre traduit en plusieurs langues (francais, allemand, chinois, italien ...) et je suis confronte a un probleme depuis plusieurs jours que je n'arrive pas a resoudre.

    Certains dialogue (button, static box, edit box ...) on ete cree graphiquement a partir de Visual C++ afin de s'adapter a des textes en anglais, mais le soucis est que lorsque je demande au programme de charger tous les textes dans une autre langue, le texte est coupe au niveau du bord droit du dialogue.
    L'anglais etant nue langue courte, "Save" devient "Sauvegarder" quand on la traduit en francais, et la moitie su mot est alors coupee (de facon horrible).

    J'ai donc envisage plusieurs solutions :
    - creation de tooltips au niveau des champs pour voir l'integralite du texte.
    --> Probleme : certains buttons contiennent deja des tooltips et je ne pense pas qu'il soit possible d'en afficher 2 sur un meme element.

    - faire un agrandissement dynamique des tailles des dialogues.
    --> Probleme : Pour la majorite des cas cela fonctionne mais pour certains il n'y a pas la place sur une meme ligne d'afficher tous les dialogues avec l'integralite du texte.

    - Combiner agrandissement dynamique + "coupage" de chaine de caracteres.
    --> Probleme : je ne sais pas faire et ne trouve pas sur le net comment abreger une chaine avec des pointilles pour que ca fasse moins sauvage qu'un texte coupe en bordure de bouton.



    Pour que les choses soient claires, je voudrais que le rendu soit comme dans des grilles Excel (par exemple) quand la taille des colones est superieure a la taille du titre.
    C'est a dire avoir le texte tronque avec les "..." a la fin.

    Merci par avance de l'aide que vous pourrez m'apporter.


    PS : desole pour les accents, je travaille sur un clavier qwerty.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    Vos textes semblent utiliser le concept de ressources localisées, pourquoi ne pas généraliser le concept aux IHM ?

    En claire, localisez une IHM comme on traduit les textes.

    Les IHM sont généralement dans des ressources, qui sont localisable sans difficultés.

    Astuce, l'allemand passe pour la langue la plus "verbeuse" de l'Europe de l'Ouest, donc faite une version allemande de l'IHM et copier-coller celle-ci pour les autres pays, ainsi aucun label traduit ne sera tronqué.

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci pour votre reponse,

    effectivement j'utilise le concept de ressources localisees ; j'avais soumis l'idee que vous proposez, de faire un interface par langue (si je comprends bien), mais on m'a dit que ce n'etait pas realisable a cause de la quantite de pages dans le logiciel et du nombre de langues ; ca prendrait un temps fou a la compilation et au stockage des donnees alors que tout doit pouvoir se resoudre avec la creation de nouvelles fonctions, derivant de certaines proposees par PROF-UIS (CExtButton par exemple).


    (Navre si tout n'est pas clair, je debute en MFC, je suis dans le cadre d'un stage.)

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    Vous pouvez localiser tous les textes mais pas la taille des boutons ?
    C'est un peu du foutage de gueule.
    Vous pouvez copier-coller la version allemande pour toutes les langues européennes et modifier les textes après.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ca prendrait un temps fou a la compilation et au stockage des donnees
    J'ai déjà travaillé avec des projets qui prenaient des heures à la compilation sur des fermes de plusieurs dizaines de servers, le temps machine, cela ne vaut plus grand chose depuis des décennies, même avec des indiens sous-payés.
    Si vous voulez vous simplifier la vie, utilisez des icônes.

    L'inconvénient majeur de l'approche "CExtButton", c'est que vous ne prendrez pas la peine de visualiser les IHM dans chaque langue et elles ont de grandes chances d'être inutilisable, car tronquer des textes fera naître des ambiguïtés dans celles-ci.
    Si vous prenez la peine de visualiser les IHM dans chaque langue, il sera très facile de rectifier chaque IHM dans un éditeur WYSIWYG.
    Utilisez des langues verbeuses comme langues pivot pour minimiser les modifications.

    Essayez de ne pas prendre le mauvais plie de faire sale. Un bon programmeur est un fainéant mais il doit être fier du résultat.

    Donc des icônes ou des IHM CORRECTEMENT localisées (ou pas localisées du tout).

  5. #5
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 156
    Points
    3 156
    Par défaut
    Bonjour

    Citation Envoyé par bacelar Voir le message
    Vous pouvez localiser tous les textes mais pas la taille des boutons ?
    C'est un peu du foutage de gueule.
    Tu exagères un peu bacelar, l'internationalisation au niveau disposition graphique n'est pas du tout présente dans toutes les IHM internationalisée, et ça n'est pas aussi trivial qu'internationaliser de simples chaînes de caractères.

    Celà dépend beaucoup à mon avis de comment l'IHM a été dessinée au début, et gérée par le code derrière. Bref tu as raison mais ce n'est pas nécessairement facile.
    Find me on github

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    Traduire des labels, c'est pour les voir.
    Il faut utiliser des éditeurs WISIWIG, donc utiliser des technologies qui permettent de le faire (toutes ou presque).
    Si du code est utilisé pour remplir une IHM, il doit être extrêmement simple et il ne doit pas être nécessaire pour designer l'IHM.

    Si ce n’est pas facile, c'est qu'il y a un problème de design, quelque soit la langue.

  7. #7
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 156
    Points
    3 156
    Par défaut
    Citation Envoyé par bacelar Voir le message
    Si ce n’est pas facile, c'est qu'il y a un problème de design, quelque soit la langue.
    C'est fort possible, mais peut être que miniken doit composer en peu de temps avec une archi qu'il n'a pas conçue
    Find me on github

  8. #8
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Citation Envoyé par bacelar Voir le message
    Vous pouvez localiser tous les textes mais pas la taille des boutons ?
    C'est un peu du foutage de gueule.
    Euh non pas du tout, si je voulais me "foutre de la gueule" de quelqu'un, je ne viendrais pas sur un forum pour poser des questions, et tant qu'a faire je prendrais un domaine dans lequel je suis competent.

    Citation Envoyé par bacelar Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ca prendrait un temps fou a la compilation et au stockage des donnees
    J'ai déjà travaillé avec des projets qui prenaient des heures à la compilation sur des fermes de plusieurs dizaines de servers, le temps machine, cela ne vaut plus grand chose depuis des décennies, même avec des indiens sous-payés.
    Je ne fais que repeter ce qui m'a ete dit lorsque j'ai soumis cette idee.


    Citation Envoyé par jblecanard Voir le message
    C'est fort possible, mais peut être que miniken doit composer en peu de temps avec une archi qu'il n'a pas conçue
    Pour situer un peu le contexte, je suis en stage depuis un peu plus d'une semaine, je "joue" avec un langage que je ne connais pas (C++), j'utilise des logiciels que je n'ai jamais utilises (Visual C++, Lotus Notes ...), je dois effectivement reprendre un code que je n'ai pas concu, et pour couronner le tout, je ne suis pas un grand fan de POO.

    J'ai deja appris quelques trucs depuis que j'ai commence, mais je bloque sur ce probleme, c'est pourquoi je me disais que j'aurais pu trouver une reponse ici.

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    Par foutage de gueule, c'est de prendre la peine de demander à des traducteurs de traduire dans un tas de langue des textes, et de ne pas prendre la peine de lancer un simple éditeur WYSIWYG de ressource pour corriger la taille des boutons avec une simple souris.

    Ce n'est pas vous qui vous foutez de notre gueule mais vos responsables qui se foutent de la votre.

    Vous n'avez pas à programmer en POO, n'y même à programmer tout court.

    Vous ouvrez votre projet MFC dans Visual Studio, vous ouvrez chacune des boîtes de dialogue dans chacune des langues dans l'éditeur de ressource de votre projet et vous rectifiez en WYSIWYG les boutons, et c'est tout.

    Ces fichiers de ressources sont de simples fichiers textes. Il est donc même très facile de développer des outils qui travailleront sur l'ensemble des ressources. Pour, par exemple, faire en sorte que la taille d'un bouton soit homogénéisée sur un ensemble de langue, etc... .

    En clair, faite simple, pas de programmation ou programmation d'utilitaire de traitement de simples fichiers texte.

  10. #10
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Moui ...

    J'en ai parle aux personnes avec qui je travaille et vu le nombre de documents que contient le projet, ils m'ont dit que ce n'etait pas une solution envisageable de tout refaire a la main.

    Tant pis, je mets en [RESOLU] et je continue a chercher, merci pour vos reponses.

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    Il n'y pas grand chose à chercher.
    Tronquez arbitrairement le texte est un non-sens dans une IHM.
    Les icônes ont été inventés pour régler ce type de problème.
    S'ils veulent du vite-fait mal-fait, créez les boutons et les labels avec la taille la plus grande possible.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conseil sur l'extraction d'une string dans une string
    Par Mickey.jet dans le forum Delphi
    Réponses: 3
    Dernier message: 02/06/2006, 14h54
  2. Réponses: 2
    Dernier message: 15/03/2006, 10h13
  3. Comment enregistrer une string dans un fichier
    Par Dnx dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 23/09/2005, 14h52
  4. Réponses: 12
    Dernier message: 27/06/2005, 19h06
  5. Réponses: 6
    Dernier message: 24/07/2003, 12h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo