Add missing translations. 70/302570/1
authorPiotr Czaja <p.czaja@samsung.com>
Fri, 8 Dec 2023 05:34:36 +0000 (06:34 +0100)
committerPiotr Czaja <p.czaja@samsung.com>
Fri, 8 Dec 2023 11:38:38 +0000 (12:38 +0100)
Change-Id: I3bbd41ea4c7c4b27eb8a59c1226de7f9d1da1a1c
Signed-off-by: Piotr Czaja <p.czaja@samsung.com>
SettingAccessibility/.gitattributes
SettingAccessibility/.gitignore
SettingAccessibility/SettingAccessibility/LanguageMenu.cs
SettingAccessibility/SettingAccessibility/SettingAccessibility.cs
SettingAccessibility/SettingAccessibility/SettingAccessibility.csproj
SettingAccessibility/SettingAccessibility/TextResources/Resources.en-US.resx [new file with mode: 0644]
SettingAccessibility/SettingAccessibility/TextResources/Resources.ko-KR.resx [new file with mode: 0644]
SettingAccessibility/SettingAccessibility/TextResources/Resources.resx [new file with mode: 0644]
SettingAccessibility/SettingAccessibility/tizen-manifest.xml
packaging/org.tizen.cssetting-accessibility-1.1.0.rpk

index 81d23e1c5ec7444c2a5a65f2bbd9e10e4052fd24..45df1841378b06bb521d276027a92d2a03667a22 100644 (file)
@@ -1,4 +1,4 @@
-*                      text=auto
+* text=auto eol=lf
 *.cs           eol=lf
 *.csproj       eol=lf
 *.sln          eol=lf
