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 :

Formattage du nom et prénom selon le CultureInfo


Sujet :

C#

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut Formattage du nom et prénom selon le CultureInfo
    Bonjour.

    J'aimerais développer une fonction toute simple dans son principe, mais qui me pose pas mal de problèmes :/.

    J'essaie de créer une fonction qui fournit le nom de famille et le prénom dans le bon ordre selon la culture utilisée.

    exemple :
    FR : John Doe
    EN : Doe, John
    Je crois que c'est comme ça le format anglais, non ?
    Ma fonction devra gérer n'importe quel culture !

    Mon code actuel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public static string FullName(string FirstName, string LastName, CultureInfo Culture)
            {
                return string.Empty;
            }
     
            public static string FullName(string FirstName, string LastName, CultureInfo Culture, string Civility)
            {
                return string.Empty;
            }
    hey oui, c'est peu !
    Auriez-vous une idée pour moi svp ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2002
    Messages : 332
    Points : 502
    Points
    502
    Par défaut
    Tu pourrais faire une extension à String.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    public static class StringExt
        {
            public static string NomCulture(this string nom, string locale)
            {
     
                if (locale == "EN")
                {
                    var parties = nom.Split(' ');
                    return String.Format("{0}, {1}", parties[1], parties[0]);
                }
     
                if (locale == "FR")
                {
                    return nom;
                }
     
                return nom;
            }
     
        }
    Exemple d'implémentation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var nom_anglais = "Jean Vidjean".NomCulture("EN");
    Par contre, je remplacerais les IF par un switch si tu as beaucoup de locale différentes.

  3. #3
    Membre confirmé

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 244
    Points : 574
    Points
    574
    Par défaut
    Hello

    Je te conseille d'utiliser des fichiers de ressources .resx, c'est fait exprès pour gérer l'internationalisation d'une application.
    "C'est tellement merdique que toute modification est une amélioration !"

  4. #4
    Membre confirmé

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 244
    Points : 574
    Points
    574
    Par défaut
    On a un problème de format de chaine de caractères en fonction d'une culture, pour moi le plus simple est d'utiliser des fichiers de resources.

    On crée un fichier resx (par exemple Common.resx) dans lequel on crée une chaine par défaut : Format_FullName = {0} {1} ({0} correspond au prénom, {1} au nom en admettant que la culture par défaut soit le français).
    On peut alors créer un fichier pour la langue anglaise : Common.en.resx, où on "surcharge" la chaine précédente : Format_FullName = {1} {0} (attention le {0} et le {1} doivent correspondre à la même chose que pour la valeur par défaut !)

    Pour l'utiliser c'est simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string.Format(Common.Format_FullName, person.FirstName, person.LastName);
    en admettant que le processus en cours soit dans la langue souhaitée (sinon il faut passer la culture : Common.Culture = CultureInfo)
    "C'est tellement merdique que toute modification est une amélioration !"

  5. #5
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par plume13 Voir le message
    On a un problème de format de chaine de caractères en fonction d'une culture, pour moi le plus simple est d'utiliser des fichiers de resources.

    On crée un fichier resx (par exemple Common.resx) dans lequel on crée une chaine par défaut : Format_FullName = {0} {1} ({0} correspond au prénom, {1} au nom en admettant que la culture par défaut soit le français).
    On peut alors créer un fichier pour la langue anglaise : Common.en.resx, où on "surcharge" la chaine précédente : Format_FullName = {1} {0} (attention le {0} et le {1} doivent correspondre à la même chose que pour la valeur par défaut !)

    Pour l'utiliser c'est simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string.Format(Common.Format_FullName, person.FirstName, person.LastName);
    en admettant que le processus en cours soit dans la langue souhaitée (sinon il faut passer la culture : Common.Culture = CultureInfo)
    Bien vu !

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  6. #6
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    Bonne idée Plume !
    J'aurais aimé me passer d'un fichier de ressource pour cette fonction, mais en effet je ne vois que ça...

    merci !

    Je vous mettrais le code quand je m'occuperais de tout ça !

  7. #7
    Membre habitué Avatar de zhouyu
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 90
    Points : 143
    Points
    143
    Par défaut
    Salut.
    Si tu ne veux pas utiliser le ressource je te conseille de faire une chaine de responsabilité.
    Chaque maillon correspond à une culture. Comme ça au fur et à mesure que tu ajoutes des cultures tu rajoutes un maillon à ta chaine.

  8. #8
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Bien vu Bluedeep, et je suis preneur de l'exemple de code quand tu l'auras fait thor76160
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  9. #9
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par infosam76 Voir le message
    Bien vu Bluedeep,
    Non, moi, je n'y suis pour rien. C'est Plume13 qui a trouvé cette solution (assez élégante, ma foi).

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  10. #10
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Tout à fait, donc bien vu Plume13 ;-)
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  11. #11
    Membre confirmé

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 244
    Points : 574
    Points
    574
    Par défaut
    Merci les gars, les fichiers de ressources ont changé ma vie, depuis que je les ai découverts, mes plats de nouilles n'ont plus le même goût !
    "C'est tellement merdique que toute modification est une amélioration !"

Discussions similaires

  1. [MySQL] Par le nom et prénom, afficher automatique un LOGIN (Initial du prénom + nom)
    Par bilou95 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 02/07/2007, 13h29
  2. Séparation des Noms et prénoms
    Par Golfe56 dans le forum Excel
    Réponses: 2
    Dernier message: 23/05/2007, 15h30
  3. Réponses: 2
    Dernier message: 11/01/2007, 11h28
  4. [Access] Séparer Le Nom du Prénom
    Par razorbek dans le forum Langage SQL
    Réponses: 5
    Dernier message: 18/12/2006, 13h21
  5. Obtenir les enregistrements ayant le même nom et prénom
    Par llc123 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 11/07/2006, 15h47

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