Implement supporting multiple languages 69/304869/6 accepted/tizen_unified_dev accepted/tizen/unified/20240216.161309 accepted/tizen/unified/dev/20240620.011247 accepted/tizen/unified/toolchain/20240311.070117 accepted/tizen/unified/x/20240220.145920
authorAnuj Kumar Singh <anujk.singh@samsung.com>
Tue, 16 Jan 2024 06:26:11 +0000 (11:56 +0530)
committerAnuj Kumar Singh <anujk.singh@samsung.com>
Thu, 15 Feb 2024 08:37:01 +0000 (14:07 +0530)
Change-Id: Ic9e45119eb21c5dddf2eb6981cfe913a6f398fe1
Signed-off-by: Anuj Kumar Singh <anujk.singh@samsung.com>
14 files changed:
SettingBluetooth/SettingBluetooth/Controller/DeviceController.cs
SettingBluetooth/SettingBluetooth/SettingBluetooth.cs
SettingBluetooth/SettingBluetooth/SettingBluetooth.csproj
SettingBluetooth/SettingBluetooth/TextResources/Resources.Designer.cs [new file with mode: 0644]
SettingBluetooth/SettingBluetooth/TextResources/Resources.en-US.resx [new file with mode: 0644]
SettingBluetooth/SettingBluetooth/TextResources/Resources.ko-KR.resx [new file with mode: 0644]
SettingBluetooth/SettingBluetooth/TextResources/Resources.resx [new file with mode: 0644]
SettingBluetooth/SettingBluetooth/View/BtDetailView.cs
SettingBluetooth/SettingBluetooth/View/BtDeviceView.cs
SettingBluetooth/SettingBluetooth/View/BtMainView.cs
SettingBluetooth/SettingBluetooth/View/ResourceManager.cs [new file with mode: 0644]
SettingBluetooth/SettingBluetooth/View/Resources.cs [deleted file]
SettingBluetooth/SettingBluetooth/tizen-manifest.xml
packaging/org.tizen.cssetting-bluetooth-1.9.0.rpk

index 4da444d1d880d4647f2b32ec39578753a1e70569..105908da92167df1a8d89bd2bf3dfb8d2e418ebe 100644 (file)
@@ -1,4 +1,5 @@
-using SettingCore;
+using SettingBluetooth.TextResources;
+using SettingCore;
 using System;
 using System.Collections.Generic;
 using System.Text;
@@ -44,7 +45,7 @@ namespace SettingBluetooth
             {
                 var disconnectButton = new Button()
                 {
-                    Text = Resources.IDS_BT_SK_DISCONNECT,
+                    Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_BT_SK_DISCONNECT)),
                 };
                 disconnectButton.Clicked += (obj, ev) =>
                 {
@@ -71,7 +72,7 @@ namespace SettingBluetooth
         {
             var disconnectButton = new Button()
             {
-                Text = Resources.IDS_BT_SK_DISCONNECT,
+                Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_BT_SK_DISCONNECT)),
             };
             disconnectButton.Clicked += (obj, ev) =>
             {
index 39ff96962d9f4c7d42d39b70f6235dd166912984..b6fe957e4fec5073d9b94348205fb1a82d0cf744 100644 (file)
@@ -6,6 +6,7 @@ using Tizen.Applications;
 using Tizen.NUI;
 using Tizen.NUI.BaseComponents;
 using Tizen.NUI.Components;
+using SettingBluetooth.TextResources;
 
 namespace SettingBluetooth
 {
@@ -31,7 +32,7 @@ namespace SettingBluetooth
 
         public override string ProvideIconPath() => GetResourcePath("images/bluetooth-icon.svg");
 
-        public override string ProvideTitle() => "Bluetooth";
+        public override string ProvideTitle() => NUIGadgetResourceManager.GetString(nameof(Resources.IDS_BT_BODY_BLUETOOTH));
 
         public SettingBluetooth() : base(NUIGadgetType.Normal)
         {
@@ -46,12 +47,14 @@ namespace SettingBluetooth
             ViewStyle viewStyle = GetButtonViewStyle();
             mScanButton = new Button()
             {
-                Text = Resources.IDS_BT_SK_SCAN,
+                Text = this.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_BT_SK_SCAN)),
                 IsEnabled = BtModel.IsEnabled,
             };
             mScanButton.Clicked += AdapterController.ScanButtonClicked;
             mScanButton.ApplyStyle(viewStyle);
 
+            ResourceManager.TextResourceManager = this;
+
             return BtMainView.Create();
         }
 
index 69ad7e682e360b5858fb378de5751ed71894296c..c1870c5bf13b06a2300e90912125cba3ece769c6 100644 (file)
     <PackageReference Include="Tizen.NET" Version="12.0.0.18044" />
   </ItemGroup>
 
+  <ItemGroup>
+    <Compile Update="TextResources\Resources.Designer.cs">
+      <DesignTime>True</DesignTime>
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Resources.resx</DependentUpon>
+    </Compile>
+  </ItemGroup>
+
+  <ItemGroup>
+    <EmbeddedResource Update="TextResources\Resources.en-US.resx">
+      <Generator>PublicResXFileCodeGenerator</Generator>
+    </EmbeddedResource>
+    <EmbeddedResource Update="TextResources\Resources.ko-KR.resx">
+      <Generator>PublicResXFileCodeGenerator</Generator>
+    </EmbeddedResource>
+    <EmbeddedResource Update="TextResources\Resources.resx">
+      <Generator>PublicResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+  </ItemGroup>
+
+  <Target Name="PostBuild" AfterTargets="PostBuildEvent">
+    <Exec Command=":: Copy resource dll&#xD;&#xA;rmdir /S /Q res\allowed\locale&#xD;&#xA;mkdir res\allowed\locale&#xD;&#xA;dir $(OutDir)\&#xD;&#xA;xcopy /S /K /D /H /Y $(OutDir)\ res\allowed\locale&#xD;&#xA;del /q res\allowed\locale\*.*&#xD;&#xA;xcopy /S /K /D /H /Y res\allowed\locale\* res\allowed&#xD;&#xA;rmdir /S /Q res\allowed\locale&#xD;&#xA;" />
+  </Target>
+
 </Project>