index 881c36df4655e70cda691f6482de6e23e5e04c3a..8d6c692a73a17576fa12770fc8945881f0b7db75 100644 (file)
@@ -7,3 +7,5 @@
 **/.gn
 **/[Bb]uild/
 **/res/allowed/*.dll
+**/res/allowed/*/*.dll
+*.user
index 017fbe18d97c3d121451b9919fa21bc1b8392320..64e257b4b8f5e0d1f9e36f7b9a7768ba142da470 100644 (file)
@@ -1,4 +1,5 @@
-using Tizen.NUI;
+using SettingAccessibility.TextResources;
+using Tizen.NUI;
 using Tizen.NUI.BaseComponents;
 using Tizen.NUI.Components;
 
@@ -6,7 +7,7 @@ namespace SettingAccessibility
 {
     public class LanguageMenu : SettingCore.MenuGadget
     {
-        public override string ProvideTitle() => "Voice Type & Language";
+        public override string ProvideTitle() => NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_VOICE_TYPE_AND_LANGUAGE));
 
         protected override View OnCreate()
         {
index 4fe543958e5b7aa33db7864a4895c5be11c304c9..b1613e90e136939a5a2a8ce69747ed70cf2dbfb8 100644 (file)
@@ -2,15 +2,17 @@
 using Tizen.NUI;
 using Tizen.NUI.BaseComponents;
 using Tizen.NUI.Components;
+using SettingAccessibility.TextResources;
+using Tizen.Uix.Tts;
 
 namespace SettingAccessibility
 {
     public class SettingAccessibility : SettingCore.MainMenuGadget
     {
-        public override Color ProvideIconColor() => new Color(ThemeManager.PlatformThemeId == "org.tizen.default-light-theme" ? "#205493" : "#2560A8");
+        public override Color ProvideIconColor() => new Color(IsLightTheme ? "#205493" : "#2560A8");
         public override string ProvideIconPath() => GetResourcePath("accessibility-icon.svg");
         // TODO: replace fixed string with Resources dictionary
-        public override string ProvideTitle() => "Talk Back";
+        public override string ProvideTitle() => NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_HEADER_TALK_BACK));
 
         private static readonly string VCONFKEY_SETAPPL_ACCESSIBILITY_TTS = "db/setting/accessibility/tts";
 
@@ -23,6 +25,14 @@ namespace SettingAccessibility
         private View scrollableContent;
         private IList<View> sections = new List<View>();
 
+        static Dictionary<Voice, string> voiceTypeResourceKeys = new Dictionary<Voice, string>
+            {
+                { Voice.Auto, nameof(Resources.IDS_ST_TTS_VOICE_AUTO)},
+                { Voice.Male, nameof(Resources.IDS_ST_TTS_VOICE_MALE)},
+                { Voice.Female, nameof(Resources.IDS_ST_TTS_VOICE_FEMALE)},
+                { Voice.Child, nameof(Resources.IDS_ST_TTS_VOICE_CHILD)},
+            };
+
         protected override View OnCreate()
         {
             base.OnCreate();
@@ -68,7 +78,7 @@ namespace SettingAccessibility
 
             Interop.Vconf.GetVconfBool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, out bool isScreenReaderOn);
             // TODO: replace fixed string with Resources dictionary
-            var screenReader = new SettingCore.Views.SwitchListItem("Screen Reader (TTS)", isSelected: isScreenReaderOn);
+            var screenReader = new SettingCore.Views.SwitchListItem(NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_SCREEN_READER_TTS)), isSelected: isScreenReaderOn);
             screenReader.Switch.SelectedChanged += (s, e) => {
                 Interop.Vconf.SetVconfBool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, e.IsSelected);
 
@@ -78,8 +88,7 @@ namespace SettingAccessibility
 
             var info = new TextLabel
             {
-                // TODO: replace fixed string with Resources dictionary
-                Text = "While Screen reader is enabled, your phone will provide voice feedback.\r\nFor example, Screen reader will tell you what you can interact with on each screen.\r\nTap items to select them and hear what they are, and double tap items\r\nto perform the selected action.",
+                Text = NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ACCS_BODY_WHILE_SCREEN_READER_IS_ENABLED_YOUR_PHONE_WILL_PROVIDE_VOICE_FEEDBACK_FOR_EXAMPLE_SCREEN_READER_WILL_MSG)),
                 MultiLine = true,
                 PixelSize = 24.SpToPx(),
                 TextColor = new Color("#83868F"),
@@ -92,21 +101,18 @@ namespace SettingAccessibility
             var speedRange = tts.GetSpeedRange();
             tts.Dispose();
 
-            // TODO: replace fixed string with Resources dictionary
-            var language = SettingCore.Views.TextListItem.CreatePrimaryTextItemWithSecondaryText("Voice Type & Language", $"{defaultVoice.VoiceType}, {defaultVoice.Language}");
+            var language = SettingCore.Views.TextListItem.CreatePrimaryTextItemWithSecondaryText(NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_VOICE_TYPE_AND_LANGUAGE)), $"{GetName(defaultVoice)}, {defaultVoice.Language}");
             language.Clicked += (s, e) =>
             {
                 NavigateTo(MenuProvider.TalkBack_Language);
             };
             sections.Add(language);
 
-            // TODO: replace fixed string with Resources dictionary
-            var volume = SettingCore.Views.TextListItem.CreatePrimaryTextItemWithSecondaryText("Volume", "75%");
+            var volume = SettingCore.Views.TextListItem.CreatePrimaryTextItemWithSecondaryText(NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_TTS_VOICE_VOLUME)), "75%");
             volume.IsEnabled = false;
             sections.Add(volume);
 
-            // TODO: replace fixed string with Resources dictionary
-            var speechRate = new SpeechRateRow("Speech rate", GetResourcePath("walking-icon.svg"), GetResourcePath("running-icon.svg"));
+            var speechRate = new SpeechRateRow(NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_TTS_SPEECH_RATE)), GetResourcePath("walking-icon.svg"), GetResourcePath("running-icon.svg"));
             speechRate.Slider.MinValue = speedRange.Min;
             speechRate.Slider.MaxValue = speedRange.Max;
             // TODO: use actual value from vconf for CurrentValue, instead of speedRange.Normal
@@ -119,8 +125,7 @@ namespace SettingAccessibility
             sections.Add(speechRate);
 
             Interop.Vconf.GetVconfBool(VCONFKEY_SETAPPL_ACCESSIBILITY_SCREEN_READER_KEYBOARD_FEEDBACK, out bool keyboardFeedbackValue);
-            // TODO: replace fixed string with Resources dictionary
-            var keyboardFeedback = new SettingCore.Views.SwitchListItem("Keyboard feedback", "Always read keyboard input aload", keyboardFeedbackValue);
+            var keyboardFeedback = new SettingCore.Views.SwitchListItem(NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_TTS_KEYBOARD_FEEDBACK)), NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_TTS_KEYBOARD_INPUT_ALOAD)), keyboardFeedbackValue);
             keyboardFeedback.Switch.SelectedChanged += (s, e) =>
             {
                 Interop.Vconf.SetVconfBool(VCONFKEY_SETAPPL_ACCESSIBILITY_SCREEN_READER_KEYBOARD_FEEDBACK, e.IsSelected);
@@ -128,8 +133,7 @@ namespace SettingAccessibility
             sections.Add(keyboardFeedback);
 
             Interop.Vconf.GetVconfBool(VCONFKEY_SETAPPL_ACCESSIBILITY_SCREEN_READER_DESCRIPTION, out bool readUsageHintsAloudValue);
-            // TODO: replace fixed string with Resources dictionary
-            var readUsageHintsAloud = new SettingCore.Views.SwitchListItem("Read usage hints aloud", isSelected: readUsageHintsAloudValue);
+            var readUsageHintsAloud = new SettingCore.Views.SwitchListItem(NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_TTS_READ_USAGE_HINTS_ALOAD)), isSelected: readUsageHintsAloudValue);
             readUsageHintsAloud.Switch.SelectedChanged += (s, e) =>
             {
                 Interop.Vconf.SetVconfBool(VCONFKEY_SETAPPL_ACCESSIBILITY_SCREEN_READER_DESCRIPTION, e.IsSelected);
@@ -137,8 +141,7 @@ namespace SettingAccessibility
             sections.Add(readUsageHintsAloud);
 
             Interop.Vconf.GetVconfBool(VCONFKEY_SETAPPL_ACCESSIBILITY_SCREEN_READER_HAPTIC, out bool vibrationFeedbackValue);
-            // TODO: replace fixed string with Resources dictionary
-            var vibrationFeedback = new SettingCore.Views.SwitchListItem("Vibration feedback", isSelected: vibrationFeedbackValue);
+            var vibrationFeedback = new SettingCore.Views.SwitchListItem(NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_TTS_VIBRATION_FEEDBACK)), isSelected: vibrationFeedbackValue);
             vibrationFeedback.Switch.SelectedChanged += (s, e) =>
             {
                 Interop.Vconf.SetVconfBool(VCONFKEY_SETAPPL_ACCESSIBILITY_SCREEN_READER_HAPTIC, e.IsSelected);
@@ -146,8 +149,7 @@ namespace SettingAccessibility
             sections.Add(vibrationFeedback);
 
             Interop.Vconf.GetVconfBool(VCONFKEY_SETAPPL_ACCESSIBILITY_SCREEN_READER_SOUND_FEEDBACK, out bool soundFeedbackValue);
-            // TODO: replace fixed string with Resources dictionary
-            var soundFeedback = new SettingCore.Views.SwitchListItem("Sound feedback", isSelected: soundFeedbackValue);
+            var soundFeedback = new SettingCore.Views.SwitchListItem(NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_TTS_SOUND_FEEDBACK)), isSelected: soundFeedbackValue);
             soundFeedback.Switch.SelectedChanged += (s, e) =>
             {
                 Interop.Vconf.SetVconfBool(VCONFKEY_SETAPPL_ACCESSIBILITY_SCREEN_READER_SOUND_FEEDBACK, e.IsSelected);
@@ -155,7 +157,7 @@ namespace SettingAccessibility
             sections.Add(soundFeedback);
 
             // TODO: replace fixed string with Resources dictionary
-            var statusBarInformation = SettingCore.Views.TextListItem.CreatePrimaryTextItemWithSubText("Status bar information", "Select which information from indicators shown on the status bar will be read aloud when you triple tap the screen with two fingers, for example, the time and date, the device’s signal strength, Wi-Fi and Bluetooth connections, and the battery power.");
+            var statusBarInformation = SettingCore.Views.TextListItem.CreatePrimaryTextItemWithSubText(NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_TTS_STATUS_BAR_INFO)), NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_TTS_STATUS_BAR_INFO_DESCRIPTION)));
             statusBarInformation.Clicked += (s, e) =>
             {
                 NavigateTo(MenuProvider.TalkBack_StatusBar);
@@ -168,5 +170,15 @@ namespace SettingAccessibility
                 scrollableContent.Add(view);
             }
         }
+
+        private string GetName(SupportedVoice defaultVoice)
+        {
+            if (voiceTypeResourceKeys.TryGetValue(defaultVoice.VoiceType, out string voiceResourceKey))
+            {
+                return NUIGadgetResourceManager.GetString(voiceResourceKey);
+            }
+            return defaultVoice.ToString();
+        }
+
     }
 }
index 0517060e7474a4af0a5753f28ae16165784527cc..b186239d8160956fcaae248748c5255955443115 100644 (file)
@@ -1,21 +1,42 @@
 <Project Sdk="Tizen.NET.Sdk/1.1.9">
 
-  <PropertyGroup>
-     <TargetFramework>netcoreapp3.1</TargetFramework>
-     <TizenCreateTpkOnBuild>false</TizenCreateTpkOnBuild>
-  </PropertyGroup>
-
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugType>portable</DebugType>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>None</DebugType>
-  </PropertyGroup>
-   
-  <ItemGroup>
-    <PackageReference Include="SettingCore" Version="1.0.260" />
-    <PackageReference Include="Tizen.NET" Version="11.0.0.17739" />
-  </ItemGroup> 
+       <PropertyGroup>
+               <TargetFramework>net6.0</TargetFramework>
+               <TizenCreateTpkOnBuild>false</TizenCreateTpkOnBuild>
+               <DisableImplicitTizenReferences>True</DisableImplicitTizenReferences>
+       </PropertyGroup>
+
+       <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+               <DebugType>portable</DebugType>
+       </PropertyGroup>
+       <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+               <DebugType>None</DebugType>
+       </PropertyGroup>
+
+       <ItemGroup>
+               <PackageReference Include="SettingCore" Version="1.0.384" />
+               <PackageReference Include="Tizen.NET" Version="12.0.0.18057" />
+       </ItemGroup>
+
+       <ItemGroup>
+               <Compile Update="TextResources\Resources.Designer.cs">
+                       <DependentUpon>Resources.resx</DependentUpon>
+                       <DesignTime>True</DesignTime>
+                       <AutoGen>True</AutoGen>
+               </Compile>
+       </ItemGroup>
+
+       <ItemGroup>
+               <EmbeddedResource Update="TextResources\Resources.resx">
+                       <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+                       <Generator>PublicResXFileCodeGenerator</Generator>
+               </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/SettingAccessibility/SettingAccessibility/TextResources/Resources.en-US.resx b/SettingAccessibility/SettingAccessibility/TextResources/Resources.en-US.resx
new file mode 100644 (file)
index 0000000..c072dc8
--- /dev/null
@@ -0,0 +1,174 @@
+<?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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="IDS_ACCS_BODY_WHILE_SCREEN_READER_IS_ENABLED_YOUR_PHONE_WILL_PROVIDE_VOICE_FEEDBACK_FOR_EXAMPLE_SCREEN_READER_WILL_MSG" xml:space="preserve">
+    <value>While Screen reader is enabled, your phone will provide voice feedback. For example, Screen reader will tell you what you can interact with on each screen. Tap items to select them and hear what they are, and double tap items to perform the telated action. </value>
+  </data>
+  <data name="IDS_ST_BODY_ACCESSIBILITY" xml:space="preserve">
+    <value>Accessibility</value>
+  </data>
+  <data name="IDS_ST_HEADER_TALK_BACK" xml:space="preserve">
+    <value>Talk Back</value>
+  </data>
+  <data name="IDS_ST_SCREEN_READER_TTS" xml:space="preserve">
+    <value>Screen Reader (TTS)</value>
+  </data>
+  <data name="IDS_ST_VOICE_TYPE_AND_LANGUAGE" xml:space="preserve">
+    <value>Voice Type &amp; Language</value>
+  </data>
+  <data name="IDS_ST_TTS_VOICE_AUTO" xml:space="preserve">
+    <value>Auto</value>
+  </data>
+  <data name="IDS_ST_TTS_VOICE_MALE" xml:space="preserve">
+    <value>Male</value>
+  </data>
+  <data name="IDS_ST_TTS_VOICE_FEMALE" xml:space="preserve">
+    <value>Female</value>
+  </data>
+  <data name="IDS_ST_TTS_VOICE_CHILD" xml:space="preserve">
+    <value>Child</value>
+  </data>
+  <data name="IDS_ST_TTS_VOICE_VOLUME" xml:space="preserve">
+    <value>Volume</value>
+  </data>
+  <data name="IDS_ST_TTS_SPEECH_RATE" xml:space="preserve">
+    <value>Speech rate</value>
+  </data>
+  <data name="IDS_ST_TTS_KEYBOARD_FEEDBACK" xml:space="preserve">
+    <value>Keyboard feedback</value>
+  </data>
+  <data name="IDS_ST_TTS_KEYBOARD_INPUT_ALOAD" xml:space="preserve">
+    <value>Always read keyboard input aload</value>
+  </data>
+  <data name="IDS_ST_TTS_READ_USAGE_HINTS_ALOAD" xml:space="preserve">
+    <value>Read usage hints aloud</value>
+  </data>
+  <data name="IDS_ST_TTS_VIBRATION_FEEDBACK" xml:space="preserve">
+    <value>Vibration feedback</value>
+  </data>
+  <data name="IDS_ST_TTS_SOUND_FEEDBACK" xml:space="preserve">
+    <value>Sound feedback</value>
+  </data>
+  <data name="IDS_ST_TTS_STATUS_BAR_INFO" xml:space="preserve">
+    <value>Status bar information</value>
+  </data>
+  <data name="IDS_ST_TTS_STATUS_BAR_INFO_DESCRIPTION" xml:space="preserve">
+    <value>Select which information from indicators shown on the status bar will be read aloud when you triple tap the screen with two fingers, for example, the time and date, the device’s signal strength, Wi-Fi and Bluetooth connections, and the battery power.</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/SettingAccessibility/SettingAccessibility/TextResources/Resources.ko-KR.resx b/SettingAccessibility/SettingAccessibility/TextResources/Resources.ko-KR.resx
new file mode 100644 (file)
index 0000000..e676b26
--- /dev/null
@@ -0,0 +1,175 @@
+<?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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="IDS_ACCS_BODY_WHILE_SCREEN_READER_IS_ENABLED_YOUR_PHONE_WILL_PROVIDE_VOICE_FEEDBACK_FOR_EXAMPLE_SCREEN_READER_WILL_MSG" xml:space="preserve">
+    <value>스크린 리더를 실행하면 음성 피드백을 제공합니다. 예를 들어, 스크린 리더는 각 화면에서 조작할 수 있는 것을 말해줍니다. 항목을 한 번 누르면 들을 수 있고, 두 번 누르면 관련 항목의 작업을 수행합니다. </value>
+  </data>
+  <data name="IDS_ST_BODY_ACCESSIBILITY" xml:space="preserve">
+    <value>접근성</value>
+  </data>
+  <data name="IDS_ST_HEADER_TALK_BACK" xml:space="preserve">
+    <value>Talk Back</value>
+  </data>
+  <data name="IDS_ST_SCREEN_READER_TTS" xml:space="preserve">
+    <value>텍스트 음성 변환 (TTS)</value>
+  </data>
+  <data name="IDS_ST_VOICE_TYPE_AND_LANGUAGE" xml:space="preserve">
+    <value>목소리 타입 &amp; 언어</value>
+  </data>
+  <data name="IDS_ST_TTS_VOICE_AUTO" xml:space="preserve">
+    <value>자동</value>
+  </data>
+  <data name="IDS_ST_TTS_VOICE_MALE" xml:space="preserve">
+    <value>남성</value>
+  </data>
+  <data name="IDS_ST_TTS_VOICE_FEMALE" xml:space="preserve">
+    <value>여성</value>
+  </data>
+  <data name="IDS_ST_TTS_VOICE_CHILD" xml:space="preserve">
+    <value>아동</value>
+  </data>
+  <data name="IDS_ST_TTS_VOICE_VOLUME" xml:space="preserve">
+    <value>음량</value>
+  </data>
+  <data name="IDS_ST_TTS_SPEECH_RATE" xml:space="preserve">
+    <value>읽어주는 속도</value>
+  </data>
+  <data name="IDS_ST_TTS_KEYBOARD_FEEDBACK" xml:space="preserve">
+    <value>키보드 피드백</value>
+  </data>
+  <data name="IDS_ST_TTS_KEYBOARD_INPUT_ALOAD" xml:space="preserve">
+    <value>키보드 입력 항상 읽기</value>
+  </data>
+  <data name="IDS_ST_TTS_READ_USAGE_HINTS_ALOAD" xml:space="preserve">
+    <value>사용 힌트 읽기</value>
+  </data>
+  <data name="IDS_ST_TTS_VIBRATION_FEEDBACK" xml:space="preserve">
+    <value>진동 피드백</value>
+  </data>
+  <data name="IDS_ST_TTS_SOUND_FEEDBACK" xml:space="preserve">
+    <value>소리 피드백</value>
+  </data>
+  <data name="IDS_ST_TTS_STATUS_BAR_INFO" xml:space="preserve">
+    <value>상태표시줄 정보</value>
+  </data>
+  <data name="IDS_ST_TTS_STATUS_BAR_INFO_DESCRIPTION" xml:space="preserve">
+    <value>두 손가락으로 세번 탭하면 상태표시줄에 표시된 항목 중 어느 정보를 읽을 지 설정합니다. 예를 들면 날짜 및 시간, 디바이스 연결 상태, Wi-Fi 및 블루투스 연결, 배터리 상태 등을 읽을 수 있습니다.</value>
+  </data>
+
+</root>
\ No newline at end of file
diff --git a/SettingAccessibility/SettingAccessibility/TextResources/Resources.resx b/SettingAccessibility/SettingAccessibility/TextResources/Resources.resx
new file mode 100644 (file)
index 0000000..c072dc8
--- /dev/null
@@ -0,0 +1,174 @@
+<?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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="IDS_ACCS_BODY_WHILE_SCREEN_READER_IS_ENABLED_YOUR_PHONE_WILL_PROVIDE_VOICE_FEEDBACK_FOR_EXAMPLE_SCREEN_READER_WILL_MSG" xml:space="preserve">
+    <value>While Screen reader is enabled, your phone will provide voice feedback. For example, Screen reader will tell you what you can interact with on each screen. Tap items to select them and hear what they are, and double tap items to perform the telated action. </value>
+  </data>
+  <data name="IDS_ST_BODY_ACCESSIBILITY" xml:space="preserve">
+    <value>Accessibility</value>
+  </data>
+  <data name="IDS_ST_HEADER_TALK_BACK" xml:space="preserve">
+    <value>Talk Back</value>
+  </data>
+  <data name="IDS_ST_SCREEN_READER_TTS" xml:space="preserve">
+    <value>Screen Reader (TTS)</value>
+  </data>
+  <data name="IDS_ST_VOICE_TYPE_AND_LANGUAGE" xml:space="preserve">
+    <value>Voice Type &amp; Language</value>
+  </data>
+  <data name="IDS_ST_TTS_VOICE_AUTO" xml:space="preserve">
+    <value>Auto</value>
+  </data>
+  <data name="IDS_ST_TTS_VOICE_MALE" xml:space="preserve">
+    <value>Male</value>
+  </data>
+  <data name="IDS_ST_TTS_VOICE_FEMALE" xml:space="preserve">
+    <value>Female</value>
+  </data>
+  <data name="IDS_ST_TTS_VOICE_CHILD" xml:space="preserve">
+    <value>Child</value>
+  </data>
+  <data name="IDS_ST_TTS_VOICE_VOLUME" xml:space="preserve">
+    <value>Volume</value>
+  </data>
+  <data name="IDS_ST_TTS_SPEECH_RATE" xml:space="preserve">
+    <value>Speech rate</value>
+  </data>
+  <data name="IDS_ST_TTS_KEYBOARD_FEEDBACK" xml:space="preserve">
+    <value>Keyboard feedback</value>
+  </data>
+  <data name="IDS_ST_TTS_KEYBOARD_INPUT_ALOAD" xml:space="preserve">
+    <value>Always read keyboard input aload</value>
+  </data>
+  <data name="IDS_ST_TTS_READ_USAGE_HINTS_ALOAD" xml:space="preserve">
+    <value>Read usage hints aloud</value>
+  </data>
+  <data name="IDS_ST_TTS_VIBRATION_FEEDBACK" xml:space="preserve">
+    <value>Vibration feedback</value>
+  </data>
+  <data name="IDS_ST_TTS_SOUND_FEEDBACK" xml:space="preserve">
+    <value>Sound feedback</value>
+  </data>
+  <data name="IDS_ST_TTS_STATUS_BAR_INFO" xml:space="preserve">
+    <value>Status bar information</value>
+  </data>
+  <data name="IDS_ST_TTS_STATUS_BAR_INFO_DESCRIPTION" xml:space="preserve">
+    <value>Select which information from indicators shown on the status bar will be read aloud when you triple tap the screen with two fingers, for example, the time and date, the device’s signal strength, Wi-Fi and Bluetooth connections, and the battery power.</value>
+  </data>
+</root>
\ No newline at end of file
index eb26a0037fc17a9d7519ca8ac5aa55bd1db3dd6c..dd5674e795565fd61441079d12628198d335ef22 100644 (file)
@@ -4,7 +4,10 @@
   res-type="org.tizen.appfw.gadget.setting-accessibility" res-version="1.5.0">
   <allowed-package id="org.tizen.*"/>
   <metadata key="http://tizen.org/metadata/ui-gadget/dll" value="SettingAccessibility.dll" />
-  <metadata key="http://tizen.org/metadata/ui-gadget/menu/TalkBack/icon-path" value="accessibility-icon.svg"/>
+  <metadata key="http://tizen.org/metadata/ui-gadget/resource/dll" value="SettingAccessibility.resources.dll"/>
+  <metadata key="http://tizen.org/metadata/ui-gadget/resource/class-name" value="SettingAccessibility.TextResources.Resources"/>
+
+       <metadata key="http://tizen.org/metadata/ui-gadget/menu/TalkBack/icon-path" value="accessibility-icon.svg"/>
   <metadata key="http://tizen.org/metadata/ui-gadget/menu/TalkBack/icon-color" value="#205493,#2560A8"/>
-  <metadata key="http://tizen.org/metadata/ui-gadget/menu/TalkBack/title" value="Talk Back"/>
+  <metadata key="http://tizen.org/metadata/ui-gadget/menu/TalkBack/title" value="IDS_ST_HEADER_TALK_BACK"/>
 </manifest>
index 1d51d06bd5c39f348548dfb05196cc41e158ed77..440138205ca8525bf7c65391442f4c70f705bf10 100644 (file)
Binary files a/packaging/org.tizen.cssetting-accessibility-1.1.0.rpk and b/packaging/org.tizen.cssetting-accessibility-1.1.0.rpk differ