Loading...
 
Multi-Language Add-In for Visual Studio

Multi-Language Add-In for Visual Studio


Probleme de lancement du multi language 2005

Bonjour Mon frère Phil je viens d installer le multi langage 2005 que je viens d’acheter bien sur avec une licence. Auparavant j utiliser la version d’essai et il déjà été expiré. A chaque que je lance le multi langage que j ai acheté ca ne fonctionne pas d autant que j ai même saisie la licence Voudriez vous dépanner ??

Merci Phil

> Hello
>
> I ve finished to translate all my project from french to english but i just to know how to do
> if the user wants to use my application and change the language without restarting the application
> I want to program in order that the user change the language of a running programm
> ok Thanx a lot

who knwos french can tell me in french its better for me

Germany

Désolé, je n'ai pas eu le temps de faire une bonne description en français. Peut être au week-end.smile

Au fin de cette page il y a un peu d'information, sous les rubriques Selecting the language of the application et Changing the language of a running program.

En outre, il y a quelques informations dans le fichier d'aide sous le titre Features/Runtime language selection. Malheureusement, le fichier d'aide n'est pas vraiment à jour.

Phil

Germany

Tu n'as pas dit s'il s'agit d'un projet Windows Forms, un projet ASP.NET ou autre chose. Je présume que c'est un projet Windows Forms.

Ajouter une boîte de dialogue pour sélectionner la langue

Il y a plusieurs étapes. Je propose de commencer par ajouter une boîte de dialogue pour sélectionner la langue au lancement du programme.

On commence par sélectionner la commande "Ajouter une forme pour choisir la langue à votre projet", comme montré ci-dessous.
Image
(Pour les captures d'écran, j'ai changé la langue de l'Add-In au français, mais je sais que les traductions ne sont pas très bonnes!)

Cela montre une boîte de dialogue comme celui ci-dessous. Dans ce cas, c'est pour un projet VB.NET. Pour un projet C# c'est un peu différent, mais il fonctionne de la même manière.
Image
Lorsque tu cliques sur "Ajouter maintenant", l'add-in ajoute une nouvelle forme à votre projet et ajoute un peu de code pour montrer cette forme au lancement du programme.

La boîte de dialogue ressemble à ceci.
Image
À ce stade, la boîte de dialogue est en anglais. Tu peux le traduire en français par l'Add-In.

Pour montrer la même boîte de dialogue à partir d'une commande de menu

Dans une deuxième étape, nous allons montrer cette boîte de dialogue à partir d'une commande de menu.

Voici le code que nous devons insérer dans la fonction de la commande.

VB.NET
Private Sub mnChangeLanguage_Click( ByVal sender As System.Object,  ByVal e As System.EventArgs) Handles mnChangeLanguage.Click

    Using frmLang As New SelectLanguage
      frmLang.LoadSettingsAndShow ( True )
    End Using

  End Sub
c#
private void mnChangeLanguage_Click ( object sender, EventArgs e )
{
  // Show the language select dialog
  using ( SelectLanguage frmLang = new SelectLanguage() )
  {
    frmLang.LoadSettingsAndShow ( true );
  }
}

Le paramètre a pour effet, que le dialogue est toujours affichée. (Lors du lancement du programme, le dialogue est affiché conditionnellement.)

C'est très facile. La boîte de dialogue s'affiche, mais il ya encore un problème. La langue ne sera pas réellement changé!

Nous avons encore besoin d'une dernière étape.

Ajouter le support pour le changement de langue.

Pour ce faire, nous sélectionnons la commande "Support pour changer la langue pendant l'exécution", comme illustré ci-dessous.
Image
Cela montre une boîte de dialogue comme celui ci-dessous.
Image
Cette boîte de dialogue fait plusieurs choses, que je vais décrire ci-dessous. Pour l'instant, il suffit de cliquer sur le bouton "Ajouter le support".

Dans chaque formulaire ou un contrôle, il ajoute une fonction nommée ml_UpdateControls (), comme celui présenté ici.

ml_UpdateControls - Example en VB.NET
Protected Overridable Sub ml_UpdateControls()
    Me.Text = ml_string ( 3, "Simple Editor" )
    MenuItem5.Text = ml_string ( 14, "-" )
    MenuItem8.Text = ml_string ( 14, "-" )
    mnEdit.Text = ml_string ( 20, "&Edit" )
    mnEditCopy.Text = ml_string ( 23, "&Copy" )
    mnEditCut.Text = ml_string ( 21, "C&ut" )
    mnEditPaste.Text = ml_string ( 22, "&Paste" )
    mnFile.Text = ml_string ( 16, "&File" )
    mnFileClose.Text = ml_string ( 15, "&Close" )
    mnFileExit.Text = ml_string ( 19, "E&xit" )
    mnFileNew.Text = ml_string ( 13, "&New" )
    mnFileOpen.Text = ml_string ( 12, "&Open" )
    mnFileSave.Text = ml_string ( 17, "&Save" )
    mnFileSaveAs.Text = ml_string ( 18, "Save &as" )
    mnHelp.Text = ml_string ( 6, "&Help" )
    mnHelpAbout.Text = ml_string ( 7, "&About" )
    mnTools.Text = ml_string ( 8, "&Tools" )
    mnView.Text = ml_string ( 9, "&View" )
    mnViewStatusBar.Text = ml_string ( 11, "Status &Bar" )
    mnViewToolbar.Text = ml_string ( 10, "&Toolbar" )
  End Sub

En outre, il ajoute un projet à votre solution, appelée MLRuntime.

Ce projet n'a qu'un seul but, qui est de générer un événement lorsque la langue est modifiée.

Si ton programme est composé de plusieurs composants, la classe MLRuntime peut générer des événements dans toutes les composantes. Si tu as un seul composant, tu peux déplacer la classe dans ton projet principal.

Dans chaque formulaire ou contrôle, l'add-in ajoute du code pour enregistrer la fonction ml_UpdateControls comme un gestionnaire pour l'événement MlRuntime.MlRuntime.LanguageChanged.

L'Add-In fait également un petit changement à la boîte de dialogue qui permet de sélectionner la langue, pour générer cet événement lorsque la langue est modifiée.

Cela signifie que, quand une nouvelle langue est sélectionnée, un événement est généré dans tous les formulaires et les contrôles qui sont actifs. Dans chaque formulaire ou contrôle, la fonction ml_UpdateControls est appelée, qui met à jour les champs dans l'interface utilisateur.

That's all.

Phil