Adding Internationalization features
authorMatthieu Totet
Thu, 19 Nov 2009 12:12:55 +0100
changeset 4 cf756528609e
parent 3 1f1614b65397
child 5 ee4ddd15fb5d
Adding Internationalization features
client/src/Iri.Modernisation.Controls/Iri.Modernisation.Controls.csproj
client/src/Iri.Modernisation.Controls/View/AnnotationMaker/AnnotationMaker.xaml
client/src/Iri.Modernisation.Controls/View/HeaderControl/ButtonHeaderControl.xaml
client/src/Iri.Modernisation.Controls/View/HeaderControl/ButtonHeaderControl.xaml.cs
client/src/Iri.Modernisation.Controls/View/HeaderControl/HeaderControl.xaml
client/src/Iri.Modernisation.Controls/View/NavigationBar/ConsultMenu.xaml
client/src/Iri.Modernisation.Controls/View/NavigationBar/PersonnalChutier.xaml
client/src/Iri.Modernisation.Controls/View/NavigationBar/ProductionMenu.xaml
client/src/Iri.Modernisation.Controls/View/NavigationBar/ReferencesChutier.xaml
client/src/Iri.Modernisation.Controls/ViewModel/HeaderControl/HeaderControlVM.cs
client/src/Iri.Modernisation.Lang/Iri.Modernisation.Lang.csproj
client/src/Iri.Modernisation.Lang/LangResource.Designer.cs
client/src/Iri.Modernisation.Lang/LangResource.en-US.Designer.cs
client/src/Iri.Modernisation.Lang/LangResource.en-US.resx
client/src/Iri.Modernisation.Lang/LangResource.fr-FR.Designer.cs
client/src/Iri.Modernisation.Lang/LangResource.fr-FR.resx
client/src/Iri.Modernisation.Lang/LangResource.resx
client/src/Iri.Modernisation.Lang/Properties/AssemblyInfo.cs
client/src/Iri.Modernisation.sln
client/src/Iri.Modernisation/App.xaml.cs
client/src/Iri.Modernisation/Iri.Modernisation.csproj
client/src/Iri.Modernisation/MainPage.xaml.cs
--- a/client/src/Iri.Modernisation.Controls/Iri.Modernisation.Controls.csproj	Wed Nov 18 17:01:49 2009 +0100
+++ b/client/src/Iri.Modernisation.Controls/Iri.Modernisation.Controls.csproj	Thu Nov 19 12:12:55 2009 +0100
@@ -278,6 +278,10 @@
       <Project>{05794257-7163-48E0-B48A-B6666128AC1F}</Project>
       <Name>Iri.Modernisation.Data</Name>
     </ProjectReference>
+    <ProjectReference Include="..\Iri.Modernisation.Lang\Iri.Modernisation.Lang.csproj">
+      <Project>{75BD0E1B-AFDA-48E1-B665-D51107295079}</Project>
+      <Name>Iri.Modernisation.Lang</Name>
+    </ProjectReference>
   </ItemGroup>
   <ItemGroup>
     <EmbeddedResource Include="Resources\HeaderProduction\InstructionTextRessource.resx">
--- a/client/src/Iri.Modernisation.Controls/View/AnnotationMaker/AnnotationMaker.xaml	Wed Nov 18 17:01:49 2009 +0100
+++ b/client/src/Iri.Modernisation.Controls/View/AnnotationMaker/AnnotationMaker.xaml	Thu Nov 19 12:12:55 2009 +0100
@@ -10,6 +10,7 @@
     xmlns:Converter="clr-namespace:Iri.Modernisation.Controls.Converter"
 	xmlns:View="clr-namespace:Iri.Modernisation.Controls.View"
     xmlns:Input="clr-namespace:SLExtensions.Input;assembly=SLExtensions" 
+    xmlns:Lang="clr-namespace:Iri.Modernisation.Lang;assembly=Iri.Modernisation.Lang"
     d:DesignWidth="312" Width="312" Height="320" 
     IsEnabled="{Binding IsControlEnable,Mode=TwoWay}"
     >
@@ -21,15 +22,15 @@
     			<ResourceDictionary Source="/Iri.Modernisation.Styles;Component/Templates_CommonTemplate.xaml"/>
     			<ResourceDictionary Source="/Iri.Modernisation.Styles;Component/Templates_Binder.xaml"/>
     		</ResourceDictionary.MergedDictionaries>
-    		
-      
-    		<Converter:TagArrayConverter x:Key="TagConvert"/>
+
+            <Lang:LangResource x:Name="LangLabels" x:Key="LangLabels"></Lang:LangResource>
+                <Converter:TagArrayConverter x:Key="TagConvert"/>
     	</ResourceDictionary>
     </UserControl.Resources>
 	
         <Grid x:Name="AnnotationMakerPanel">
 		<StackPanel x:Name="HeaderAnnotationMarkerPanel" Height="33" Orientation="Horizontal" Margin="0,0,8,0" VerticalAlignment="Top">
-			<TextBlock   Style="{StaticResource CommonTextBlock}" x:Name="HeaderAnnotationMakerLabel"  Text="Annotez ce segment" TextWrapping="Wrap" Width="166" Height="19" VerticalAlignment="Top"/>
+			<TextBlock   Style="{StaticResource CommonTextBlock}" x:Name="HeaderAnnotationMakerLabel"  Text="{Binding AnnotationMakerTitle, Source={StaticResource LangLabels}}" TextWrapping="Wrap" Width="166" Height="19" VerticalAlignment="Top"/>
 			<ListBox Style="{StaticResource HorizontalListBox}"   SelectedItem="{Binding SelectedType,Mode=TwoWay}"  SelectedIndex="0" x:Name="TypeAnnotationList"  Margin="-27,0,0,2" Width="137" >
 				
                 <Rectangle x:Name="RectPolemic" Fill="Red" Stroke="Black" Height="20" Width="22">
