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

ASP.NET Discussion :

[VB.NET] Probleme de localisation de fichier assembly


Sujet :

ASP.NET

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 3
    Points : 5
    Points
    5
    Par défaut [VB.NET] Probleme de localisation de fichier assembly
    Bonjour,
    J'ai un gros soucis concernant la localisation de mes fichiers .dll .
    Je m'explique:

    Je travail sur une application multilingue et pour gérer les langues j'ai choisi de me servir des objets assembly et satellite assembly.
    J'ai aussi choisi de ne pas incorporer mes objets dans le cache global , en conséquence je suis forcé de crée une arborescence bien précise.
    de type
    /monappli
    /fr
    /es

    un dossier par langue dans lequel se trouve mon satellite en .dll.

    Je sais aussi que je dois crée un assembly principal qui lui dois se trouver a la racine du site.
    Cependant ce que je ne sais pas c'est de quel type il doit être : .dll ou .exe.
    De plus s'il est en .exe que dois je spécifier dans l'option main de AL.

    Ca fait plusieurs jours que j'écume le web a la recherche d'un exemple concret qui marche malheureusement je n'en trouve pas.Même msdn se contredit ou ne fournit que des ébauche de solutions :s

    Dc j'aimerais bien savoir si qq ici a deja dev une appli similaire et savoir comment il a resolu le probleme concernant la localisation des fichiers.

    mon erreur :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 
     
    Exception Details: System.IO.FileNotFoundException: File or assembly name k1kej-wr.resources, or one of its dependencies, was not found.
     
    Source Error: 
     
     
    Line 32: 			Thread.CurrentThread.CurrentUICulture = New CultureInfo("fr-FR")
    Line 33: 			
    Line 34: 			x = New ResourceManager("dzdb",[Assembly].GetExecutingAssembly.GetSatelliteAssembly(ci))
    Line 35: 			nom.Text = x.Getstring("nom_label")
    Line 36: 
     
     
    Source File: c:\inetpub\wwwroot\dzdb\cl_affichage.aspx.vb    Line: 34 
     
    Assembly Load Trace: The following information can be helpful to determine why the assembly 'k1kej-wr.resources' could not be loaded.
     
     
    === Pre-bind state information ===
    LOG: DisplayName = k1kej-wr.resources, Version=0.0.0.0, Culture=fr-FR, PublicKeyToken=null
     (Fully-specified)
    LOG: Appbase = file:///c:/inetpub/wwwroot/dzdb
    LOG: Initial PrivatePath = bin
    Calling assembly : k1kej-wr, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
    ===
     
    LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
    LOG: Post-policy reference: k1kej-wr.resources, Version=0.0.0.0, Culture=fr-FR, PublicKeyToken=null
    LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/dzdb/24e1b83e/1902607/fr-FR/k1kej-wr.resources.DLL.
    LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/dzdb/24e1b83e/1902607/fr-FR/k1kej-wr.resources/k1kej-wr.resources.DLL.
    LOG: Attempting download of new URL file:///c:/inetpub/wwwroot/dzdb/bin/fr-FR/k1kej-wr.resources.DLL.
    LOG: Attempting download of new URL file:///c:/inetpub/wwwroot/dzdb/bin/fr-FR/k1kej-wr.resources/k1kej-wr.resources.DLL.
    LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/dzdb/24e1b83e/1902607/fr-FR/k1kej-wr.resources.EXE.
    LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/dzdb/24e1b83e/1902607/fr-FR/k1kej-wr.resources/k1kej-wr.resources.EXE.
    LOG: Attempting download of new URL file:///c:/inetpub/wwwroot/dzdb/bin/fr-FR/k1kej-wr.resources.EXE.
    LOG: Attempting download of new URL file:///c:/inetpub/wwwroot/dzdb/bin/fr-FR/k1kej-wr.resources/k1kej-wr.resources.EXE.
     
     
     
    Stack Trace: 
     
     
    [FileNotFoundException: File or assembly name k1kej-wr.resources, or one of its dependencies, was not found.]
       System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Boolean isStringized, Evidence assemblySecurity, Boolean throwOnFileNotFound, Assembly locationHint, StackCrawlMark& stackMark) +0
       System.Reflection.Assembly.InternalGetSatelliteAssembly(CultureInfo culture, Version version, Boolean throwOnFileNotFound) +209
       System.Reflection.Assembly.GetSatelliteAssembly(CultureInfo culture) +9
       test.langage.BindData() in c:\inetpub\wwwroot\dzdb\cl_affichage.aspx.vb:34
       ASP.affichage_ex_aspx.Page_Load(Object Src, EventArgs E) in c:\inetpub\wwwroot\dzdb\affichage_ex.aspx:6
       System.Web.UI.Control.OnLoad(EventArgs e) +67
       System.Web.UI.Control.LoadRecursive() +35
       System.Web.UI.Page.ProcessRequestMain() +731
    Est ce une erreur dans mon code? dans l'arborescence? dans le type de donnée???

    Ne repondez pas svp si vs n'avait jamais réaliser d'appli de ce type ,merci d avance.je cherche reellement une réponse claire d'une personne ayant réussi a mettre une solution logiciel de ce type.Je n'explique pas tout car se serait trop long

    Bonne journée.
    ps: je sens que je vais encore n' avoir aucune réponse lol

  2. #2
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    J'ai pas de reponse a apporter a ton pb dans ce cas.

    Neamoins tu pourrais peut etre faire autrement et charger dynamiquement tes dll. Un exemple qui se rapprocherait le plus cf mon post sur:

    http://www.developpez.net/forums/viewtopic.php?t=168047

    C'est une solution pour utiliser des plugins dans une application en .net, tu pourrais t'en inspirer (ca te permetterait de changer de langue a la volee en plus)

  3. #3
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Re
    Alors il y a plusieurs choses à faire et tu n'es pas loin.
    Je l'ai déjà fais pour les application non Web.

    Premièrement
    Citation Envoyé par zaky
    J'ai aussi choisi de ne pas incorporer mes objets dans le cache global , en conséquence je suis forcé de crée une arborescence bien précise.
    de type
    /monappli
    /fr
    /es
    Ton appli web a un assembly principal qui est généré à la compilation dans le repertoire bin de ton projet. C'est une dll. Ton arborescence partira donc de ce repertoire.
    /tonappli/bin
    /tonappli/bin/fr
    /tonappli/bin/es

    Ton assembly principal est donc la dll produite à la compilation de ton projet. Tu n'as pas besoin d'utiliser AL.exe pour le generer.
    Par contre il faut que tu y mettes les ressources par défaut de ton application. Ajoute un fichier de resource resx à ton projet et nomme le strings.resx par exemple. Met une chaine de caractère dans ce fichier ressource.

    Ensuite pour construire une DLL satellite. En anglais par exemple.
    Creer un fichier nommé strings.en.resx.
    Met le dans le même répertoire que strings.resx mais Ne le met pas dans ton projet.
    Ajoute y la même chaine que précédement dans le fichier strings.resx mais en anglais.
    Utilise ResGen.exe pour obtenir un fichier string.en.resources.
    Utilise AL pour obtenir ta dll satelitte.
    al /t:lib /embed:strings.en.resources,namespacedetonprojet /culture:en /out:tonprj.resources.dll /version:lamêmeversionquetonprojet
    Pour simplifier force la version de ton projet dans assemblyinfo à 1.0.0.0 et mais la même sur la commande AL.
    De même n'oublie pas le nom du namespace de ton projet dans la commande AL.
    Copie la dll satellite dans le repertoire approprié ici \monappli\bin\en

    ceci t'aidera surement http://www.ondotnet.com/pub/a/dotnet.../14/local2.htm

    Bon courage

  4. #4
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Deux autres choses qui me viennent à l'esprit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    x = New ResourceManager("dzdb",[Assembly].GetExecutingAssembly.GetSatelliteAssembly(ci))
    Du doit fournir le nom qualifié de ta ressource "dzdb". C'est a dire mettre aussi le namespace si il y a un : "namespace.dzdb".
    Pour avoir le nom qualifié, tu peux te servir de ildasm.exe pour voir le manifeste de ton assembly principal et celui de ton assembly satellite.

    Celui de ton assembly principal devrait être comme ceci : "namespace.dzdb"
    Ceux des assembly satellites : "namespace.es.dzdb", namespace.en.dzdb", etc ...

  5. #5
    Membre habitué Avatar de akecoocoo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2004
    Messages : 78
    Points : 146
    Points
    146
    Par défaut
    J'ai voulu recopier cette technique (au passage, le tutorial par tyris n'est plus disponible...)... et je bloque un tout petit peu.

    J'ai créé 3 fichiers avec visual studio 2003 : strings.resx ,strings.de.resx, et strings.en.resx qui contiennent les memes paires de cles/valeurs (traduites en allemand et anglais), et j'ai placé ces fichiers a la racine de mon serveur

    J'ai insere ce bout de code dans une page situé dans le meme repertoire que les fichiers resx :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Thread.CurrentThread.CurrentUICulture = new CultureInfo(this.Request.UserLanguages[0]);
    rm= new ResourceManager("PFA.strings", System.Reflection.Assembly.GetExecutingAssembly());
    string machaine=rm.GetString("OngletInformations");
    Je récupère correctement l'information qui m'interresse suivant la langue du navigateur... (que je manipule en remplacant le parametre dans le createur de CultureInfo)

    Mon souci est le fait que cela fonctionne uniquement lorsque mes fichiers sont a la racine du serveur... si je cree un repertoire pour ces fichiers languages... eh bien... j'obtiens une exception lorsque j'accede aux chaines de caracteres de mon resourcemanager... voila, si il y a quelqu un qui peut m expliquer ce phenomene...

    merci d'avance !
    PJ

  6. #6
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Tu as crées les fichiers avec Visual studio et tu les as rajoutés à ta solution ?
    As tu vraiment suivi les instructions que j'ai dites plus haut ?
    Décrit un peu plus en détails ce que tu as fais. Si c'est juste créer les .resx et les mettre dans le répertoire de l'assembly c'est clair que cela ne suffira pas.

  7. #7
    En attente de confirmation mail
    Inscrit en
    Avril 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 12
    Points : 12
    Points
    12
    Par défaut Problème
    Et bien, moi c'est un peu pareil, j'ai suivi exactement la même procédure et ça ne marche toujours pas.

    - J'ai la bonne arborescence /bin, /bin/fr, /bin/en
    - J'ai ma langue par défaut, strings.resx
    - J'ai 2 autres langues, strings.fr.resx et strings.en.resx que je compile à part avec resgen et al (et donc exclu du projet)
    - J'ai forcé le numéro de version à 1.0.0.0 des 2 côtés (AssemblyInfo et commande al)
    - Enfin, pour tester le français par exemple, je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr");
    ResourceManager rm = new ResourceManager("monprojet.strings.fr",Assembly.GetExecutingAssembly());
    rm.GetString("machaine");
    résultat, je n'obtiens que la value situé dans la langue par défaut (strings.resx). Il ne trouve pas l'assembly satellite pour le français.
    avec fr, fr-FR ou même en (testé l'anglais satellite aussi), rien n'y fait, toujours les résultats de l'assembly principal.

    en analysant avec ildasm mes dll, j'obtiens ceci :

    - dans /bin/fr -> ildasm monprojet.resources.dll :
    .mresource public monprojet.strings.fr.resources

    - dans /bin/en -> ildasm monprojet.resources.dll :
    .mresource public monprojet.strings.en.resources

    - dans /bin -> ildasm monprojet.dll :
    .mresource public monprojet.strings.resources

    Je parcours les tutoriaux depuis plusieurs jours, et je ne vois vraiment pas ce qui cloche
    Merci d'avance pour votre aide !

    Pilou

  8. #8
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    le .fr me semble de trop dans le nom de la resource
    Essaye avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ResourceManager rm = new ResourceManager("monprojet.strings",Assembly.GetExecutingAssembly());

  9. #9
    En attente de confirmation mail
    Inscrit en
    Avril 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    Merci pour ta réponse, même constat sans le .fr

  10. #10
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Quelle est la langue de tes resources par défaut ?
    Fais voir ta commande Al pour générer la dll de ressource pour le français (par exemple)

  11. #11
    En attente de confirmation mail
    Inscrit en
    Avril 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    bon, j'ai changé pour voir, au lieu de strings, j'ai mis lang ...

    ma langue par défaut est l'anglais (lang.resx)

    voici la commande que je lance pour le français :

    resgen lang.fr.resx

    puis

    al /t:lib /embed:lang.fr.resources,monprojet /culture:fr /out:lang.resources.dll /version:1.0.0.0

    puis je range mon lang.resources.dll dans le répertoire /bin/fr/

    Dans AssemblyInfo.cs, j'ai [assembly: AssemblyVersion("1.0.0.0")]

    au niveau de mon code d'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr");
    rm = new ResourceManager("monprojet.lang",Assembly.GetExecutingAssembly());

  12. #12
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Citation Envoyé par Philhz
    puis je range mon lang.resources.dll dans le répertoire /bin/fr/
    Dans /bin/debug/fr ou /bin/Release/fr selon ta configuration dans visual studio

  13. #13
    En attente de confirmation mail
    Inscrit en
    Avril 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    au fait, dans l'exemple que je t'ai dit, je me suis trompé, je tape bien /out monprojet.resources.dll et non pas lang.resources.dll

    Dans les propriétés de configuration de mon projet, en chemin de sortie, j'ai bien bin\
    à moins que ce soit ailleurs qu'il faut regarder ...

  14. #14
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Citation Envoyé par Philhz
    Dans les propriétés de configuration de mon projet, en chemin de sortie, j'ai bien bin\
    à moins que ce soit ailleurs qu'il faut regarder ...
    Oui tu as raison. C'est comme ça par défaut pour les projets web contrairement aux projets non web.
    Ben là je ne vois pas trop. Il y a peut être un truc particulier avec la localisation des projets web ...

  15. #15
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Et si tu essayais avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    GetExecutingAssembly.GetSatelliteAssembly(new CultureInfo("fr"))
    dans la construction du ressourceManager ?

  16. #16
    En attente de confirmation mail
    Inscrit en
    Avril 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    Remarque :

    Bon, en faisant al /t:lib /embed:lang.fr.resources,monprojet /culture:fr /out:monprojet.resources.dll /version:1.0.0.0
    puis ildasm monprojet.resources.dll
    j'obtiens .mresource monprojet

    alors que si je fais :
    al /t:lib /embed:lang.fr.resources,monprojet.lang.fr.resources /culture:fr /out:monprojet.resources.dll /version:1.0.0.0
    puis ildasm monprojet.resources.dll
    j'obtiens .mresource public monprojet.lang.fr.resources

    Je pense que le premier al n'était pas bon en fait, quoi qu'il en soit le problème n'est pas résolu.


    Heu ... pour ta proposition, j'ai tenté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rm = new ResourceManager("monprojet.lang",GetExecutingAssembly.GetSatelliteAssembly(new CultureInfo("fr"))
    mais ça compile pas, alors j'ai tenté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rm = new ResourceManager("monprojet.lang",Assembly.GetExecutingAssembly().GetSatelliteAssembly(new CultureInfo("fr")));
    ça compile mais ça plante à l'exécution (System.IO.FileLoadException)

  17. #17
    En attente de confirmation mail
    Inscrit en
    Avril 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 12
    Points : 12
    Points
    12
    Par défaut Enfin !!!
    Bon, ça marche enfin, espérons que ce soit la réelle cause à mon problème parce que j'ai eu du mal à la trouver.

    Dans mon Web.Config, j'avais spécifié la mention suivante :
    <identity impersonate="true" />

    à cause de ça, impossible d'accéder aux ressources !!!

    du coup, en passant la valeur à false, ou tout simplement en supprimant cette mention, j'accède aux assemblys satellites sans problème.

    Identity agissant sur des paramètres de sécurité, est-ce que quelqu'un pourrait m'expliquer pourquoi ça peut verrouiller l'accès aux ressources ?

  18. #18
    Membre régulier Avatar de Landolsi
    Inscrit en
    Juillet 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2005
    Messages : 135
    Points : 78
    Points
    78
    Par défaut
    de plus Comment a partir d'un fichier ASPX je peux générer un fichier de resource resx?
    Landolsi




  19. #19
    Membre habitué Avatar de akecoocoo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2004
    Messages : 78
    Points : 146
    Points
    146
    Par défaut
    Générer un fichier resx ? dans quel but ? Les fichiers de type "ressources" sont compilés. J'ai une petite routine qui recompile un fichier satellite "à la demande" si jamais cela t'interesse.

  20. #20
    Membre régulier Avatar de Landolsi
    Inscrit en
    Juillet 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2005
    Messages : 135
    Points : 78
    Points
    78
    Par défaut
    oui il m'intéresse

    moi le but de mon travail et de generer un formulaire multilingue sans utilise l'outil VS.NET cad par programmation

    j'ai developpé l'outil qui me cree le formulaires aspx il me reste mnt le multilingue

    c'est pour cette raison je veux apartir d'un formulaire aspx cree un fichier de resource est je me suis cuinsé ici
    Landolsi




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

Discussions similaires

  1. [VB.Net] probleme de lecture de fichier
    Par michel71 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 12/05/2006, 15h42
  2. [VB.NET] Problème d'accès à un fichier
    Par pcdj dans le forum ASP.NET
    Réponses: 3
    Dernier message: 09/12/2005, 11h07
  3. Réponses: 4
    Dernier message: 16/11/2005, 11h22
  4. [vb.net][xml] probleme de lecture de fichier
    Par graphicsxp dans le forum Windows Forms
    Réponses: 4
    Dernier message: 27/07/2005, 11h51
  5. [VB.NET] Probleme avec les fichiers!!
    Par ludovic85 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 20/01/2005, 17h12

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