浏览代码

Merge pull request #4 from jancoow/MultiLanguage

Added multilanguage functionality to the HelpPages
Janco Kock 10 年之前
父节点
当前提交
872aa10755

+ 28 - 2
Breda-Tour/App.xaml.cs

@@ -1,5 +1,7 @@
 using System;
+using System.Collections;
 using System.Collections.Generic;
+using System.Diagnostics;
 using System.IO;
 using System.Linq;
 using System.Runtime.InteropServices.WindowsRuntime;
@@ -7,6 +9,7 @@ using Windows.ApplicationModel;
 using Windows.ApplicationModel.Activation;
 using Windows.Foundation;
 using Windows.Foundation.Collections;
+using Windows.Globalization;
 using Windows.UI.Xaml;
 using Windows.UI.Xaml.Controls;
 using Windows.UI.Xaml.Controls.Primitives;
@@ -22,11 +25,34 @@ namespace Breda_Tour
     /// </summary>
     sealed partial class App : Application
     {
+        #region Languages
+        private static string _language;
+        /// <summary>
+        /// Current languagues: [0] = nl-NL, [1] = en-US
+        /// </summary>
+        public static string[] Languages { get; } = { "nl-NL", "en-US" };
         /// <summary>
         /// Global current language property
         /// </summary>
-        public static string Language { get; set; }
-
+        public static string Language {
+            get {
+                return _language;
+            }
+            set {
+                _language = value;
+                if (value == Languages[0])
+                {
+                    ApplicationLanguages.PrimaryLanguageOverride = "nl-NL";
+                    Debug.WriteLine("mijn taal is:" + ApplicationLanguages.ManifestLanguages.First());
+                }
+                else if (value == Languages[1])
+                {
+                    ApplicationLanguages.PrimaryLanguageOverride = "en-US";
+                    Debug.WriteLine("my language is:" + ApplicationLanguages.ManifestLanguages.First());
+                }
+            }
+        }
+        #endregion
         /// <summary>
         /// Initializes the singleton application object.  This is the first line of authored code
         /// executed, and as such is the logical equivalent of main() or WinMain().

+ 12 - 0
Breda-Tour/Data/HelpPageDatabase.cs

@@ -14,6 +14,7 @@ namespace Breda_Tour.Data
     public class HelpPageDatabase
     {
         public ObservableCollection<HelpItem> HelpItems;
+        
         public HelpPageDatabase()
         {
             HelpItems = new ObservableCollection<HelpItem>();
@@ -30,5 +31,16 @@ namespace Breda_Tour.Data
                 HelpItems.Add(JsonConvert.DeserializeObject<HelpItem>(helpitem.ToString()));
             }
         }
+
+        public ObservableCollection<HelpItem> GetCurrentHelpItems()
+        {
+            ObservableCollection<HelpItem> helpItems = new ObservableCollection<HelpItem>();
+            foreach(var item in HelpItems)
+            {
+                if (item.Language == App.Language)
+                    helpItems.Add(item);
+            }
+            return helpItems;
+        }
     }
 }

+ 2 - 2
Breda-Tour/HelpScreen/HelpPage.xaml

@@ -40,9 +40,9 @@
                 <ColumnDefinition/>
                 <ColumnDefinition/>
             </Grid.ColumnDefinitions>
-            <TextBlock Tapped="PageBack_Tapped" Foreground="White" FontSize="18" Text="Back" Margin="20,0,0,0" VerticalAlignment="Center"/>
+            <TextBlock x:Uid="HelpPagetxtBack" Tapped="PageBack_Tapped" Foreground="White" FontSize="18" Text="Back" Margin="20,0,0,0" VerticalAlignment="Center"/>
             <TextBlock Name="PageNumberTextBlock" Foreground="White" FontSize="18" Text="Page 1 of 4" VerticalAlignment="Center" HorizontalAlignment="Center"  Grid.Column="1"/>
-            <TextBlock Tapped="PageForward_Tapped" Foreground="White" FontSize="18" Text="Next" Margin="0,0,20,0" HorizontalAlignment="Right" VerticalAlignment="Center" Grid.Column="2"/>
+            <TextBlock x:Uid="HelpPagetxtNext" Tapped="PageForward_Tapped" Foreground="White" FontSize="18" Text="Next" Margin="0,0,20,0" HorizontalAlignment="Right" VerticalAlignment="Center" Grid.Column="2"/>
         </Grid>
     </Grid>
 </Page>

+ 12 - 1
Breda-Tour/HelpScreen/HelpPage.xaml.cs

@@ -30,7 +30,18 @@ namespace Breda_Tour.HelpScreen
             {
                 currentpage = pagenumber;
                 this.DataContext = helpitem.HelpItemSteps[currentpage];
-                PageNumberTextBlock.Text = "Page " + (currentpage+1) + " of " + helpitem.HelpItemSteps.Count;
+                if (App.Language == App.Languages[1])
+                {
+                    PageNumberTextBlock.Text = "Page " + (currentpage + 1) + " of " + helpitem.HelpItemSteps.Count;
+                }
+                else if (App.Language == App.Languages[0])
+                {
+                    PageNumberTextBlock.Text = "Pagina " + (currentpage + 1) + " van " + helpitem.HelpItemSteps.Count;
+                }
+                else
+                {
+                    PageNumberTextBlock.Text = "Page " + (currentpage + 1) + " of " + helpitem.HelpItemSteps.Count;
+                }
             }
         }
 