@@ -68,7 +69,7 @@
 		</Grid>
 		
 		<StackPanel x:Name="AnnotationContextualLinkPanel" Height="74" Margin="0,0,8,0" VerticalAlignment="Bottom">
-			<TextBlock  Style="{StaticResource CommonTextBlock}" x:Name="AnnotationContextualLinkLabel"  Text="Ajouter un lien contextuel" TextWrapping="Wrap"/>
+			<TextBlock  Style="{StaticResource CommonTextBlock}" x:Name="AnnotationContextualLinkLabel"  Text="{Binding AnnotationMakerAddLinkLabel, Source={StaticResource LangLabels}}" TextWrapping="Wrap"/>
 			<TextBlock  Style="{StaticResource CommonTextBlock}" x:Name="AnnotationContextualBindedLabel"  TextWrapping="Wrap" HorizontalAlignment="Left" Width="295" Text="{Binding PolemicRelation.ToElement.Title}" Height="26"/>
 			<StackPanel x:Name="ContextualBinderPanel" Orientation="Horizontal">
                 <View:ContextualLinkBinder PolemicType="Polemic"  x:Name="Binder1" />
@@ -80,6 +81,6 @@
           
 
         </StackPanel>
-		<Button Input:CommandService.Command="OkClick" Input:CommandService.CommandParameter="{Binding}" x:Name="AnnotationOkButton"  Content="Ok" HorizontalAlignment="Right" Width="48" d:LayoutOverrides="HorizontalAlignment" RenderTransformOrigin="0.508,-0.091" Margin="0,282,8,0" VerticalAlignment="Top" Height="30"/>
+		<Button Input:CommandService.Command="OkClick" Input:CommandService.CommandParameter="{Binding}" x:Name="AnnotationOkButton"  Content="{Binding OkLabel, Converter={StaticResource TagConvert}}" HorizontalAlignment="Right" Width="48" d:LayoutOverrides="HorizontalAlignment" RenderTransformOrigin="0.508,-0.091" Margin="0,282,8,0" VerticalAlignment="Top" Height="30"/>
 	</Grid>
 </UserControl>
\ No newline at end of file
--- a/client/src/Iri.Modernisation.Controls/View/HeaderControl/ButtonHeaderControl.xaml	Wed Nov 18 17:01:49 2009 +0100
+++ b/client/src/Iri.Modernisation.Controls/View/HeaderControl/ButtonHeaderControl.xaml	Thu Nov 19 12:12:55 2009 +0100
@@ -1,10 +1,11 @@
 <UserControl x:Class="Iri.Modernisation.Controls.View.ButtonHeaderControl"
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
- 
+ xmlns:Lang="clr-namespace:Iri.Modernisation.Lang;assembly=Iri.Modernisation.Lang"
          
     Width="58" Height="42" ><!--MouseLeftButtonUp="UserControl_MouseLeftButtonUp">-->
     <UserControl.Resources>
+        <Lang:LangResource x:Name="LangLabels" x:Key="LangLabels"></Lang:LangResource>
         <Storyboard x:Name="animEnter">
             <DoubleAnimation To="1" FillBehavior="HoldEnd" Storyboard.TargetName="brushLight" Storyboard.TargetProperty="Opacity"
                                      Duration="0:0:0.1"/>
--- a/client/src/Iri.Modernisation.Controls/View/HeaderControl/ButtonHeaderControl.xaml.cs	Wed Nov 18 17:01:49 2009 +0100
+++ b/client/src/Iri.Modernisation.Controls/View/HeaderControl/ButtonHeaderControl.xaml.cs	Thu Nov 19 12:12:55 2009 +0100
@@ -36,15 +36,24 @@
 
         string _title = String.Empty;
 
+
         /// <summary>
         /// Title of the toolbar item
         /// </summary>
-        public string Title
+    
+        public String Title
         {
-            get { return _title; }
-            set { _title = value; }
+            get { return (String)GetValue(TitleProperty);}
+            set { SetValue(TitleProperty, value); _title = value; }
         }
 
+        // Using a DependencyProperty as the backing store for Title.  This enables animation, styling, binding, etc...
+        public static readonly DependencyProperty TitleProperty =
+            DependencyProperty.Register("Title", typeof(String), typeof(ButtonHeaderControl),    null);
+
+
+
+     
 
         /// <summary>
         /// The transition color when we hover over the button
--- a/client/src/Iri.Modernisation.Controls/View/HeaderControl/HeaderControl.xaml	Wed Nov 18 17:01:49 2009 +0100
+++ b/client/src/Iri.Modernisation.Controls/View/HeaderControl/HeaderControl.xaml	Thu Nov 19 12:12:55 2009 +0100
@@ -2,8 +2,16 @@
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:local="clr-namespace:Iri.Modernisation.Controls.View"
-                  xmlns:Input="clr-namespace:SLExtensions.Input;assembly=SLExtensions"
-    Width="900" Height="40" FontFamily="Verdana" >
+    xmlns:Input="clr-namespace:SLExtensions.Input;assembly=SLExtensions"
+    xmlns:Lang="clr-namespace:Iri.Modernisation.Lang;assembly=Iri.Modernisation.Lang"
+    Width="900" Height="40" FontFamily="Verdana"   
+    >
+    <UserControl.Resources>
+        <ResourceDictionary>
+            <Lang:LangResource x:Name="LangLabels" x:Key="LangLabels"></Lang:LangResource>
+        </ResourceDictionary>
+    </UserControl.Resources>
+    
     <Grid x:Name="LayoutRoot" Background="White" >
         <Image Source="images/bgcompact.jpg" Stretch="UniformToFill" Height="43" HorizontalAlignment="Stretch" VerticalAlignment="Top"/>
         <Rectangle VerticalAlignment="Top" HorizontalAlignment="Stretch" Fill="Black" Height="43" />
