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

Silverlight Discussion :

Localisation et Silverlight 4


Sujet :

Silverlight

  1. #1
    Membre éclairé Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Par défaut Localisation et Silverlight 4
    Bonjour à tous,

    Je réalise en Silverlight 4 une vitrine pour une boite et elle devra être visible en plusieurs langues. J'ai lu l’excellent tuto de Benjamin Roux

    http://broux.developpez.com/articles...-localisation/

    Mais je m’aperçois qu'il date de 2009 et je me demande si la méthode n'a pas évolué depuis la version 4 de Silverlight ?


    Cordialement MoZo

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Hello,

    Non, le tuto est toujours d'actualité

    Bon courage !

  3. #3
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Je confirme. Pis il est même d’actualité pour Windows Phone

  4. #4
    Membre éclairé Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Par défaut
    Ok merci les gars je change rien donc !

    Cordialement MoZo

  5. #5
    Membre éclairé Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Par défaut
    Y'a une Tricks pour éviter que le constructeur de la classe ne repasse sans cesse à internal à chaque que l'on entre une nouvelle valeur dans le fichier de ressource ?

  6. #6
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par Mozofeuk Voir le message
    Y'a une Tricks pour éviter que le constructeur de la classe ne repasse sans cesse à internal à chaque que l'on entre une nouvelle valeur dans le fichier de ressource ?
    Non malheureusement.

  7. #7
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Août 2011
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Août 2011
    Messages : 49
    Par défaut probleme
    bonjour

    dans l'article http://broux.developpez.com/articles...calisation/#L7 :: 7. Changement de langage au runtime j'ai quelques questions (j'ai du mal à l'adapter à mon code)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     private static Language mResource = new Language();
    
        public Language Resource
        {
            get { return mResource; }
        }
    que sont censée faire ces lignes, "Language" est-ce un type, mon compilateur ne le reconnait pas et je ne vois pas à quoi cela fait référence

    la suite du code je devine à quoi elle sert.

    Merci de m'éclairer un peu je débute, donc ce n'est pas toujours évident.

    Merci

  8. #8
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Language c'est censé être le nom de ton fichier de Resource. Quand tu as créé ton fichier de resource resx tu lui as donné un nom (Resource.resx par exemple) c'est ce nom là qu'il faut utilisé (moi dans l'article le fichier s’appelait Language.resx).

  9. #9
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Août 2011
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Août 2011
    Messages : 49
    Par défaut re
    merci pour cette réponse
    okey donc je ne vois pas d'où viens mon erreur ::



    quand j'utilise mon fichier resource qui s'appelle language l'erreur suivante se produit

    Le type ou le nom d'espace de noms 'Language' est introuvable (une directive using ou une référence d'assembly est-elle manquante*?)
    et dans mon XAML il y a ::

    Le type 'lang:LangHelper' est introuvable. Assurez-vous qu'il ne manque aucune référence d'assembly et que tous les assemblys référencés ont été générés.

    Espace de noms CLR non défini. L'URI 'clr-namespace' fait référence à un espace de noms 'menu1.Helpers' non inclus dans l'assembly.
    j'ai du louper un détail ce n'est pas possible.

    j'ai mis mes fichier resx dans un dossier ça change quelque chose??
    La localisation avant le InitializeComponent(); fonctionne, mais quand j'essaye de modifier la culture via une combobox (pendant l'execution), rien ne se passe, aucune traduction. c'est désespérant tout ça.

  10. #10
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Août 2011
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Août 2011
    Messages : 49
    Par défaut re
    après avoir modifié un peu mon code behind ::

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private static menu1.Languages.Language  mResource = new Languages.Language();
     
                public Languages.Language Resource
                {
                    get { return mResource; }
                }
    il n'y a plus d'erreur dans le code CSharp, cependant les erreur du code XAML persistent

    The tag 'LangHelper' does not exist in XML namespace 'clr-namespace:menu1.Helpers'. pour ::

    <lang:LangHelper x:Key="Lan" />
    Le type 'lang:LangHelper' est introuvable. Assurez-vous qu'il ne manque aucune référence d'assembly et que tous les assemblys référencés ont été générés. pour::
    <lang:LangHelper x:Key="Lan" />
    Espace de noms CLR non défini. L'URI 'clr-namespace' fait référence à un espace de noms 'menu1.Helpers' non inclus dans l'assembly pour::

    xmlns:lang="clr-namespace:menu1.Helpers"
    j'aimerais bien comprendre s'il vous plait, je suis un peu perdu dans tout ça
    Merci

  11. #11
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Ben c'est que ta classe LangHelper ne se trouve pas dans le namespace menu1.Helpers. C'est quoi son namespace a ta classe ?

    Faut pas programmer au hasard hein.

  12. #12
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Août 2011
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Août 2011
    Messages : 49
    Par défaut re
    je vais reformuler mon problème sinon on ne va pas s'en sortir:

    Mon dossier Languages contient :
    Language.de.resx
    Language.de-DE.resx
    Language.en.resx
    Language.en-GB.resx
    Language.en-US.resx
    Language.resx



    extrait du fichier XAML:

    Code xaml : 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
     
     
    <UserControl x:Class="menu1.MainPage" 
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:lang="clr-namespace:menu1.Languages"
        xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
        mc:Ignorable="d"
        d:DesignHeight="500" d:DesignWidth="500" xmlns:toolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit">
     
        <UserControl.Resources>
     
            <lang:Language x:Key="Lan" />
     
     
        </UserControl.Resources>

    C'est déclaration entre autre de faire le lien (binding) entre les fichiers ressources et les contrôles à traduire, mais pour le moment il n'y a pas la gestion du runtime.

    J'ai avancé de le tutoriel, jusque là pas de problème, tout est bien décrit.

    section 7 du tuto j'écrit

    Code c# : 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
    
    
     public class LangHelper : INotifyPropertyChanged
            {
                private static Language mResource = new  Language]();
    
                public Language Resource
                {
                    get { return mResource; }
                }
    
                public void ChangeCulture(string culture)
                {
                    Thread.CurrentThread.CurrentCulture = new CultureInfo(culture);
                    Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture);
                    NotifyPropertyChanged("Resource");
                }
    
                #region INotifyPropertyChanged Members
    
                public event PropertyChangedEventHandler PropertyChanged;
    
                private void NotifyPropertyChanged(string name)
                {
                    if (PropertyChanged != null)
                    {
                        PropertyChanged(this, new PropertyChangedEventArgs(name));
                    }
               gion
      s;
    puisque le Language dans le code behind n'été pas reconnu.

    la où je bloque c'est dans la modification des déclarations XAML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlns:lang="clr-namespace:menu1.Languages"
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <lang:Language x:Key="Lan" />
    , le namespace de l'appli c'est menu1.

    merci

  13. #13
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    En haut de la declaration de ta classe LangHelper c'est quoi le namespace ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    namespace ???????????????
    {
       public class LangHelper ...
    }

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

Discussions similaires

  1. Erreur Localisation SilverLight
    Par OminiuS dans le forum Silverlight
    Réponses: 20
    Dernier message: 28/09/2010, 14h00
  2. Localisation d'une application Silverlight
    Par Louis-Guillaume Morand dans le forum Silverlight
    Réponses: 0
    Dernier message: 11/12/2009, 10h51
  3. SilverLight et Localisation
    Par primactif dans le forum Silverlight
    Réponses: 4
    Dernier message: 13/04/2009, 19h55

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