+ 4 - 8
Breda-Tour/SettingsScreen/SettingsPage.xaml.cs

@@ -44,7 +44,7 @@ namespace Breda_Tours.SettingsScreen
 
             DefaultPivot.SetCheckedButton(Breda_Tour.CustomControls.DefaultPivotControl.Tab.Settings);
             HelpPageDatabase helpDatabase = new HelpPageDatabase();
-            HelpItems = helpDatabase.HelpItems;
+            HelpItems = helpDatabase.GetCurrentHelpItems();
             
             DataContext = this;
         }
@@ -57,18 +57,14 @@ namespace Breda_Tours.SettingsScreen
 		
         private void listViewItemSetupLanguage_Tapped(object sender, TappedRoutedEventArgs e)
         {
-            if (App.Language == "nl-NL")
+            if (App.Language == App.Languages[0])
             {
-                App.Language = "en-US";
-                ApplicationLanguages.PrimaryLanguageOverride = "en-US";
-                Debug.WriteLine("my language is:" + ApplicationLanguages.ManifestLanguages.First());
+                App.Language = App.Languages[1];
                 Frame.Navigate(typeof(MainPage));
             }
             else
             {
-                App.Language = "nl-NL";
-                ApplicationLanguages.PrimaryLanguageOverride = "nl-NL";
-                Debug.WriteLine("my language is:" + ApplicationLanguages.ManifestLanguages.First());
+                App.Language = App.Languages[0];
                 Frame.Navigate(typeof(MainPage));
             }
         }

+ 2 - 6
Breda-Tour/SplashScreen/SplashPage.xaml.cs

@@ -46,9 +46,7 @@ namespace Breda_Tour.SplashScreen
         /// </summary>
         private void Button_English_Click(object sender, RoutedEventArgs e)
         {
-            App.Language = "en-US";
-            ApplicationLanguages.PrimaryLanguageOverride = "en-US";
-            Debug.WriteLine("my language is:" + ApplicationLanguages.ManifestLanguages.First());
+            App.Language = App.Languages[1];
             f.Navigate(typeof(MainPage));
         }
 
@@ -58,9 +56,7 @@ namespace Breda_Tour.SplashScreen
         /// </summary>
         private void Button_Dutch_Click(object sender, RoutedEventArgs e)
         {
-            App.Language = "nl-NL";
-            ApplicationLanguages.PrimaryLanguageOverride = "nl-NL";
-            Debug.WriteLine("my language is:" + ApplicationLanguages.ManifestLanguages.First());
+            App.Language = App.Languages[0];
             f.Navigate(typeof(MainPage));
         }
 

+ 24 - 4
Breda-Tour/Storage/helpitems/helpitems.json

@@ -1,17 +1,16 @@
 {
   "HelpItems": [
         {
-            "Language" : "nl_NL",
+            "Language" : "nl-NL",
             "Title" : "Taal selecteren",
-            "Steps" : 
-            [
+            "Steps" : [
                 {
                     "Title":"Ga naar het instellingen menu",
                     "Description":"Druk hiervoor op het 3e icoontje bovenin het menu. ",
                     "ImageSource" :"taal_1.jpg"
                 },
                 {
-                    "Title":"Druk op taal instellen",
+                    "Title":"Druk op taal instellen / set language",
                     "Description":"Eerste optie in het menu.",
                     "ImageSource" :"taal_2.jpg"
                 },
@@ -22,5 +21,26 @@
                 }
             ] 
         },
+        {
+			      "Language" : "en-US",
+            "Title" : "Select Language",
+            "Steps" : [
+                {
+                    "Title":"Go to the settings menu",
+                    "Description":"To do that, press on the third icon in the top menu.",
+                    "ImageSource" :"taal_1.jpg"
+                },
+                {
+                    "Title":"Press on taal instellen / set language",
+                    "Description":"First option in the menu",
+                    "ImageSource" :"taal_2.jpg"
+                },
+                {
+                    "Title":"Select the preferred language",
+                    "Description":"Here you can choose between the available languages of the application.",
+                    "ImageSource" :"taal_3.jpg"
+                }
+            ]
+		}
     ]
 }

+ 1 - 1
Breda-Tour/project.lock.json

@@ -11523,7 +11523,7 @@
       ]
     },
     "Microsoft.ApplicationInsights.WindowsApps/1.0.0": {
-      "sha512": "NvBQnFeiFd0O1QdBz06UGApD7zn7ztVi7qO18IsM3EjiXRNgfrEBXB+azNm8XqLY8xGFAqh3HAuSd/wHZMe0XA==",
+      "sha512": "fNCAjIwvbTV+G0dT14bgM5tptsqeSaKQaCrlq7QknOq1Xdm8ZmgsDYddMgXkvykyKLjWyU6fKuOpj6fsQJy+wQ==",
       "type": "Package",
       "files": [
         "[Content_Types].xml",