@@ -13,19 +21,19 @@
                    Foreground="#FFffffff" />
 
         <StackPanel Orientation="Horizontal" VerticalAlignment="Top" Margin="293,0,0,0" Background="Transparent" HorizontalAlignment="Left" >
-            <local:ButtonHeaderControl  Input:CommandService.Command="ButtonClick"   Input:CommandService.CommandParameter="{Binding}" Title="Affichage Annotations" ImageSource="images/home.png" TransitionColor="#7f002222" Margin="2,0,0,0" MouseMove="ButtonSeven_MouseMove"
+            <local:ButtonHeaderControl  Input:CommandService.Command="ButtonClick"   Input:CommandService.CommandParameter="{Binding}" Title="{Binding MenuDisplayAnnotations, Source={StaticResource LangLabels}}" ImageSource="images/home.png" TransitionColor="#7f002222" Margin="2,0,0,0" MouseMove="ButtonSeven_MouseMove"
                                NavigateUri="#"/>
-            <local:ButtonHeaderControl  Input:CommandService.Command="ButtonClick"   Input:CommandService.CommandParameter="{Binding}" Title="Affichage Sequences" ImageSource="images/games.png" TransitionColor="#7f220022" Margin="2,0,0,0" MouseMove="ButtonSeven_MouseMove"
+            <local:ButtonHeaderControl  Input:CommandService.Command="ButtonClick"   Input:CommandService.CommandParameter="{Binding}" Title="{Binding MenuDisplaySequences, Source={StaticResource LangLabels}}" ImageSource="images/games.png" TransitionColor="#7f220022" Margin="2,0,0,0" MouseMove="ButtonSeven_MouseMove"
                                NavigateUri="#"/>
         </StackPanel>
 
         <StackPanel Orientation="Horizontal" VerticalAlignment="Top" Margin="0,0,3,0" Background="Transparent" HorizontalAlignment="Right" Width="309" >
             
-            <local:ButtonHeaderControl  Input:CommandService.Command="ButtonClick"    Input:CommandService.CommandParameter="{Binding}" Title="Messagerie" ImageSource="images/sourcecode.png" TransitionColor="#7f220000" Margin="2,0,0,0" MouseMove="ButtonSeven_MouseMove"
+            <local:ButtonHeaderControl  Input:CommandService.Command="ButtonClick"    Input:CommandService.CommandParameter="{Binding}" Title="{Binding MenuMessagingLabel, Source={StaticResource LangLabels}}" ImageSource="images/sourcecode.png" TransitionColor="#7f220000" Margin="2,0,0,0" MouseMove="ButtonSeven_MouseMove"
                                NavigateUri="#s"/>
-            <local:ButtonHeaderControl  Input:CommandService.Command="ButtonClick"    Input:CommandService.CommandParameter="{Binding}" Title="Préférence" ImageSource="images/tutorials.png" TransitionColor="#7f000022" Margin="2,0,0,0" MouseMove="ButtonSeven_MouseMove"
+            <local:ButtonHeaderControl  Input:CommandService.Command="ButtonClick"    Input:CommandService.CommandParameter="{Binding}" Title="{Binding MenuPreferenceLabel, Source={StaticResource LangLabels}}" ImageSource="images/tutorials.png" TransitionColor="#7f000022" Margin="2,0,0,0" MouseMove="ButtonSeven_MouseMove"
                                NavigateUri="#s"/>
-            <local:ButtonHeaderControl  Input:CommandService.Command="ButtonClick"   Input:CommandService.CommandParameter="{Binding}" Title="Déconnexion" ImageSource="images/blog.png" TransitionColor="#7f002200" Margin="2,0,0,0" MouseMove="ButtonSeven_MouseMove"
+            <local:ButtonHeaderControl  Input:CommandService.Command="ButtonClick"   Input:CommandService.CommandParameter="{Binding}" Title="{Binding MenuLogoutLabel, Source={StaticResource LangLabels}}"  ImageSource="images/blog.png" TransitionColor="#7f002200" Margin="2,0,0,0" MouseMove="ButtonSeven_MouseMove"
                                NavigateUri="#" OpenInNewWindow="True"/>
             
         </StackPanel>
--- a/client/src/Iri.Modernisation.Controls/View/NavigationBar/ConsultMenu.xaml	Wed Nov 18 17:01:49 2009 +0100
+++ b/client/src/Iri.Modernisation.Controls/View/NavigationBar/ConsultMenu.xaml	Thu Nov 19 12:12:55 2009 +0100
@@ -7,11 +7,16 @@
 	x:Class="Iri.Modernisation.Controls.View.ConsultMenu"
 	xmlns:View="clr-namespace:Iri.Modernisation.Controls.View"
 	d:DesignWidth="184"
+     xmlns:Lang="clr-namespace:Iri.Modernisation.Lang;assembly=Iri.Modernisation.Lang"
      xmlns:Input="clr-namespace:SLExtensions.Input;assembly=SLExtensions" Height="280"
 	>
