-* text=auto
+* text=auto eol=lf
*.cs eol=lf
*.csproj eol=lf
*.sln eol=lf
**/.gn
**/[Bb]uild/
**/res/allowed/*.dll
+**/res/allowed/*/*.dll
+*.user
-using Tizen.NUI;
+using SettingAccessibility.TextResources;
+using Tizen.NUI;
using Tizen.NUI.BaseComponents;
using Tizen.NUI.Components;
{
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()
{
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";
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();
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);
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"),
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
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);
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);
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);
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);
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);
scrollableContent.Add(view);
}
}
+
+ private string GetName(SupportedVoice defaultVoice)
+ {
+ if (voiceTypeResourceKeys.TryGetValue(defaultVoice.VoiceType, out string voiceResourceKey))
+ {
+ return NUIGadgetResourceManager.GetString(voiceResourceKey);
+ }
+ return defaultVoice.ToString();
+ }
+
}
}
<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
rmdir /S /Q res\allowed\locale
mkdir res\allowed\locale
dir $(OutDir)\
xcopy /S /K /D /H /Y $(OutDir)\ res\allowed\locale
del /q res\allowed\locale\*.*
xcopy /S /K /D /H /Y res\allowed\locale\* res\allowed
rmdir /S /Q res\allowed\locale
" />
+ </Target>
+
</Project>
--- /dev/null
+<?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 & 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
--- /dev/null
+<?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>목소리 타입 & 언어</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
--- /dev/null
+<?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 & 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
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>