diff --git a/SettingBluetooth/SettingBluetooth/TextResources/Resources.Designer.cs b/SettingBluetooth/SettingBluetooth/TextResources/Resources.Designer.cs
new file mode 100644 (file)
index 0000000..283fede
--- /dev/null
@@ -0,0 +1,318 @@
+//------------------------------------------------------------------------------\r
+// <auto-generated>\r
+//     This code was generated by a tool.\r
+//     Runtime Version:4.0.30319.42000\r
+//\r
+//     Changes to this file may cause incorrect behavior and will be lost if\r
+//     the code is regenerated.\r
+// </auto-generated>\r
+//------------------------------------------------------------------------------\r
+\r
+namespace SettingBluetooth.TextResources {\r
+    using System;\r
+\r
+\r
+    /// <summary>\r
+    ///   A strongly-typed resource class, for looking up localized strings, etc.\r
+    /// </summary>\r
+    // This class was auto-generated by the StronglyTypedResourceBuilder\r
+    // class via a tool like ResGen or Visual Studio.\r
+    // To add or remove a member, edit your .ResX file then rerun ResGen\r
+    // with the /str option, or rebuild your VS project.\r
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]\r
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\r
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\r
+    public class Resources {\r
+\r
+        private static global::System.Resources.ResourceManager resourceMan;\r
+\r
+        private static global::System.Globalization.CultureInfo resourceCulture;\r
+\r
+        static private string mResourcePath = "";\r
+\r
+        static public void SetPath(string path)\r
+        {\r
+            mResourcePath = path;\r
+        }\r
+        static public string GetPath()\r
+        {\r
+            return mResourcePath;\r
+        }\r
+\r
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]\r
+        internal Resources() {\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Returns the cached ResourceManager instance used by this class.\r
+        /// </summary>\r
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\r
+        public static global::System.Resources.ResourceManager ResourceManager {\r
+            get {\r
+                if (object.ReferenceEquals(resourceMan, null)) {\r
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SettingBluetooth.TextResources.Resources", typeof(Resources).Assembly);\r
+                    resourceMan = temp;\r
+                }\r
+                return resourceMan;\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Overrides the current thread's CurrentUICulture property for all\r
+        ///   resource lookups using this strongly typed resource class.\r
+        /// </summary>\r
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\r
+        public static global::System.Globalization.CultureInfo Culture {\r
+            get {\r
+                return resourceCulture;\r
+            }\r
+            set {\r
+                resourceCulture = value;\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Cancel.\r
+        /// </summary>\r
+        public static string IDS_BR_SK_CANCEL {\r
+            get {\r
+                return ResourceManager.GetString("IDS_BR_SK_CANCEL", resourceCulture);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Available devices.\r
+        /// </summary>\r
+        public static string IDS_BT_BODY_AVAILABLE_DEVICES {\r
+            get {\r
+                return ResourceManager.GetString("IDS_BT_BODY_AVAILABLE_DEVICES", resourceCulture);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Bluetooth.\r
+        /// </summary>\r
+        public static string IDS_BT_BODY_BLUETOOTH {\r
+            get {\r
+                return ResourceManager.GetString("IDS_BT_BODY_BLUETOOTH", resourceCulture);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Connection options.\r
+        /// </summary>\r
+        public static string IDS_BT_BODY_CONNECTION_OPTIONS {\r
+            get {\r
+                return ResourceManager.GetString("IDS_BT_BODY_CONNECTION_OPTIONS", resourceCulture);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Details.\r
+        /// </summary>\r
+        public static string IDS_BT_BODY_DETAILS {\r
+            get {\r
+                return ResourceManager.GetString("IDS_BT_BODY_DETAILS", resourceCulture);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Device name.\r
+        /// </summary>\r
+        public static string IDS_BT_BODY_DEVICENAME {\r
+            get {\r
+                return ResourceManager.GetString("IDS_BT_BODY_DEVICENAME", resourceCulture);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Disconnecting....\r
+        /// </summary>\r
+        public static string IDS_BT_BODY_DISCONNECTING {\r
+            get {\r
+                return ResourceManager.GetString("IDS_BT_BODY_DISCONNECTING", resourceCulture);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Media audio.\r
+        /// </summary>\r
+        public static string IDS_BT_BODY_MEDIA_AUDIO {\r
+            get {\r
+                return ResourceManager.GetString("IDS_BT_BODY_MEDIA_AUDIO", resourceCulture);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Paired.\r
+        /// </summary>\r
+        public static string IDS_BT_BODY_PAIRED {\r
+            get {\r
+                return ResourceManager.GetString("IDS_BT_BODY_PAIRED", resourceCulture);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Paired devices.\r
+        /// </summary>\r
+        public static string IDS_BT_BODY_PAIRED_DEVICES {\r
+            get {\r
+                return ResourceManager.GetString("IDS_BT_BODY_PAIRED_DEVICES", resourceCulture);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Rename.\r
+        /// </summary>\r
+        public static string IDS_BT_BODY_RENAME {\r
+            get {\r
+                return ResourceManager.GetString("IDS_BT_BODY_RENAME", resourceCulture);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Scanning for devices....\r
+        /// </summary>\r
+        public static string IDS_BT_BODY_SCANNING_FOR_DEVICES_ING {\r
+            get {\r
+                return ResourceManager.GetString("IDS_BT_BODY_SCANNING_FOR_DEVICES_ING", resourceCulture);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Turn on Bluetooth to see a list of devices you can pair with or have already paired with..\r
+        /// </summary>\r
+        public static string IDS_BT_BODY_TURN_ON_BLUETOOTH_TO_SEE_A_LIST_OF_DEVICES_YOU_CAN_PAIR_WITH_OR_HAVE_ALREADY_PAIRED_WITH {\r
+            get {\r
+                return ResourceManager.GetString("IDS_BT_BODY_TURN_ON_BLUETOOTH_TO_SEE_A_LIST_OF_DEVICES_YOU_CAN_PAIR_WITH_OR_HAVE_" +\r
+                        "ALREADY_PAIRED_WITH", resourceCulture);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Use for.\r
+        /// </summary>\r
+        public static string IDS_BT_BODY_USE_FOR {\r
+            get {\r
+                return ResourceManager.GetString("IDS_BT_BODY_USE_FOR", resourceCulture);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Your device ({0}) is currently visible to nearby devices..\r
+        /// </summary>\r
+        public static string IDS_BT_BODY_YOUR_DEVICE_IS_CURRENTLY_VISIBLE_TO_NEARBY_DEVICES {\r
+            get {\r
+                return ResourceManager.GetString("IDS_BT_BODY_YOUR_DEVICE_IS_CURRENTLY_VISIBLE_TO_NEARBY_DEVICES", resourceCulture);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Tizen.\r
+        /// </summary>\r
+        public static string IDS_BT_BODY_YOUR_DEVICE_IS_CURRENTLY_VISIBLE_TO_NEARBY_DEVICES_MODEL_NAME {\r
+            get {\r
+                return ResourceManager.GetString("IDS_BT_BODY_YOUR_DEVICE_IS_CURRENTLY_VISIBLE_TO_NEARBY_DEVICES_MODEL_NAME", resourceCulture);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Disconnect device.\r
+        /// </summary>\r
+        public static string IDS_BT_HEADER_DISCONNECT_DEVICE_ABB {\r
+            get {\r
+                return ResourceManager.GetString("IDS_BT_HEADER_DISCONNECT_DEVICE_ABB", resourceCulture);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Unpair.\r
+        /// </summary>\r
+        public static string IDS_BT_OPT_UNPAIR {\r
+            get {\r
+                return ResourceManager.GetString("IDS_BT_OPT_UNPAIR", resourceCulture);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Searching services....\r
+        /// </summary>\r
+        public static string IDS_BT_POP_SEARCHING_SERVICES_ING {\r
+            get {\r
+                return ResourceManager.GetString("IDS_BT_POP_SEARCHING_SERVICES_ING", resourceCulture);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Connected.\r
+        /// </summary>\r
+        public static string IDS_BT_SBODY_CONNECTED_M_STATUS {\r
+            get {\r
+                return ResourceManager.GetString("IDS_BT_SBODY_CONNECTED_M_STATUS", resourceCulture);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Connecting....\r
+        /// </summary>\r
+        public static string IDS_BT_SBODY_CONNECTING_ING {\r
+            get {\r
+                return ResourceManager.GetString("IDS_BT_SBODY_CONNECTING_ING", resourceCulture);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Disconnect.\r
+        /// </summary>\r
+        public static string IDS_BT_SK_DISCONNECT {\r
+            get {\r
+                return ResourceManager.GetString("IDS_BT_SK_DISCONNECT", resourceCulture);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Scan.\r
+        /// </summary>\r
+        public static string IDS_BT_SK_SCAN {\r
+            get {\r
+                return ResourceManager.GetString("IDS_BT_SK_SCAN", resourceCulture);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Stop.\r
+        /// </summary>\r
+        public static string IDS_BT_SK_STOP {\r
+            get {\r
+                return ResourceManager.GetString("IDS_BT_SK_STOP", resourceCulture);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Turning off Bluetooth....\r
+        /// </summary>\r
+        public static string IDS_ST_BODY_TURNING_OFF_BLUETOOTH {\r
+            get {\r
+                return ResourceManager.GetString("IDS_ST_BODY_TURNING_OFF_BLUETOOTH", resourceCulture);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Turning on Bluetooth....\r
+        /// </summary>\r
+        public static string IDS_ST_BODY_TURNING_ON_BLUETOOTH {\r
+            get {\r
+                return ResourceManager.GetString("IDS_ST_BODY_TURNING_ON_BLUETOOTH", resourceCulture);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Looks up a localized string similar to This will end your connection with {0}..\r
+        /// </summary>\r
+        public static string IDS_WMGR_POP_THIS_WILL_END_YOUR_CONNECTION_WITH_PS {\r
+            get {\r
+                return ResourceManager.GetString("IDS_WMGR_POP_THIS_WILL_END_YOUR_CONNECTION_WITH_PS", resourceCulture);\r
+            }\r
+        }\r
+    }\r
+}\r
diff --git a/SettingBluetooth/SettingBluetooth/TextResources/Resources.en-US.resx b/SettingBluetooth/SettingBluetooth/TextResources/Resources.en-US.resx
new file mode 100644 (file)
index 0000000..f12a509
--- /dev/null
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<root>\r
+  <!--\r
+    Microsoft ResX Schema\r
+\r
+    Version 2.0\r
+\r
+    The primary goals of this format is to allow a simple XML format\r
+    that is mostly human readable. The generation and parsing of the\r
+    various data types are done through the TypeConverter classes\r
+    associated with the data types.\r
+\r
+    Example:\r
+\r
+    ... ado.net/XML headers & schema ...\r
+    <resheader name="resmimetype">text/microsoft-resx</resheader>\r
+    <resheader name="version">2.0</resheader>\r
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>\r
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>\r
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>\r
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>\r
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">\r
+        <value>[base64 mime encoded serialized .NET Framework object]</value>\r
+    </data>\r
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>\r
+        <comment>This is a comment</comment>\r
+    </data>\r
+\r
+    There are any number of "resheader" rows that contain simple\r
+    name/value pairs.\r
+\r
+    Each data row contains a name, and value. The row also contains a\r
+    type or mimetype. Type corresponds to a .NET class that support\r
+    text/value conversion through the TypeConverter architecture.\r
+    Classes that don't support this are serialized and stored with the\r
+    mimetype set.\r
+\r
+    The mimetype is used for serialized objects, and tells the\r
+    ResXResourceReader how to depersist the object. This is currently not\r
+    extensible. For a given mimetype the value must be set accordingly:\r
+\r
+    Note - application/x-microsoft.net.object.binary.base64 is the format\r
+    that the ResXResourceWriter will generate, however the reader can\r
+    read any of the formats listed below.\r
+\r
+    mimetype: application/x-microsoft.net.object.binary.base64\r
+    value   : The object must be serialized with\r
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter\r
+            : and then encoded with base64 encoding.\r
+\r
+    mimetype: application/x-microsoft.net.object.soap.base64\r
+    value   : The object must be serialized with\r
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter\r
+            : and then encoded with base64 encoding.\r
+\r
+    mimetype: application/x-microsoft.net.object.bytearray.base64\r
+    value   : The object must be serialized into a byte array\r
+            : using a System.ComponentModel.TypeConverter\r
+            : and then encoded with base64 encoding.\r
+    -->\r
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">\r
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />\r
+    <xsd:element name="root" msdata:IsDataSet="true">\r
+      <xsd:complexType>\r
+        <xsd:choice maxOccurs="unbounded">\r
+          <xsd:element name="metadata">\r
+            <xsd:complexType>\r
+              <xsd:sequence>\r
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />\r
+              </xsd:sequence>\r
+              <xsd:attribute name="name" use="required" type="xsd:string" />\r
+              <xsd:attribute name="type" type="xsd:string" />\r
+              <xsd:attribute name="mimetype" type="xsd:string" />\r
+              <xsd:attribute ref="xml:space" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+          <xsd:element name="assembly">\r
+            <xsd:complexType>\r
+              <xsd:attribute name="alias" type="xsd:string" />\r
+              <xsd:attribute name="name" type="xsd:string" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+          <xsd:element name="data">\r
+            <xsd:complexType>\r
+              <xsd:sequence>\r
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />\r
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />\r
+              </xsd:sequence>\r
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />\r
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />\r
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />\r
+              <xsd:attribute ref="xml:space" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+          <xsd:element name="resheader">\r
+            <xsd:complexType>\r
+              <xsd:sequence>\r
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />\r
+              </xsd:sequence>\r
+              <xsd:attribute name="name" type="xsd:string" use="required" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+        </xsd:choice>\r
+      </xsd:complexType>\r
+    </xsd:element>\r
+  </xsd:schema>\r
+  <resheader name="resmimetype">\r
+    <value>text/microsoft-resx</value>\r
+  </resheader>\r
+  <resheader name="version">\r
+    <value>2.0</value>\r
+  </resheader>\r
+  <resheader name="reader">\r
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
+  </resheader>\r
+  <resheader name="writer">\r
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
+  </resheader>\r
+  <data name="IDS_BR_SK_CANCEL" xml:space="preserve">\r
+    <value>Cancel</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_AVAILABLE_DEVICES" xml:space="preserve">\r
+    <value>Available devices</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_BLUETOOTH" xml:space="preserve">\r
+    <value>Bluetooth</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_CONNECTION_OPTIONS" xml:space="preserve">\r
+    <value>Connection options</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_DETAILS" xml:space="preserve">\r
+    <value>Details</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_DEVICENAME" xml:space="preserve">\r
+    <value>Device name</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_DISCONNECTING" xml:space="preserve">\r
+    <value>Disconnecting...</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_MEDIA_AUDIO" xml:space="preserve">\r
+    <value>Media audio</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_PAIRED" xml:space="preserve">\r
+    <value>Paired</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_PAIRED_DEVICES" xml:space="preserve">\r
+    <value>Paired devices</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_RENAME" xml:space="preserve">\r
+    <value>Rename</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_SCANNING_FOR_DEVICES_ING" xml:space="preserve">\r
+    <value>Scanning for devices...</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_TURN_ON_BLUETOOTH_TO_SEE_A_LIST_OF_DEVICES_YOU_CAN_PAIR_WITH_OR_HAVE_ALREADY_PAIRED_WITH" xml:space="preserve">\r
+    <value>Turn on Bluetooth to see a list of devices you can pair with or have already paired with.</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_USE_FOR" xml:space="preserve">\r
+    <value>Use for</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_YOUR_DEVICE_IS_CURRENTLY_VISIBLE_TO_NEARBY_DEVICES" xml:space="preserve">\r
+    <value>Your device ({0}) is currently visible to nearby devices.</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_YOUR_DEVICE_IS_CURRENTLY_VISIBLE_TO_NEARBY_DEVICES_MODEL_NAME" xml:space="preserve">\r
+    <value>Tizen</value>\r
+  </data>\r
+  <data name="IDS_BT_HEADER_DISCONNECT_DEVICE_ABB" xml:space="preserve">\r
+    <value>Disconnect device</value>\r
+  </data>\r
+  <data name="IDS_BT_OPT_UNPAIR" xml:space="preserve">\r
+    <value>Unpair</value>\r
+  </data>\r
+  <data name="IDS_BT_POP_SEARCHING_SERVICES_ING" xml:space="preserve">\r
+    <value>Searching services...</value>\r
+  </data>\r
+  <data name="IDS_BT_SBODY_CONNECTED_M_STATUS" xml:space="preserve">\r
+    <value>Connected</value>\r
+  </data>\r
+  <data name="IDS_BT_SBODY_CONNECTING_ING" xml:space="preserve">\r
+    <value>Connecting...</value>\r
+  </data>\r
+  <data name="IDS_BT_SK_DISCONNECT" xml:space="preserve">\r
+    <value>Disconnect</value>\r
+  </data>\r
+  <data name="IDS_BT_SK_SCAN" xml:space="preserve">\r
+    <value>Scan</value>\r
+  </data>\r
+  <data name="IDS_BT_SK_STOP" xml:space="preserve">\r
+    <value>Stop</value>\r
+  </data>\r
+  <data name="IDS_ST_BODY_TURNING_OFF_BLUETOOTH" xml:space="preserve">\r
+    <value>Turning off Bluetooth...</value>\r
+  </data>\r
+  <data name="IDS_ST_BODY_TURNING_ON_BLUETOOTH" xml:space="preserve">\r
+    <value>Turning on Bluetooth...</value>\r
+  </data>\r
+  <data name="IDS_WMGR_POP_THIS_WILL_END_YOUR_CONNECTION_WITH_PS" xml:space="preserve">\r
+    <value>This will end your connection with {0}.</value>\r
+  </data>\r
+</root>\r
diff --git a/SettingBluetooth/SettingBluetooth/TextResources/Resources.ko-KR.resx b/SettingBluetooth/SettingBluetooth/TextResources/Resources.ko-KR.resx
new file mode 100644 (file)
index 0000000..2c3d8c3
--- /dev/null
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<root>\r
+  <!--\r
+    Microsoft ResX Schema\r
+\r
+    Version 2.0\r
+\r
+    The primary goals of this format is to allow a simple XML format\r
+    that is mostly human readable. The generation and parsing of the\r
+    various data types are done through the TypeConverter classes\r
+    associated with the data types.\r
+\r
+    Example:\r
+\r
+    ... ado.net/XML headers & schema ...\r
+    <resheader name="resmimetype">text/microsoft-resx</resheader>\r
+    <resheader name="version">2.0</resheader>\r
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>\r
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>\r
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>\r
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>\r
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">\r
+        <value>[base64 mime encoded serialized .NET Framework object]</value>\r
+    </data>\r
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>\r
+        <comment>This is a comment</comment>\r
+    </data>\r
+\r
+    There are any number of "resheader" rows that contain simple\r
+    name/value pairs.\r
+\r
+    Each data row contains a name, and value. The row also contains a\r
+    type or mimetype. Type corresponds to a .NET class that support\r
+    text/value conversion through the TypeConverter architecture.\r
+    Classes that don't support this are serialized and stored with the\r
+    mimetype set.\r
+\r
+    The mimetype is used for serialized objects, and tells the\r
+    ResXResourceReader how to depersist the object. This is currently not\r
+    extensible. For a given mimetype the value must be set accordingly:\r
+\r
+    Note - application/x-microsoft.net.object.binary.base64 is the format\r
+    that the ResXResourceWriter will generate, however the reader can\r
+    read any of the formats listed below.\r
+\r
+    mimetype: application/x-microsoft.net.object.binary.base64\r
+    value   : The object must be serialized with\r
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter\r
+            : and then encoded with base64 encoding.\r
+\r
+    mimetype: application/x-microsoft.net.object.soap.base64\r
+    value   : The object must be serialized with\r
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter\r
+            : and then encoded with base64 encoding.\r
+\r
+    mimetype: application/x-microsoft.net.object.bytearray.base64\r
+    value   : The object must be serialized into a byte array\r
+            : using a System.ComponentModel.TypeConverter\r
+            : and then encoded with base64 encoding.\r
+    -->\r
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">\r
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />\r
+    <xsd:element name="root" msdata:IsDataSet="true">\r
+      <xsd:complexType>\r
+        <xsd:choice maxOccurs="unbounded">\r
+          <xsd:element name="metadata">\r
+            <xsd:complexType>\r
+              <xsd:sequence>\r
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />\r
+              </xsd:sequence>\r
+              <xsd:attribute name="name" use="required" type="xsd:string" />\r
+              <xsd:attribute name="type" type="xsd:string" />\r
+              <xsd:attribute name="mimetype" type="xsd:string" />\r
+              <xsd:attribute ref="xml:space" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+          <xsd:element name="assembly">\r
+            <xsd:complexType>\r
+              <xsd:attribute name="alias" type="xsd:string" />\r
+              <xsd:attribute name="name" type="xsd:string" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+          <xsd:element name="data">\r
+            <xsd:complexType>\r
+              <xsd:sequence>\r
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />\r
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />\r
+              </xsd:sequence>\r
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />\r
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />\r
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />\r
+              <xsd:attribute ref="xml:space" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+          <xsd:element name="resheader">\r
+            <xsd:complexType>\r
+              <xsd:sequence>\r
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />\r
+              </xsd:sequence>\r
+              <xsd:attribute name="name" type="xsd:string" use="required" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+        </xsd:choice>\r
+      </xsd:complexType>\r
+    </xsd:element>\r
+  </xsd:schema>\r
+  <resheader name="resmimetype">\r
+    <value>text/microsoft-resx</value>\r
+  </resheader>\r
+  <resheader name="version">\r
+    <value>2.0</value>\r
+  </resheader>\r
+  <resheader name="reader">\r
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
+  </resheader>\r
+  <resheader name="writer">\r
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
+  </resheader>\r
+  <data name="IDS_BR_SK_CANCEL" xml:space="preserve">\r
+    <value>취소</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_AVAILABLE_DEVICES" xml:space="preserve">\r
+    <value>연결 가능한 디바이스</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_BLUETOOTH" xml:space="preserve">\r
+    <value>블루투스</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_CONNECTION_OPTIONS" xml:space="preserve">\r
+    <value>연결 옵션</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_DETAILS" xml:space="preserve">\r
+    <value>상세정보</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_DEVICENAME" xml:space="preserve">\r
+    <value>디바이스 이름</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_DISCONNECTING" xml:space="preserve">\r
+    <value>연결을 해제하는 중...</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_MEDIA_AUDIO" xml:space="preserve">\r
+    <value>미디어 오디오</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_PAIRED" xml:space="preserve">\r
+    <value>등록됨</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_PAIRED_DEVICES" xml:space="preserve">\r
+    <value>등록된 디바이스</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_RENAME" xml:space="preserve">\r
+    <value>개명</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_SCANNING_FOR_DEVICES_ING" xml:space="preserve">\r
+    <value>디바이스 찾는 중...</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_TURN_ON_BLUETOOTH_TO_SEE_A_LIST_OF_DEVICES_YOU_CAN_PAIR_WITH_OR_HAVE_ALREADY_PAIRED_WITH" xml:space="preserve">\r
+    <value>블루투스를 켜면 페어링할 수 있거나 이미 페어링된 장치 목록이 표시됩니다.</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_USE_FOR" xml:space="preserve">\r
+    <value>에 사용</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_YOUR_DEVICE_IS_CURRENTLY_VISIBLE_TO_NEARBY_DEVICES" xml:space="preserve">\r
+    <value>장치 ({0})는 현재 근처의 장치에서 볼 수 있습니다.</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_YOUR_DEVICE_IS_CURRENTLY_VISIBLE_TO_NEARBY_DEVICES_MODEL_NAME" xml:space="preserve">\r
+    <value>타이젠</value>\r
+  </data>\r
+  <data name="IDS_BT_HEADER_DISCONNECT_DEVICE_ABB" xml:space="preserve">\r
+    <value>디바이스 연결 해제</value>\r
+  </data>\r
+  <data name="IDS_BT_OPT_UNPAIR" xml:space="preserve">\r
+    <value>등록 해제</value>\r
+  </data>\r
+  <data name="IDS_BT_POP_SEARCHING_SERVICES_ING" xml:space="preserve">\r
+    <value>서비스 검색 중...</value>\r
+  </data>\r
+  <data name="IDS_BT_SBODY_CONNECTED_M_STATUS" xml:space="preserve">\r
+    <value>연결됨</value>\r
+  </data>\r
+  <data name="IDS_BT_SBODY_CONNECTING_ING" xml:space="preserve">\r
+    <value>연결 중...</value>\r
+  </data>\r
+  <data name="IDS_BT_SK_DISCONNECT" xml:space="preserve">\r
+    <value>연결 해제</value>\r
+  </data>\r
+  <data name="IDS_BT_SK_SCAN" xml:space="preserve">\r
+    <value>찾기</value>\r
+  </data>\r
+  <data name="IDS_BT_SK_STOP" xml:space="preserve">\r
+    <value>중지</value>\r
+  </data>\r
+  <data name="IDS_ST_BODY_TURNING_OFF_BLUETOOTH" xml:space="preserve">\r
+    <value>블루투스를 끄고...</value>\r
+  </data>\r
+  <data name="IDS_ST_BODY_TURNING_ON_BLUETOOTH" xml:space="preserve">\r
+    <value>블루투스를 켜면...</value>\r
+  </data>\r
+  <data name="IDS_WMGR_POP_THIS_WILL_END_YOUR_CONNECTION_WITH_PS" xml:space="preserve">\r
+    <value>{0} 디바이스 연결을 해제합니다.</value>\r
+  </data>\r
+</root>\r
diff --git a/SettingBluetooth/SettingBluetooth/TextResources/Resources.resx b/SettingBluetooth/SettingBluetooth/TextResources/Resources.resx
new file mode 100644 (file)
index 0000000..f12a509
--- /dev/null
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<root>\r
+  <!--\r
+    Microsoft ResX Schema\r
+\r
+    Version 2.0\r
+\r
+    The primary goals of this format is to allow a simple XML format\r
+    that is mostly human readable. The generation and parsing of the\r
+    various data types are done through the TypeConverter classes\r
+    associated with the data types.\r
+\r
+    Example:\r
+\r
+    ... ado.net/XML headers & schema ...\r
+    <resheader name="resmimetype">text/microsoft-resx</resheader>\r
+    <resheader name="version">2.0</resheader>\r
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>\r
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>\r
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>\r
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>\r
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">\r
+        <value>[base64 mime encoded serialized .NET Framework object]</value>\r
+    </data>\r
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>\r
+        <comment>This is a comment</comment>\r
+    </data>\r
+\r
+    There are any number of "resheader" rows that contain simple\r
+    name/value pairs.\r
+\r
+    Each data row contains a name, and value. The row also contains a\r
+    type or mimetype. Type corresponds to a .NET class that support\r
+    text/value conversion through the TypeConverter architecture.\r
+    Classes that don't support this are serialized and stored with the\r
+    mimetype set.\r
+\r
+    The mimetype is used for serialized objects, and tells the\r
+    ResXResourceReader how to depersist the object. This is currently not\r
+    extensible. For a given mimetype the value must be set accordingly:\r
+\r
+    Note - application/x-microsoft.net.object.binary.base64 is the format\r
+    that the ResXResourceWriter will generate, however the reader can\r
+    read any of the formats listed below.\r
+\r
+    mimetype: application/x-microsoft.net.object.binary.base64\r
+    value   : The object must be serialized with\r
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter\r
+            : and then encoded with base64 encoding.\r
+\r
+    mimetype: application/x-microsoft.net.object.soap.base64\r
+    value   : The object must be serialized with\r
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter\r
+            : and then encoded with base64 encoding.\r
+\r
+    mimetype: application/x-microsoft.net.object.bytearray.base64\r
+    value   : The object must be serialized into a byte array\r
+            : using a System.ComponentModel.TypeConverter\r
+            : and then encoded with base64 encoding.\r
+    -->\r
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">\r
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />\r
+    <xsd:element name="root" msdata:IsDataSet="true">\r
+      <xsd:complexType>\r
+        <xsd:choice maxOccurs="unbounded">\r
+          <xsd:element name="metadata">\r
+            <xsd:complexType>\r
+              <xsd:sequence>\r
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />\r
+              </xsd:sequence>\r
+              <xsd:attribute name="name" use="required" type="xsd:string" />\r
+              <xsd:attribute name="type" type="xsd:string" />\r
+              <xsd:attribute name="mimetype" type="xsd:string" />\r
+              <xsd:attribute ref="xml:space" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+          <xsd:element name="assembly">\r
+            <xsd:complexType>\r
+              <xsd:attribute name="alias" type="xsd:string" />\r
+              <xsd:attribute name="name" type="xsd:string" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+          <xsd:element name="data">\r
+            <xsd:complexType>\r
+              <xsd:sequence>\r
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />\r
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />\r
+              </xsd:sequence>\r
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />\r
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />\r
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />\r
+              <xsd:attribute ref="xml:space" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+          <xsd:element name="resheader">\r
+            <xsd:complexType>\r
+              <xsd:sequence>\r
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />\r
+              </xsd:sequence>\r
+              <xsd:attribute name="name" type="xsd:string" use="required" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+        </xsd:choice>\r
+      </xsd:complexType>\r
+    </xsd:element>\r
+  </xsd:schema>\r
+  <resheader name="resmimetype">\r
+    <value>text/microsoft-resx</value>\r
+  </resheader>\r
+  <resheader name="version">\r
+    <value>2.0</value>\r
+  </resheader>\r
+  <resheader name="reader">\r
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
+  </resheader>\r
+  <resheader name="writer">\r
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
+  </resheader>\r
+  <data name="IDS_BR_SK_CANCEL" xml:space="preserve">\r
+    <value>Cancel</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_AVAILABLE_DEVICES" xml:space="preserve">\r
+    <value>Available devices</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_BLUETOOTH" xml:space="preserve">\r
+    <value>Bluetooth</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_CONNECTION_OPTIONS" xml:space="preserve">\r
+    <value>Connection options</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_DETAILS" xml:space="preserve">\r
+    <value>Details</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_DEVICENAME" xml:space="preserve">\r
+    <value>Device name</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_DISCONNECTING" xml:space="preserve">\r
+    <value>Disconnecting...</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_MEDIA_AUDIO" xml:space="preserve">\r
+    <value>Media audio</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_PAIRED" xml:space="preserve">\r
+    <value>Paired</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_PAIRED_DEVICES" xml:space="preserve">\r
+    <value>Paired devices</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_RENAME" xml:space="preserve">\r
+    <value>Rename</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_SCANNING_FOR_DEVICES_ING" xml:space="preserve">\r
+    <value>Scanning for devices...</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_TURN_ON_BLUETOOTH_TO_SEE_A_LIST_OF_DEVICES_YOU_CAN_PAIR_WITH_OR_HAVE_ALREADY_PAIRED_WITH" xml:space="preserve">\r
+    <value>Turn on Bluetooth to see a list of devices you can pair with or have already paired with.</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_USE_FOR" xml:space="preserve">\r
+    <value>Use for</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_YOUR_DEVICE_IS_CURRENTLY_VISIBLE_TO_NEARBY_DEVICES" xml:space="preserve">\r
+    <value>Your device ({0}) is currently visible to nearby devices.</value>\r
+  </data>\r
+  <data name="IDS_BT_BODY_YOUR_DEVICE_IS_CURRENTLY_VISIBLE_TO_NEARBY_DEVICES_MODEL_NAME" xml:space="preserve">\r
+    <value>Tizen</value>\r
+  </data>\r
+  <data name="IDS_BT_HEADER_DISCONNECT_DEVICE_ABB" xml:space="preserve">\r
+    <value>Disconnect device</value>\r
+  </data>\r
+  <data name="IDS_BT_OPT_UNPAIR" xml:space="preserve">\r
+    <value>Unpair</value>\r
+  </data>\r
+  <data name="IDS_BT_POP_SEARCHING_SERVICES_ING" xml:space="preserve">\r
+    <value>Searching services...</value>\r
+  </data>\r
+  <data name="IDS_BT_SBODY_CONNECTED_M_STATUS" xml:space="preserve">\r
+    <value>Connected</value>\r
+  </data>\r
+  <data name="IDS_BT_SBODY_CONNECTING_ING" xml:space="preserve">\r
+    <value>Connecting...</value>\r
+  </data>\r
+  <data name="IDS_BT_SK_DISCONNECT" xml:space="preserve">\r
+    <value>Disconnect</value>\r
+  </data>\r
+  <data name="IDS_BT_SK_SCAN" xml:space="preserve">\r
+    <value>Scan</value>\r
+  </data>\r
+  <data name="IDS_BT_SK_STOP" xml:space="preserve">\r
+    <value>Stop</value>\r
+  </data>\r
+  <data name="IDS_ST_BODY_TURNING_OFF_BLUETOOTH" xml:space="preserve">\r
+    <value>Turning off Bluetooth...</value>\r
+  </data>\r
+  <data name="IDS_ST_BODY_TURNING_ON_BLUETOOTH" xml:space="preserve">\r
+    <value>Turning on Bluetooth...</value>\r
+  </data>\r
+  <data name="IDS_WMGR_POP_THIS_WILL_END_YOUR_CONNECTION_WITH_PS" xml:space="preserve">\r
+    <value>This will end your connection with {0}.</value>\r
+  </data>\r
+</root>\r
index 2fb9614289c77349f3e6742a2d7d55c4317295c9..96cd8412836f98315348bf408c7cd6976d37dafa 100644 (file)
@@ -1,4 +1,5 @@
-using System;
+using SettingBluetooth.TextResources;
+using System;
 using System.Collections.Generic;
 using System.Text;
 using Tizen;
@@ -51,7 +52,7 @@ namespace SettingBluetooth
             var unpairButton = new DefaultLinearItem()
             {
                 WidthSpecification = LayoutParamPolicies.MatchParent,
-                Text = Resources.IDS_BT_OPT_UNPAIR,
+                Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_BT_OPT_UNPAIR)),
             };
             unpairButton.Clicked += (obj, ev) =>
             {
@@ -64,7 +65,7 @@ namespace SettingBluetooth
             var useForHeader = new DefaultLinearItem()
             {
                 WidthSpecification = LayoutParamPolicies.MatchParent,
-                Text = Resources.IDS_BT_BODY_USE_FOR,
+                Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_BT_BODY_USE_FOR)),
                 Margin = new Extents(8, 0, 0, 0).SpToPx(),
             };
             useForHeader.Label.TextColor = Color.Grey;
@@ -90,7 +91,7 @@ namespace SettingBluetooth
             var mediaAudioItem = new DefaultLinearItem()
             {
                 WidthSpecification = LayoutParamPolicies.MatchParent,
-                Text = Resources.IDS_BT_BODY_MEDIA_AUDIO,
+                Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_BT_BODY_MEDIA_AUDIO)),
             };
             var mediaAudioSwitch = new Switch()
             {
@@ -116,7 +117,7 @@ namespace SettingBluetooth
             var label = new TextLabel
             {
                 WidthSpecification = LayoutParamPolicies.MatchParent,
-                Text = Resources.IDS_BT_BODY_RENAME,
+                Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_BT_BODY_RENAME)),
                 Margin = new Extents(16, 0, 0, 0).SpToPx(),
             };
 
@@ -160,7 +161,7 @@ namespace SettingBluetooth
         {
             var appBar = new AppBar()
             {
-                Title = Resources.IDS_BT_BODY_DETAILS,
+                Title = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_BT_BODY_DETAILS)),
             };
             AppBarStyle appBarStyle = (AppBarStyle)ThemeManager.GetStyle("Tizen.NUI.Components.AppBar");
             Button backButton = new Button(((AppBarStyle)appBarStyle).BackButton);
index b23660f12a71e93c7901f549e370f7e663b8e688..be3b1907558b394a483125506769dbccf8303fea 100644 (file)
@@ -1,3 +1,4 @@
+using SettingBluetooth.TextResources;
 using ElmSharp.Accessible;
 using SettingCore;
 using System;
@@ -211,8 +212,8 @@ namespace SettingBluetooth
         public DeviceSource()
         {
             Log.Info(SettingBluetooth.LogTag, "DeviceSource created");
-            mSearched = new DeviceCollection(Resources.IDS_BT_BODY_SCANNING_FOR_DEVICES_ING);
-            mPaired = new DeviceCollection(Resources.IDS_BT_BODY_PAIRED_DEVICES);
+            mSearched = new DeviceCollection(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_BT_BODY_SCANNING_FOR_DEVICES_ING)));
+            mPaired = new DeviceCollection(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_BT_BODY_PAIRED_DEVICES)));
             this.Add(mSearched);
         }
 
@@ -314,20 +315,20 @@ namespace SettingBluetooth
                     break;
                 case BtDeviceState.Pairing:
                 case BtDeviceState.Connecting:
-                    device.State = Resources.IDS_BT_SBODY_CONNECTING_ING;
+                    device.State = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_BT_SBODY_CONNECTING_ING));
                     break;
                 case BtDeviceState.Unpairing:
                 case BtDeviceState.Disconnecting:
-                    device.State = Resources.IDS_BT_BODY_DISCONNECTING;
+                    device.State = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_BT_BODY_DISCONNECTING));
                     break;
                 case BtDeviceState.Paired:
-                    device.State = Resources.IDS_BT_BODY_PAIRED;
+                    device.State = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_BT_BODY_PAIRED));
                     break;
                 case BtDeviceState.Connected:
-                    device.State = Resources.IDS_BT_SBODY_CONNECTED_M_STATUS;
+                    device.State = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_BT_SBODY_CONNECTED_M_STATUS));
                     break;
                 case BtDeviceState.ServiceSearching:
-                    device.State = Resources.IDS_BT_POP_SEARCHING_SERVICES_ING;
+                    device.State = device.State = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_BT_POP_SEARCHING_SERVICES_ING));
                     break;
             }
             //Log.Info(LogTag, "Device(" + btDevice.Address + ") updated. state: " + device.State);
index 302bdbd7b94aec9a5257c330ff351674220bca0a..abdd960b2d6f497ba8b56f7f56fc4124e752c113 100644 (file)
@@ -1,4 +1,5 @@
-using System;
+using SettingBluetooth.TextResources;
+using System;
 using System.Collections.Generic;
 using System.Linq;
 using Tizen;
@@ -43,22 +44,22 @@ namespace SettingBluetooth
 
         internal static void ShowBtOffMessage()
         {
-            mBtMessage.Text = Resources.IDS_BT_BODY_TURN_ON_BLUETOOTH_TO_SEE_A_LIST_OF_DEVICES_YOU_CAN_PAIR_WITH_OR_HAVE_ALREADY_PAIRED_WITH;
+            mBtMessage.Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_BT_BODY_TURN_ON_BLUETOOTH_TO_SEE_A_LIST_OF_DEVICES_YOU_CAN_PAIR_WITH_OR_HAVE_ALREADY_PAIRED_WITH));
         }
 
         internal static void ShowBtOnMessage()
         {
-            mBtMessage.Text = string.Format(Resources.IDS_BT_BODY_YOUR_DEVICE_IS_CURRENTLY_VISIBLE_TO_NEARBY_DEVICES, BtModel.Name);
+            mBtMessage.Text = string.Format(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_BT_BODY_YOUR_DEVICE_IS_CURRENTLY_VISIBLE_TO_NEARBY_DEVICES)), ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_BT_BODY_YOUR_DEVICE_IS_CURRENTLY_VISIBLE_TO_NEARBY_DEVICES_MODEL_NAME)));
         }
 
         internal static void ShowBtTurningOnMessage()
         {
-            mBtMessage.Text = Resources.IDS_ST_BODY_TURNING_ON_BLUETOOTH;
+            mBtMessage.Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_TURNING_ON_BLUETOOTH));
         }
 
         internal static void ShowBtTurningOffMessage()
         {
-            mBtMessage.Text = Resources.IDS_ST_BODY_TURNING_OFF_BLUETOOTH;
+            mBtMessage.Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_TURNING_OFF_BLUETOOTH));
         }
 
         private static void BtModelOperationStateChanged(object obj, BtOperationStateChangedEventArgs ev)
@@ -83,12 +84,12 @@ namespace SettingBluetooth
                     break;
                 case BtOperationState.Searching:
                     BtDeviceView.RemoveAllSearchedDevices();
-                    BtDeviceView.UpdateSearchedTitle(Resources.IDS_BT_BODY_SCANNING_FOR_DEVICES_ING);
-                    BtDeviceView.UpdateScanButtonText(Resources.IDS_BT_SK_STOP);
+                    BtDeviceView.UpdateSearchedTitle(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_BT_BODY_SCANNING_FOR_DEVICES_ING)));
+                    BtDeviceView.UpdateScanButtonText(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_BT_SK_STOP)));
                     break;
                 case BtOperationState.Searched:
-                    BtDeviceView.UpdateSearchedTitle(Resources.IDS_BT_BODY_AVAILABLE_DEVICES);
-                    BtDeviceView.UpdateScanButtonText(Resources.IDS_BT_SK_SCAN);
+                    BtDeviceView.UpdateSearchedTitle(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_BT_BODY_AVAILABLE_DEVICES)));
+                    BtDeviceView.UpdateScanButtonText(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_BT_SK_SCAN)));
                     break;
                 case BtOperationState.Pairing:
                     break;
@@ -118,7 +119,7 @@ namespace SettingBluetooth
             var onOffItem = new DefaultLinearItem
             {
                 WidthSpecification = LayoutParamPolicies.MatchParent,
-                Text = Resources.IDS_BT_BODY_BLUETOOTH,
+                Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_BT_BODY_BLUETOOTH)),
             };
             onOffItem.Label.HorizontalAlignment = HorizontalAlignment.Begin;
 
diff --git a/SettingBluetooth/SettingBluetooth/View/ResourceManager.cs b/SettingBluetooth/SettingBluetooth/View/ResourceManager.cs
new file mode 100644 (file)
index 0000000..5f8fa3e
--- /dev/null
@@ -0,0 +1,14 @@
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+using System.Threading.Tasks;\r
+using SettingBluetooth;\r
+\r
+namespace SettingBluetooth\r
+{\r
+    public class ResourceManager\r
+    {\r
+        public static SettingBluetooth TextResourceManager;\r
+    }\r
+}\r
diff --git a/SettingBluetooth/SettingBluetooth/View/Resources.cs b/SettingBluetooth/SettingBluetooth/View/Resources.cs
deleted file mode 100644 (file)
index 66e6579..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace SettingBluetooth
-{
-    static class Resources
-    {
-        static private string mResourcePath = "";
-
-        static public void SetPath(string path)
-        {
-            mResourcePath = path;
-        }
-        static public string GetPath()
-        {
-            return mResourcePath;
-        }
-
-        static public string IDS_BT_BODY_SCANNING_FOR_DEVICES_ING = "Scanning for devices...";
-        static public string IDS_ST_BODY_TURNING_OFF_BLUETOOTH = "Turning off Bluetooth...";
-        static public string IDS_ST_BODY_TURNING_ON_BLUETOOTH = "Turning on Bluetooth...";
-        static public string IDS_BT_SK_STOP = "Stop";
-        static public string IDS_BT_BODY_AVAILABLE_DEVICES = "Available devices";
-        static public string IDS_BT_SK_SCAN = "Scan";
-        static public string IDS_BT_BODY_BLUETOOTH = "Bluetooth";
-        static public string IDS_BT_BODY_PAIRED_DEVICES = "Paired devices";
-        static public string IDS_BT_SBODY_CONNECTING_ING = "Connecting...";
-        static public string IDS_BT_BODY_DISCONNECTING = "Disconnecting";
-        static public string IDS_BT_BODY_PAIRED = "Paired";
-        static public string IDS_BT_SBODY_CONNECTED_M_STATUS = "Connected";
-        static public string IDS_BT_POP_SEARCHING_SERVICES_ING = "Searching services...";
-        static public string IDS_BT_BODY_DETAILS = "Details";
-        static public string IDS_BT_BODY_DEVICENAME = "Device name";
-        static public string IDS_BT_OPT_UNPAIR = "Unpair";
-        static public string IDS_BT_BODY_USE_FOR = "Use for";
-        static public string IDS_BT_BODY_MEDIA_AUDIO = "Media audio";
-        static public string IDS_BT_SK_DISCONNECT = "Disconnect";
-        static public string IDS_BT_HEADER_DISCONNECT_DEVICE_ABB = "Disconnect device";
-        static public string IDS_WMGR_POP_THIS_WILL_END_YOUR_CONNECTION_WITH_PS = "This will end your connection with {0}.";
-        static public string IDS_BT_BODY_TURN_ON_BLUETOOTH_TO_SEE_A_LIST_OF_DEVICES_YOU_CAN_PAIR_WITH_OR_HAVE_ALREADY_PAIRED_WITH
-            = "Turn on Bluetooth to see a list of devices you can pair with or have already paired with.";
-        static public string IDS_BT_BODY_YOUR_DEVICE_IS_CURRENTLY_VISIBLE_TO_NEARBY_DEVICES
-            = "Your device ({0}) is currently visible to nearby devices.";
-        static public string IDS_BT_BODY_RENAME = "Rename";
-    }
-}
index 165532d10c346dabb88fec3c70788e61c80c0b73..d126af70709afb8d795a7bd383cd3a47234ea256 100644 (file)
@@ -9,7 +9,9 @@
     </required-privileges>
   </allowed-package>/>
   <metadata key="http://tizen.org/metadata/ui-gadget/dll" value="SettingBluetooth.dll" />
+  <metadata key="http://tizen.org/metadata/ui-gadget/resource/dll" value="SettingBluetooth.resources.dll"/>
+  <metadata key="http://tizen.org/metadata/ui-gadget/resource/class-name" value="SettingBluetooth.TextResources.Resources"/>
   <metadata key="http://tizen.org/metadata/ui-gadget/menu/Bluetooth/icon-path" value="images/bluetooth-icon.svg"/>
   <metadata key="http://tizen.org/metadata/ui-gadget/menu/Bluetooth/icon-color" value="#FF6200,#FF8A00"/>
-  <metadata key="http://tizen.org/metadata/ui-gadget/menu/Bluetooth/title" value="Bluetooth"/>
+  <metadata key="http://tizen.org/metadata/ui-gadget/menu/Bluetooth/title" value="IDS_BT_BODY_BLUETOOTH"/>
 </manifest>
index d9f1a0e788a2e0cb842f20b20d87eb1a062b87ae..fe046992f0610c75657e5a785eba2366ab0af663 100644 (file)
Binary files a/packaging/org.tizen.cssetting-bluetooth-1.9.0.rpk and b/packaging/org.tizen.cssetting-bluetooth-1.9.0.rpk differ