-
-	<StackPanel x:Name="ConsultMenuPanel">
-		<TextBlock Style="{StaticResource CommonTextBlock}" x:Name="textBlock"  Text="Consultation" TextWrapping="Wrap" />
+    <UserControl.Resources>
+        <ResourceDictionary>
+        <Lang:LangResource x:Name="LangLabels" x:Key="LangLabels"></Lang:LangResource>
+        </ResourceDictionary>
+    </UserControl.Resources>
+        <StackPanel x:Name="ConsultMenuPanel">
+		<TextBlock Style="{StaticResource CommonTextBlock}" x:Name="textBlock"  Text="{Binding ConsultationViewTitle, Source={StaticResource LangLabels}}" TextWrapping="Wrap" />
 	
 		
 			<Grid>
@@ -22,9 +27,9 @@
 		<StackPanel x:Name="SearchModulePanel" Height="80" Margin="0,0,8,0">
   
                 <StackPanel x:Name="SearchOptionPanel" Height="72">
-				<RadioButton IsChecked="{Binding SearchAuthor, Mode=TwoWay}" x:Name="AuthorCheckBox" Height="25"  VerticalAlignment="Top" Content="Author" Foreground="White"  />
-				<RadioButton IsChecked="{Binding SearchContributer, Mode=TwoWay}" x:Name="ContributerTextBox" Height="25"  VerticalAlignment="Top" Content="Contributer" Foreground="White" />
-				<RadioButton IsChecked="{Binding SearchTag, Mode=TwoWay}" x:Name="KeyWordCheckBox" Height="25"  VerticalAlignment="Top" Content="KeyWord" Foreground="White" />
+				<RadioButton IsChecked="{Binding SearchAuthor, Mode=TwoWay}" x:Name="AuthorCheckBox" Height="25"  VerticalAlignment="Top" Content="{Binding ConsultationSearchByAuthorLabel, Source={StaticResource LangLabels}}" Foreground="White"  />
+				<RadioButton IsChecked="{Binding SearchContributer, Mode=TwoWay}" x:Name="ContributerTextBox" Height="25"  VerticalAlignment="Top" Content="{Binding ConsultationSearchByContributerLabel, Source={StaticResource LangLabels}}" Foreground="White" />
+				<RadioButton IsChecked="{Binding SearchTag, Mode=TwoWay}" x:Name="KeyWordCheckBox" Height="25"  VerticalAlignment="Top" Content="{Binding ConsultationSearchByKeyWordsLabel, Source={StaticResource LangLabels}}" Foreground="White" />
 			</StackPanel>
 		</StackPanel>
 		<ListBox x:Name="ResultSearchList" Height="152" ItemsSource="{Binding VideoBooks}"  Margin="0,0,8,0">
--- a/client/src/Iri.Modernisation.Controls/View/NavigationBar/PersonnalChutier.xaml	Wed Nov 18 17:01:49 2009 +0100
+++ b/client/src/Iri.Modernisation.Controls/View/NavigationBar/PersonnalChutier.xaml	Thu Nov 19 12:12:55 2009 +0100
@@ -1,10 +1,16 @@
 <UserControl x:Class="Iri.Modernisation.Controls.View.PersonnalChutier"
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
+              xmlns:Lang="clr-namespace:Iri.Modernisation.Lang;assembly=Iri.Modernisation.Lang"
               xmlns:Input="clr-namespace:SLExtensions.Input;assembly=SLExtensions" 
    >
+    <UserControl.Resources>
+        <ResourceDictionary>
+            <Lang:LangResource x:Name="LangLabels" x:Key="LangLabels"></Lang:LangResource>
+        </ResourceDictionary>
+    </UserControl.Resources>
     <StackPanel x:Name="ChutierPanel">
-        <TextBlock Style="{StaticResource CommonTextBlock}"  x:Name="TitleChutier" Height="16" Text="Mes Annotations" TextWrapping="Wrap" Margin="0,0,8,0"/>
+        <TextBlock Style="{StaticResource CommonTextBlock}"  x:Name="TitleChutier" Height="16" Text="{Binding PersonalChutierTitle, Source={StaticResource LangLabels}}" TextWrapping="Wrap" Margin="0,0,8,0"/>
         <StackPanel x:Name="AnnotedPanel" Height="160">
 
           
--- a/client/src/Iri.Modernisation.Controls/View/NavigationBar/ProductionMenu.xaml	Wed Nov 18 17:01:49 2009 +0100
+++ b/client/src/Iri.Modernisation.Controls/View/NavigationBar/ProductionMenu.xaml	Thu Nov 19 12:12:55 2009 +0100
@@ -5,14 +5,21 @@
 	xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
 	mc:Ignorable="d"
     xmlns:Input="clr-namespace:SLExtensions.Input;assembly=SLExtensions"
-	x:Class="Iri.Modernisation.Controls.View.ProductionMenu" Height="64" Width="120">
-
+	x:Class="Iri.Modernisation.Controls.View.ProductionMenu" Height="64" Width="120"
+    xmlns:Lang="clr-namespace:Iri.Modernisation.Lang;assembly=Iri.Modernisation.Lang"
+    >
+    
+<UserControl.Resources>
+        <ResourceDictionary>
+            <Lang:LangResource x:Name="LangLabels" x:Key="LangLabels"></Lang:LangResource>
+        </ResourceDictionary>
+    </UserControl.Resources>
 		<StackPanel x:Name="ProductionMenuPanel">
-		<TextBlock  Style="{StaticResource CommonTextBlock}"  x:Name="ProductionMenuLabel"  Text="Production" TextWrapping="Wrap"/>
+		<TextBlock  Style="{StaticResource CommonTextBlock}"  x:Name="ProductionMenuLabel"  Text="{Binding ProductionMenuTitle, Source={StaticResource LangLabels}}" TextWrapping="Wrap"/>
 		<StackPanel Margin="8,0,0,0">
