<ItemGroup>\r
<PackageReference Include="System.Reflection.TypeExtensions" Version="4.3.0" PrivateAssets="All" />\r
<PackageReference Include="Tizen.Applications.Common" Version="1.5.9" />\r
+ <PackageReference Include="Tizen.System.SystemSettings" Version="1.0.4" PrivateAssets="All"/>\r
</ItemGroup>\r
-\r
+ <Target Name="ChangeAliasesOfStrongNameAssemblies" BeforeTargets="FindReferenceAssembliesForReferences;ResolveReferences">\r
+ <ItemGroup>\r
+ <ReferencePath Condition="'%(FileName)' == 'Tizen.System.SystemSettings'">\r
+ <Aliases>TizenSystemSettings</Aliases>\r
+ </ReferencePath>\r
+ </ItemGroup>\r
+ </Target>\r
</Project>\r
\r
--- /dev/null
+using System;\r
+using System.Reflection;\r
+\r
+namespace Tizen.NUI\r
+{\r
+ internal sealed class WeakEventHandler<TEventArgs> where TEventArgs : EventArgs\r
+ {\r
+ private readonly WeakReference _targetReference;\r
+ private readonly MethodInfo _method;\r
+\r
+ public WeakEventHandler(EventHandler<TEventArgs> callback)\r
+ {\r
+ _method = callback.GetMethodInfo(); \r
+ _targetReference = new WeakReference(callback.Target, true);\r
+ }\r
+\r
+ public void Handler(object sender, TEventArgs e)\r
+ {\r
+ var target = _targetReference.Target;\r
+ if (target != null)\r
+ {\r
+ var callback = (Action<object, TEventArgs>)_method.CreateDelegate(typeof(Action<object, TEventArgs>), target);\r
+ if (callback != null)\r
+ {\r
+ callback(sender, e);\r
+ }\r
+ }\r
+ }\r
+}\r
+\r
+}\r
+\r
*
*/
+extern alias TizenSystemSettings;
+using TizenSystemSettings.Tizen.System;
namespace Tizen.NUI.BaseComponents
{
using System;
using System.Runtime.InteropServices;
+ using System.Globalization;
/// <summary>
/// A control which provides a multi-line editable text editor.
public class TextEditor : View
{
private global::System.Runtime.InteropServices.HandleRef swigCPtr;
+ private string textEditorTextSid = null;
+ private string textEditorPlaceHolderTextSid = null;
+ private bool systemlangTextFlag = false;
internal TextEditor(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.TextEditor_SWIGUpcast(cPtr), cMemoryOwn)
{
}
/// <summary>
+ /// TranslatableText property.<br>
+ /// The text can be set SID value.<br>
+ /// </summary>
+ /// <exception cref='ArgumentNullException'>
+ /// ResourceManager about multilingual is null
+ /// </exception>
+ public string TranslatableText
+ {
+ get
+ {
+ return textEditorTextSid;
+ }
+ set
+ {
+ if (NUIApplication.MultilingualResourceManager == null)
+ {
+ throw new ArgumentNullException("ResourceManager about multilingual is null");
+ }
+ textEditorTextSid = value;
+ Text = SetTranslatable(textEditorTextSid);
+ }
+ }
+ /// <summary>
+ /// TranslatablePlaceholderText property.<br>
+ /// The text can be set SID value.<br>
+ /// </summary>
+ /// <exception cref='ArgumentNullException'>
+ /// ResourceManager about multilingual is null
+ /// </exception>
+ public string TranslatablePlaceholderText
+ {
+ get
+ {
+ return textEditorPlaceHolderTextSid;
+ }
+ set
+ {
+ if (NUIApplication.MultilingualResourceManager == null)
+ {
+ throw new ArgumentNullException("ResourceManager about multilingual is null");
+ }
+ textEditorPlaceHolderTextSid = value;
+ PlaceholderText = SetTranslatable(textEditorPlaceHolderTextSid);
+ }
+ }
+ private string SetTranslatable(string textEditorSid)
+ {
+ string translatableText = null;
+ translatableText = NUIApplication.MultilingualResourceManager?.GetString(textEditorSid, new CultureInfo(SystemSettings.LocaleLanguage.Replace("_", "-")));
+ if (translatableText != null)
+ {
+ if (systemlangTextFlag == false)
+ {
+ SystemSettings.LocaleLanguageChanged += new WeakEventHandler<LocaleLanguageChangedEventArgs>(SystemSettings_LocaleLanguageChanged).Handler;
+ systemlangTextFlag = true;
+ }
+ return translatableText;
+ }
+ else
+ {
+ translatableText = "";
+ return translatableText;
+ }
+ }
+ private void SystemSettings_LocaleLanguageChanged(object sender, LocaleLanguageChangedEventArgs e)
+ {
+ if (textEditorTextSid != null)
+ {
+ Text = NUIApplication.MultilingualResourceManager?.GetString(textEditorTextSid, new CultureInfo(e.Value.Replace("_", "-")));
+ }
+ if (textEditorPlaceHolderTextSid != null)
+ {
+ PlaceholderText = NUIApplication.MultilingualResourceManager?.GetString(textEditorPlaceHolderTextSid, new CultureInfo(e.Value.Replace("_", "-")));
+ }
+ }
/// Text property.
/// </summary>
public string Text
* limitations under the License.
*
*/
-
+extern alias TizenSystemSettings;
+using TizenSystemSettings.Tizen.System;
namespace Tizen.NUI.BaseComponents
{
using System;
using System.Runtime.InteropServices;
-
+ using System.Globalization;
/// <summary>
/// A control which provides a single-line editable text field.
/// </summary>
public class TextField : View
{
private global::System.Runtime.InteropServices.HandleRef swigCPtr;
+ private string textFieldTextSid = null;
+ private string textFieldPlaceHolderTextSid = null;
+ private bool systemlangTextFlag = false;
internal TextField(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.TextField_SWIGUpcast(cPtr), cMemoryOwn)
{
}
/// <summary>
+ /// TranslatableText property.<br>
+ /// The text can be set SID value.<br>
+ /// </summary>
+ /// <exception cref='ArgumentNullException'>
+ /// ResourceManager about multilingual is null
+ /// </exception>
+ public string TranslatableText
+ {
+ get
+ {
+ return textFieldTextSid;
+ }
+ set
+ {
+ if (NUIApplication.MultilingualResourceManager == null)
+ {
+ throw new ArgumentNullException("ResourceManager about multilingual is null");
+ }
+ textFieldTextSid = value;
+ Text = SetTranslatable(textFieldTextSid);
+ }
+ }
+ /// <summary>
+ /// TranslatablePlaceholderText property.<br>
+ /// The text can be set SID value.<br>
+ /// </summary>
+ /// <exception cref='ArgumentNullException'>
+ /// ResourceManager about multilingual is null
+ /// </exception>
+ public string TranslatablePlaceholderText
+ {
+ get
+ {
+ return textFieldPlaceHolderTextSid;
+ }
+ set
+ {
+ if (NUIApplication.MultilingualResourceManager == null)
+ {
+ throw new ArgumentNullException("ResourceManager about multilingual is null");
+ }
+ textFieldPlaceHolderTextSid = value;
+ PlaceholderText = SetTranslatable(textFieldPlaceHolderTextSid);
+ }
+ }
+ private string SetTranslatable(string textFieldSid)
+ {
+ string translatableText = null;
+ translatableText = NUIApplication.MultilingualResourceManager?.GetString(textFieldSid, new CultureInfo(SystemSettings.LocaleLanguage.Replace("_", "-")));
+ if (translatableText != null)
+ {
+ if (systemlangTextFlag == false)
+ {
+ SystemSettings.LocaleLanguageChanged += new WeakEventHandler<LocaleLanguageChangedEventArgs>(SystemSettings_LocaleLanguageChanged).Handler;
+ systemlangTextFlag = true;
+ }
+ return translatableText;
+ }
+ else
+ {
+ translatableText = "";
+ return translatableText;
+ }
+ }
+ private void SystemSettings_LocaleLanguageChanged(object sender, LocaleLanguageChangedEventArgs e)
+ {
+ if (textFieldTextSid != null)
+ {
+ Text = NUIApplication.MultilingualResourceManager?.GetString(textFieldTextSid, new CultureInfo(e.Value.Replace("_", "-")));
+ }
+ if (textFieldPlaceHolderTextSid != null)
+ {
+ PlaceholderText = NUIApplication.MultilingualResourceManager?.GetString(textFieldPlaceHolderTextSid, new CultureInfo(e.Value.Replace("_", "-")));
+ }
+ }
/// Text property.
/// </summary>
public string Text
*
*/
+extern alias TizenSystemSettings;
+using TizenSystemSettings.Tizen.System;
using System;
-
+using System.Globalization;
namespace Tizen.NUI.BaseComponents
{
public class TextLabel : View
{
private global::System.Runtime.InteropServices.HandleRef swigCPtr;
-
+ private string textLabelSid = null;
+ private bool systemlangTextFlag = false;
internal TextLabel(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.TextLabel_SWIGUpcast(cPtr), cMemoryOwn)
{
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
+ /// <summary>
+ /// TranslatableText property.<br>
+ /// The text can be set SID value.<br>
+ /// </summary>
+ /// <exception cref='ArgumentNullException'>
+ /// ResourceManager about multilingual is null
+ /// </exception>
+ public string TranslatableText
+ {
+ get
+ {
+ return textLabelSid;
+ }
+ set
+ {
+ if (NUIApplication.MultilingualResourceManager == null)
+ {
+ throw new ArgumentNullException("ResourceManager about multilingual is null");
+ }
+ string translatableText = null;
+ textLabelSid = value;
+ translatableText = NUIApplication.MultilingualResourceManager?.GetString(textLabelSid, new CultureInfo(SystemSettings.LocaleLanguage.Replace("_", "-")));
+ if (translatableText != null)
+ {
+ Text = translatableText;
+ if (systemlangTextFlag == false)
+ {
+ SystemSettings.LocaleLanguageChanged += new WeakEventHandler<LocaleLanguageChangedEventArgs>(SystemSettings_LocaleLanguageChanged).Handler;
+ systemlangTextFlag = true;
+ }
+ }
+ else
+ {
+ Text = "";
+ }
+ }
+ }
+ private void SystemSettings_LocaleLanguageChanged(object sender, LocaleLanguageChangedEventArgs e)
+ {
+ Text = NUIApplication.MultilingualResourceManager?.GetString(textLabelSid, new CultureInfo(e.Value.Replace("_", "-")));
+ }
/// <summary>
/// Text property.<br>
/// Represents an application that have UI screen. The NUIApplication class has a default stage.
/// </summary>
public class NUIApplication : CoreApplication
- {
+ {\r
+ /// <summary>
+ /// The instance of ResourceManager.
+ /// </summary>
+ private static System.Resources.ResourceManager resourceManager = null;
/// <summary>
/// The default constructor.
/// </summary>
Opaque = 0,
Transparent = 1
}
+<<<<<<< HEAD
internal Application ApplicationHandle
}
}
+=======
+ /// <summary>
+ /// ResourceManager to handle multilingual
+ /// </summary>
+ public static System.Resources.ResourceManager MultilingualResourceManager
+ {
+ get
+ {
+ return resourceManager;
+ }
+ set
+ {
+ resourceManager = value;
+ }
+ }
+>>>>>>> 23f9e83... Add translatable text in TextLabel, TextField, TextEditor
}
}
BuildRequires: csapi-tizen-nuget
BuildRequires: csapi-application-common-nuget
BuildRequires: csapi-application-ui-nuget
+BuildRequires: csapi-system-settings-nuget
%define Assemblies Tizen.NUI