-			<TextBlock Style="{StaticResource CommonTextBlock}"  Input:CommandService.Command="FlipView" >Mon vidéo-livre</TextBlock>
-			<TextBlock Style="{StaticResource CommonTextBlock}" >Créer</TextBlock>
-			<TextBlock Style="{StaticResource CommonTextBlock}"  >Modifier</TextBlock>
+            <TextBlock Style="{StaticResource CommonTextBlock}"  Input:CommandService.Command="FlipView" Text="{Binding ProductionMenuMyBookLabel, Source={StaticResource LangLabels}}" />
+            <TextBlock Style="{StaticResource CommonTextBlock}"  Text="{Binding ProductionMenuCreateLabel, Source={StaticResource LangLabels}}"/>
+            <TextBlock Style="{StaticResource CommonTextBlock}" Text="{Binding ProductionMenuUpdateLabel, Source={StaticResource LangLabels}}"/>
 		</StackPanel>
 	</StackPanel>
 </UserControl>
\ No newline at end of file
--- a/client/src/Iri.Modernisation.Controls/View/NavigationBar/ReferencesChutier.xaml	Wed Nov 18 17:01:49 2009 +0100
+++ b/client/src/Iri.Modernisation.Controls/View/NavigationBar/ReferencesChutier.xaml	Thu Nov 19 12:12:55 2009 +0100
@@ -5,11 +5,17 @@
 	xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
 	mc:Ignorable="d"
 	x:Class="Iri.Modernisation.Controls.View.ReferencesChutier"
+     xmlns:Lang="clr-namespace:Iri.Modernisation.Lang;assembly=Iri.Modernisation.Lang"   
       xmlns:Input="clr-namespace:SLExtensions.Input;assembly=SLExtensions" 
+    
 >
-
+<UserControl.Resources>
+        <ResourceDictionary>
+            <Lang:LangResource x:Name="LangLabels" x:Key="LangLabels"></Lang:LangResource>
+        </ResourceDictionary>
+    </UserControl.Resources>
 	<StackPanel x:Name="ChutierPanel">
-		<TextBlock Style="{StaticResource CommonTextBlock}" x:Name="TitleChutier" Height="16" Text="Mes Références" TextWrapping="Wrap" d:LayoutOverrides="VerticalMargin" Margin="0,0,8,0"/>
+		<TextBlock Style="{StaticResource CommonTextBlock}" x:Name="TitleChutier" Height="16" Text="{Binding ReferencesChutierTitle, Source={StaticResource LangLabels}}" TextWrapping="Wrap" d:LayoutOverrides="VerticalMargin" Margin="0,0,8,0"/>
 		<StackPanel x:Name="AnnotedPanel" Height="160" d:LayoutOverrides="Height, VerticalMargin">
 		
 			
--- a/client/src/Iri.Modernisation.Controls/ViewModel/HeaderControl/HeaderControlVM.cs	Wed Nov 18 17:01:49 2009 +0100
+++ b/client/src/Iri.Modernisation.Controls/ViewModel/HeaderControl/HeaderControlVM.cs	Thu Nov 19 12:12:55 2009 +0100
@@ -25,7 +25,7 @@
                 }
                 else
                 {
-                    return "Non Connecté";
+                    return Iri.Modernisation.Lang.LangResource.MenuNotConnectedLabel;
                 }
             }
             set
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/src/Iri.Modernisation.Lang/Iri.Modernisation.Lang.csproj	Thu Nov 19 12:12:55 2009 +0100
@@ -0,0 +1,95 @@
+<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>9.0.30729</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{75BD0E1B-AFDA-48E1-B665-D51107295079}</ProjectGuid>
+    <ProjectTypeGuids>{A1591282-1198-4647-A2B1-27E5FF5F6F3B};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Iri.Modernisation.Lang</RootNamespace>
+    <AssemblyName>Iri.Modernisation.Lang</AssemblyName>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+    <SilverlightApplication>false</SilverlightApplication>
+    <ValidateXaml>true</ValidateXaml>
+    <ThrowErrorsInValidation>true</ThrowErrorsInValidation>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>Bin\Debug</OutputPath>
+    <DefineConstants>DEBUG;TRACE;SILVERLIGHT</DefineConstants>
+    <NoStdLib>true</NoStdLib>
+    <NoConfig>true</NoConfig>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>Bin\Release</OutputPath>
+    <DefineConstants>TRACE;SILVERLIGHT</DefineConstants>
+    <NoStdLib>true</NoStdLib>
+    <NoConfig>true</NoConfig>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System.Windows" />
+    <Reference Include="mscorlib" />
+    <Reference Include="system" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml" />
+    <Reference Include="System.Net" />
+    <Reference Include="System.Windows.Browser" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="LangResource.en-US.Designer.cs">
+      <DependentUpon>LangResource.en-US.resx</DependentUpon>
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+    </Compile>
+    <Compile Include="LangResource.fr-FR.Designer.cs">
+      <DependentUpon>LangResource.fr-FR.resx</DependentUpon>
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+    </Compile>
+    <Compile Include="LangResource.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>LangResource.resx</DependentUpon>
+    </Compile>
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="LangResource.en-US.resx">
+      <Generator>PublicResXFileCodeGenerator</Generator>
+      <LastGenOutput>LangResource.en-US.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+    <EmbeddedResource Include="LangResource.fr-FR.resx">
+      <Generator>PublicResXFileCodeGenerator</Generator>
+      <LastGenOutput>LangResource.fr-FR.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+    <EmbeddedResource Include="LangResource.resx">
+      <Generator>PublicResXFileCodeGenerator</Generator>
+      <LastGenOutput>LangResource.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+  </ItemGroup>
+  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Silverlight\v3.0\Microsoft.Silverlight.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+  <ProjectExtensions>
+    <VisualStudio>
+      <FlavorProperties GUID="{A1591282-1198-4647-A2B1-27E5FF5F6F3B}">
+        <SilverlightProjectProperties />
+      </FlavorProperties>
+    </VisualStudio>
+  </ProjectExtensions>
+</Project>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/src/Iri.Modernisation.Lang/LangResource.Designer.cs	Thu Nov 19 12:12:55 2009 +0100
@@ -0,0 +1,252 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:2.0.50727.3082
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Iri.Modernisation.Lang {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    public class LangResource {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        public LangResource() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        public static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Iri.Modernisation.Lang.LangResource", typeof(LangResource).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        public static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to AnnotationMakerAddLinkLabel.
+        /// </summary>
+        public static string AnnotationMakerAddLinkLabel {
+            get {
+                return ResourceManager.GetString("AnnotationMakerAddLinkLabel", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to AnnotationMakerTitle.
+        /// </summary>
+        public static string AnnotationMakerTitle {
+            get {
+                return ResourceManager.GetString("AnnotationMakerTitle", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to PersonalChutierSearchByAuthorLabel.
+        /// </summary>
+        public static string ConsultationSearchByAuthorLabel {
+            get {
+                return ResourceManager.GetString("ConsultationSearchByAuthorLabel", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to PersonalChutierSearchByContributerLabel.
+        /// </summary>
+        public static string ConsultationSearchByContributerLabel {
+            get {
+                return ResourceManager.GetString("ConsultationSearchByContributerLabel", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to PersonalChutierSearchByKeyWordsLabel.
+        /// </summary>
+        public static string ConsultationSearchByKeyWordsLabel {
+            get {
+                return ResourceManager.GetString("ConsultationSearchByKeyWordsLabel", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to ConsultationViewTitle.
+        /// </summary>
+        public static string ConsultationViewTitle {
+            get {
+                return ResourceManager.GetString("ConsultationViewTitle", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to DisplayLabel.
+        /// </summary>
+        public static string DisplayLabel {
+            get {
+                return ResourceManager.GetString("DisplayLabel", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to MenuDisplayAnnotation.
+        /// </summary>
+        public static string MenuDisplayAnnotations {
+            get {
+                return ResourceManager.GetString("MenuDisplayAnnotations", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to MenuDisplaySequences.
+        /// </summary>
+        public static string MenuDisplaySequences {
+            get {
+                return ResourceManager.GetString("MenuDisplaySequences", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to MenuLoginLabel.
+        /// </summary>
+        public static string MenuLoginLabel {
+            get {
+                return ResourceManager.GetString("MenuLoginLabel", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to MenuLogoutLabel.
+        /// </summary>
+        public static string MenuLogoutLabel {
+            get {
+                return ResourceManager.GetString("MenuLogoutLabel", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to MenuMessagingLabel.
+        /// </summary>
+        public static string MenuMessagingLabel {
+            get {
+                return ResourceManager.GetString("MenuMessagingLabel", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to MenuNotConnectedLabel.
+        /// </summary>
+        public static string MenuNotConnectedLabel {
+            get {
+                return ResourceManager.GetString("MenuNotConnectedLabel", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to MenuPreferenceLabel.
+        /// </summary>
+        public static string MenuPreferenceLabel {
+            get {
+                return ResourceManager.GetString("MenuPreferenceLabel", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to OkLabel.
+        /// </summary>
+        public static string OkLabel {
+            get {
+                return ResourceManager.GetString("OkLabel", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to PersonalChutierTitle.
+        /// </summary>
+        public static string PersonalChutierTitle {
+            get {
+                return ResourceManager.GetString("PersonalChutierTitle", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to ProductionMenuCreateLabel.
+        /// </summary>
+        public static string ProductionMenuCreateLabel {
+            get {
+                return ResourceManager.GetString("ProductionMenuCreateLabel", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to ProductionMenuMyBookLabel.
+        /// </summary>
+        public static string ProductionMenuMyBookLabel {
+            get {
+                return ResourceManager.GetString("ProductionMenuMyBookLabel", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to ProductionMenuTitle.
+        /// </summary>
+        public static string ProductionMenuTitle {
+            get {
+                return ResourceManager.GetString("ProductionMenuTitle", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to ProductionMenuUpdateLabel.
+        /// </summary>
+        public static string ProductionMenuUpdateLabel {
+            get {
+                return ResourceManager.GetString("ProductionMenuUpdateLabel", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to ReferencesChutierTitle.
+        /// </summary>
+        public static string ReferencesChutierTitle {
+            get {
+                return ResourceManager.GetString("ReferencesChutierTitle", resourceCulture);
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/src/Iri.Modernisation.Lang/LangResource.en-US.resx	Thu Nov 19 12:12:55 2009 +0100
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="AnnotationMakerAddLinkLabel" xml:space="preserve">
+    <value>Add a contextual link</value>
+  </data>
+  <data name="AnnotationMakerTitle" xml:space="preserve">
+    <value>Annote this element</value>
+  </data>
+  <data name="ConsultationSearchByAuthorLabel" xml:space="preserve">
+    <value>Author</value>
+  </data>
+  <data name="ConsultationSearchByContributerLabel" xml:space="preserve">
+    <value>Contributer</value>
+  </data>
+  <data name="ConsultationSearchByKeyWordsLabel" xml:space="preserve">
+    <value>Keyword</value>
+  </data>
+  <data name="ConsultationViewTitle" xml:space="preserve">
+    <value>Consult</value>
+  </data>
+  <data name="DisplayLabel" xml:space="preserve">
+    <value>Display</value>
+  </data>
+  <data name="MenuDisplayAnnotations" xml:space="preserve">
+    <value>Display Annotations</value>
+  </data>
+  <data name="MenuDisplaySequences" xml:space="preserve">
+    <value>Display Sequences</value>
+  </data>
+  <data name="MenuLoginLabel" xml:space="preserve">
+    <value>Login</value>
+  </data>
+  <data name="MenuLogoutLabel" xml:space="preserve">
+    <value>Logout</value>
+  </data>
+  <data name="MenuMessagingLabel" xml:space="preserve">
+    <value>Messaging</value>
+  </data>
+  <data name="MenuNotConnectedLabel" xml:space="preserve">
+    <value>Not Connected</value>
+  </data>
+  <data name="MenuPreferenceLabel" xml:space="preserve">
+    <value>Preference</value>
+  </data>
+  <data name="OkLabel" xml:space="preserve">
+    <value>Ok</value>
+  </data>
+  <data name="PersonalChutierTitle" xml:space="preserve">
+    <value>My Chutier</value>
+  </data>
+  <data name="ProductionMenuCreateLabel" xml:space="preserve">
+    <value>Create a VideoBook</value>
+  </data>
+  <data name="ProductionMenuMyBookLabel" xml:space="preserve">
+    <value>My VideoBook</value>
+  </data>
+  <data name="ProductionMenuTitle" xml:space="preserve">
+    <value>Production</value>
+  </data>
+  <data name="ProductionMenuUpdateLabel" xml:space="preserve">
+    <value>Update</value>
+  </data>
+  <data name="ReferencesChutierTitle" xml:space="preserve">
+    <value>My References</value>
+  </data>
+</root>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/src/Iri.Modernisation.Lang/LangResource.fr-FR.resx	Thu Nov 19 12:12:55 2009 +0100
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="AnnotationMakerAddLinkLabel" xml:space="preserve">
+    <value>Ajouter un lien Contextuel</value>
+  </data>
+  <data name="AnnotationMakerTitle" xml:space="preserve">
+    <value>Annotez ce segment</value>
+  </data>
+  <data name="ConsultationSearchByAuthorLabel" xml:space="preserve">
+    <value>Auteur</value>
+  </data>
+  <data name="ConsultationSearchByContributerLabel" xml:space="preserve">
+    <value>Contributeur</value>
+  </data>
+  <data name="ConsultationSearchByKeyWordsLabel" xml:space="preserve">
+    <value>Mots-clefs</value>
+  </data>
+  <data name="ConsultationViewTitle" xml:space="preserve">
+    <value>Consultation</value>
+  </data>
+  <data name="DisplayLabel" xml:space="preserve">
+    <value>Afficher</value>
+  </data>
+  <data name="MenuDisplayAnnotations" xml:space="preserve">
+    <value>Afficher Annotations</value>
+  </data>
+  <data name="MenuDisplaySequences" xml:space="preserve">
+    <value>Afficher Séquences</value>
+  </data>
+  <data name="MenuLoginLabel" xml:space="preserve">
+    <value>Connexion</value>
+  </data>
+  <data name="MenuLogoutLabel" xml:space="preserve">
+    <value>Déconnexion</value>
+  </data>
+  <data name="MenuMessagingLabel" xml:space="preserve">
+    <value>Messagerie</value>
+  </data>
+  <data name="MenuNotConnectedLabel" xml:space="preserve">
+    <value>Non Connecté</value>
+  </data>
+  <data name="MenuPreferenceLabel" xml:space="preserve">
+    <value>Préférence</value>
+  </data>
+  <data name="OkLabel" xml:space="preserve">
+    <value>Ok</value>
+  </data>
+  <data name="PersonalChutierTitle" xml:space="preserve">
+    <value>Mes Annotations</value>
+  </data>
+  <data name="ProductionMenuCreateLabel" xml:space="preserve">
+    <value>Créer un VidéoLivre</value>
+  </data>
+  <data name="ProductionMenuMyBookLabel" xml:space="preserve">
+    <value>Mon VidéoLive</value>
+  </data>
+  <data name="ProductionMenuTitle" xml:space="preserve">
+    <value>Production</value>
+  </data>
+  <data name="ProductionMenuUpdateLabel" xml:space="preserve">
+    <value>Modifier</value>
+  </data>
+  <data name="ReferencesChutierTitle" xml:space="preserve">
+    <value>Mes Références</value>
+  </data>
+</root>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/src/Iri.Modernisation.Lang/LangResource.resx	Thu Nov 19 12:12:55 2009 +0100
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="AnnotationMakerAddLinkLabel" xml:space="preserve">
+    <value>AnnotationMakerAddLinkLabel</value>
+  </data>
+  <data name="AnnotationMakerTitle" xml:space="preserve">
+    <value>AnnotationMakerTitle</value>
+  </data>
+  <data name="ConsultationSearchByAuthorLabel" xml:space="preserve">
+    <value>PersonalChutierSearchByAuthorLabel</value>
+  </data>
+  <data name="ConsultationSearchByContributerLabel" xml:space="preserve">
+    <value>PersonalChutierSearchByContributerLabel</value>
+  </data>
+  <data name="ConsultationSearchByKeyWordsLabel" xml:space="preserve">
+    <value>PersonalChutierSearchByKeyWordsLabel</value>
+  </data>
+  <data name="ConsultationViewTitle" xml:space="preserve">
+    <value>ConsultationViewTitle</value>
+  </data>
+  <data name="DisplayLabel" xml:space="preserve">
+    <value>DisplayLabel</value>
+  </data>
+  <data name="MenuDisplayAnnotations" xml:space="preserve">
+    <value>MenuDisplayAnnotation</value>
+  </data>
+  <data name="MenuDisplaySequences" xml:space="preserve">
+    <value>MenuDisplaySequences</value>
+  </data>
+  <data name="MenuLoginLabel" xml:space="preserve">
+    <value>MenuLoginLabel</value>
+  </data>
+  <data name="MenuLogoutLabel" xml:space="preserve">
+    <value>MenuLogoutLabel</value>
+  </data>
+  <data name="MenuMessagingLabel" xml:space="preserve">
+    <value>MenuMessagingLabel</value>
+  </data>
+  <data name="MenuNotConnectedLabel" xml:space="preserve">
+    <value>MenuNotConnectedLabel</value>
+  </data>
+  <data name="MenuPreferenceLabel" xml:space="preserve">
+    <value>MenuPreferenceLabel</value>
+  </data>
+  <data name="OkLabel" xml:space="preserve">
+    <value>OkLabel</value>
+  </data>
+  <data name="PersonalChutierTitle" xml:space="preserve">
+    <value>PersonalChutierTitle</value>
+  </data>
+  <data name="ProductionMenuCreateLabel" xml:space="preserve">
+    <value>ProductionMenuCreateLabel</value>
+  </data>
+  <data name="ProductionMenuMyBookLabel" xml:space="preserve">
+    <value>ProductionMenuMyBookLabel</value>
+  </data>
+  <data name="ProductionMenuTitle" xml:space="preserve">
+    <value>ProductionMenuTitle</value>
+  </data>
+  <data name="ProductionMenuUpdateLabel" xml:space="preserve">
+    <value>ProductionMenuUpdateLabel</value>
+  </data>
+  <data name="ReferencesChutierTitle" xml:space="preserve">
+    <value>ReferencesChutierTitle</value>
+  </data>
+</root>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/src/Iri.Modernisation.Lang/Properties/AssemblyInfo.cs	Thu Nov 19 12:12:55 2009 +0100
@@ -0,0 +1,35 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Iri.Modernisation.Lang")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Centre Georges Pompidou")]
+[assembly: AssemblyProduct("Iri.Modernisation.Lang")]
+[assembly: AssemblyCopyright("Copyright © Centre Georges Pompidou 2009")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("0784b0e9-373e-4dc7-bf4b-16e6c23d652c")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers 
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
--- a/client/src/Iri.Modernisation.sln	Wed Nov 18 17:01:49 2009 +0100
+++ b/client/src/Iri.Modernisation.sln	Thu Nov 19 12:12:55 2009 +0100
@@ -11,6 +11,8 @@
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Iri.Modernisation.BaseMVVM", "Iri.Modernisation.BaseMVVM\Iri.Modernisation.BaseMVVM.csproj", "{78F73254-9730-418B-84F5-9F7F3EB8F029}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Iri.Modernisation.Lang", "Iri.Modernisation.Lang\Iri.Modernisation.Lang.csproj", "{75BD0E1B-AFDA-48E1-B665-D51107295079}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -37,6 +39,10 @@
 		{78F73254-9730-418B-84F5-9F7F3EB8F029}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{78F73254-9730-418B-84F5-9F7F3EB8F029}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{78F73254-9730-418B-84F5-9F7F3EB8F029}.Release|Any CPU.Build.0 = Release|Any CPU
+		{75BD0E1B-AFDA-48E1-B665-D51107295079}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{75BD0E1B-AFDA-48E1-B665-D51107295079}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{75BD0E1B-AFDA-48E1-B665-D51107295079}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{75BD0E1B-AFDA-48E1-B665-D51107295079}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
--- a/client/src/Iri.Modernisation/App.xaml.cs	Wed Nov 18 17:01:49 2009 +0100
+++ b/client/src/Iri.Modernisation/App.xaml.cs	Thu Nov 19 12:12:55 2009 +0100
@@ -9,7 +9,8 @@
 using System.Windows.Media;
 using System.Windows.Media.Animation;
 using System.Windows.Shapes;
-
+using System.Threading;
+using System.Globalization;
 namespace Iri.Modernisation
 {
     public partial class App : Application
@@ -26,6 +27,9 @@
 
         private void Application_Startup(object sender, StartupEventArgs e)
         {
+            CultureInfo culture = new CultureInfo("en-US");
+            Thread.CurrentThread.CurrentCulture = culture;
+            Thread.CurrentThread.CurrentUICulture = culture; 
             this.RootVisual = new MainPage();
         }
 
--- a/client/src/Iri.Modernisation/Iri.Modernisation.csproj	Wed Nov 18 17:01:49 2009 +0100
+++ b/client/src/Iri.Modernisation/Iri.Modernisation.csproj	Thu Nov 19 12:12:55 2009 +0100
@@ -12,8 +12,7 @@
     <AssemblyName>Iri.Modernisation</AssemblyName>
     <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
     <SilverlightApplication>true</SilverlightApplication>
-    <SupportedCultures>
-    </SupportedCultures>
+    <SupportedCultures>fr-FR;en-US</SupportedCultures>
     <XapOutputs>true</XapOutputs>
     <GenerateSilverlightManifest>true</GenerateSilverlightManifest>
     <XapFilename>Iri.Modernisation.xap</XapFilename>
--- a/client/src/Iri.Modernisation/MainPage.xaml.cs	Wed Nov 18 17:01:49 2009 +0100
+++ b/client/src/Iri.Modernisation/MainPage.xaml.cs	Thu Nov 19 12:12:55 2009 +0100
@@ -21,8 +21,9 @@
     {
         public MainPage()
         {
-          
+        
             InitializeComponent();
+            Start();
            
         }
         private void Start()