From 0a62ff932e441d9d6db5db42c9a51f38554dea0a Mon Sep 17 00:00:00 2001 From: Anuj Kumar Singh Date: Mon, 26 Feb 2024 10:58:18 +0530 Subject: [PATCH] Implement supporting multiple languages Change-Id: Iad05b7f66891e966d566431a59e50e38a1b20297 Signed-off-by: Anuj Kumar Singh --- SettingWiFi/SettingWiFi/SettingWiFi.csproj | 25 + .../TextResources/Resources.Designer.cs | 1185 +++++++++++++++++ .../Resources.en-US.resx} | 452 ++++--- .../Resources.ko-KR.resx | 452 ++++--- .../locale => TextResources}/Resources.resx | 463 ++++--- SettingWiFi/SettingWiFi/model/AP.cs | 51 +- .../SettingWiFi/locale/Resources.Designer.cs | 853 ------------ SettingWiFi/SettingWiFi/tizen-manifest.xml | 3 + SettingWiFi/SettingWiFi/view/APSource.cs | 13 +- SettingWiFi/SettingWiFi/view/AddNetwork.cs | 33 +- .../view/AddNetworkInfoInputPage.cs | 47 +- .../SettingWiFi/view/AddNetworkInfoSource.cs | 13 +- SettingWiFi/SettingWiFi/view/AdvancedPage.cs | 17 +- SettingWiFi/SettingWiFi/view/ApInfoSource.cs | 27 +- SettingWiFi/SettingWiFi/view/ConnectPage.cs | 13 +- .../SettingWiFi/view/EapInfoInputPage.cs | 15 +- SettingWiFi/SettingWiFi/view/EapInfoSource.cs | 7 +- SettingWiFi/SettingWiFi/view/EapPage.cs | 27 +- SettingWiFi/SettingWiFi/view/EyeButton.cs | 1 + .../SettingWiFi/view/HiddenConnectPage.cs | 19 +- SettingWiFi/SettingWiFi/view/InfoInputPage.cs | 17 +- SettingWiFi/SettingWiFi/view/InfoPage.cs | 47 +- SettingWiFi/SettingWiFi/view/MainPage.cs | 33 +- .../SettingWiFi/view/ResourceManager.cs | 15 + SettingWiFi/SettingWiFi/view/Resources.cs | 145 -- SettingWiFi/SettingWiFi/view/SortBy.cs | 7 +- .../SettingWiFi/view/WPSConnectPage.cs | 25 +- .../SettingWiFi/view/WiFiDirectPage.cs | 5 +- packaging/org.tizen.cssetting-wifi-1.1.6.rpk | Bin 237046 -> 239166 bytes 29 files changed, 2191 insertions(+), 1819 deletions(-) create mode 100644 SettingWiFi/SettingWiFi/TextResources/Resources.Designer.cs rename SettingWiFi/SettingWiFi/{res/allowed/SettingWiFi/locale/Resources.en.resx => TextResources/Resources.en-US.resx} (93%) rename SettingWiFi/SettingWiFi/{res/allowed/SettingWiFi/locale => TextResources}/Resources.ko-KR.resx (93%) rename SettingWiFi/SettingWiFi/{res/allowed/SettingWiFi/locale => TextResources}/Resources.resx (71%) delete mode 100644 SettingWiFi/SettingWiFi/res/allowed/SettingWiFi/locale/Resources.Designer.cs create mode 100644 SettingWiFi/SettingWiFi/view/ResourceManager.cs delete mode 100755 SettingWiFi/SettingWiFi/view/Resources.cs diff --git a/SettingWiFi/SettingWiFi/SettingWiFi.csproj b/SettingWiFi/SettingWiFi/SettingWiFi.csproj index 89ad442..ff99b32 100755 --- a/SettingWiFi/SettingWiFi/SettingWiFi.csproj +++ b/SettingWiFi/SettingWiFi/SettingWiFi.csproj @@ -17,4 +17,29 @@ + + + True + True + Resources.resx + + + + + + PublicResXFileCodeGenerator + + + PublicResXFileCodeGenerator + + + PublicResXFileCodeGenerator + Resources.Designer.cs + + + + + + + diff --git a/SettingWiFi/SettingWiFi/TextResources/Resources.Designer.cs b/SettingWiFi/SettingWiFi/TextResources/Resources.Designer.cs new file mode 100644 index 0000000..aed8f31 --- /dev/null +++ b/SettingWiFi/SettingWiFi/TextResources/Resources.Designer.cs @@ -0,0 +1,1185 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace SettingWiFi.TextResources { + using System; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + public class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + + static private string mResourcePath = ""; + + static public void SetPath(string path) + { + mResourcePath = path; + } + static public string GetPath() + { + return mResourcePath; + } + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SettingWiFi.TextResources.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Button. + /// + public static string IDS_BR_BODY_BUTTON_T_TTS { + get { + return ResourceManager.GetString("IDS_BR_BODY_BUTTON_T_TTS", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid certificate.. + /// + public static string IDS_BR_POP_INVALID_CERTIFICATE { + get { + return ResourceManager.GetString("IDS_BR_POP_INVALID_CERTIFICATE", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Connect to device. + /// + public static string IDS_BT_BODY_CONNECT_TO_DEVICE { + get { + return ResourceManager.GetString("IDS_BT_BODY_CONNECT_TO_DEVICE", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Always. + /// + public static string IDS_CLD_OPT_ALWAYS_ABB { + get { + return ResourceManager.GetString("IDS_CLD_OPT_ALWAYS_ABB", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Find. + /// + public static string IDS_COM_BODY_FIND { + get { + return ResourceManager.GetString("IDS_COM_BODY_FIND", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Phase 2 authentication. + /// + public static string IDS_COM_BODY_PHASE_2_AUTHENTICATION { + get { + return ResourceManager.GetString("IDS_COM_BODY_PHASE_2_AUTHENTICATION", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Alphabetical. + /// + public static string IDS_EMAIL_POP_ALPHABETICAL { + get { + return ResourceManager.GetString("IDS_EMAIL_POP_ALPHABETICAL", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid PIN.. + /// + public static string IDS_GC_POP_INVALID_PIN { + get { + return ResourceManager.GetString("IDS_GC_POP_INVALID_PIN", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Tap the network you want to connect to.. + /// + public static string IDS_HELP_BODY_TAP_THE_NETWORK_YOU_WANT_TO_CONNECT_TO { + get { + return ResourceManager.GetString("IDS_HELP_BODY_TAP_THE_NETWORK_YOU_WANT_TO_CONNECT_TO", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You have been automatically connected to the remembered network. To see the network details, tap the %s icon.. + /// + public static string IDS_HELP_BODY_YOU_HAVE_BEEN_AUTOMATICALLY_CONNECTED_TO_THE_REMEMBERED_NETWORK_TO_SEE_THE_NETWORK_DETAILS_TAP_THE_PS_ICON { + get { + return ResourceManager.GetString("IDS_HELP_BODY_YOU_HAVE_BEEN_AUTOMATICALLY_CONNECTED_TO_THE_REMEMBERED_NETWORK_TO_" + + "SEE_THE_NETWORK_DETAILS_TAP_THE_PS_ICON", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You have been connected to the network. To see the network details, tap the %s icon.. + /// + public static string IDS_HELP_BODY_YOU_HAVE_BEEN_CONNECTED_TO_THE_NETWORK_TO_SEE_THE_NETWORK_DETAILS_TAP_THE_PS_ICON { + get { + return ResourceManager.GetString("IDS_HELP_BODY_YOU_HAVE_BEEN_CONNECTED_TO_THE_NETWORK_TO_SEE_THE_NETWORK_DETAILS_T" + + "AP_THE_PS_ICON", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid action. Try again.. + /// + public static string IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN { + get { + return ResourceManager.GetString("IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No Wi-Fi networks found. Change your location or try later.. + /// + public static string IDS_HELP_POP_NO_WI_FI_NETWORKS_FOUND_CHANGE_YOUR_LOCATION_OR_TRY_LATER { + get { + return ResourceManager.GetString("IDS_HELP_POP_NO_WI_FI_NETWORKS_FOUND_CHANGE_YOUR_LOCATION_OR_TRY_LATER", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Tap to scan for Wi-Fi networks.. + /// + public static string IDS_HELP_POP_TAP_TO_SCAN_FOR_WI_FI_NETWORKS { + get { + return ResourceManager.GetString("IDS_HELP_POP_TAP_TO_SCAN_FOR_WI_FI_NETWORKS", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to To connect to a secured network, You may need to enter a password or other credentials.. + /// + public static string IDS_HELP_POP_TO_CONNECT_TO_A_SECURED_NETWORK_YOU_MAY_NEED_TO_ENTER_A_PASSWORD_OR_OTHER_CREDENTIALS { + get { + return ResourceManager.GetString("IDS_HELP_POP_TO_CONNECT_TO_A_SECURED_NETWORK_YOU_MAY_NEED_TO_ENTER_A_PASSWORD_OR_" + + "OTHER_CREDENTIALS", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Do not show again.. + /// + public static string IDS_MOBILEAP_POP_DO_NOT_SHOW_AGAIN { + get { + return ResourceManager.GetString("IDS_MOBILEAP_POP_DO_NOT_SHOW_AGAIN", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add network. + /// + public static string IDS_ST_BODY_ADD_NETWORK { + get { + return ResourceManager.GetString("IDS_ST_BODY_ADD_NETWORK", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add Wi-Fi network. + /// + public static string IDS_ST_BODY_ADD_WI_FI_NETWORK { + get { + return ResourceManager.GetString("IDS_ST_BODY_ADD_WI_FI_NETWORK", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Advanced. + /// + public static string IDS_ST_BODY_ADVANCED { + get { + return ResourceManager.GetString("IDS_ST_BODY_ADVANCED", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Enter the %1$s PIN on your Wi-Fi router. The setup can take up to %2$d minutes to complete.. + /// + public static string IDS_ST_BODY_ENTER_THE_P1SS_PIN_ON_YOUR_WI_FI_ROUTER_THE_SETUP_CAN_TAKE_UP_TO_P2SD_MINUTES_TO_COMPLETE { + get { + return ResourceManager.GetString("IDS_ST_BODY_ENTER_THE_P1SS_PIN_ON_YOUR_WI_FI_ROUTER_THE_SETUP_CAN_TAKE_UP_TO_P2SD" + + "_MINUTES_TO_COMPLETE", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Excellent. + /// + public static string IDS_ST_BODY_EXCELLENT { + get { + return ResourceManager.GetString("IDS_ST_BODY_EXCELLENT", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Good. + /// + public static string IDS_ST_BODY_GOOD_M_BATTERY { + get { + return ResourceManager.GetString("IDS_ST_BODY_GOOD_M_BATTERY", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Install certificate. + /// + public static string IDS_ST_BODY_INSTALL_CERTIFICATE { + get { + return ResourceManager.GetString("IDS_ST_BODY_INSTALL_CERTIFICATE", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to IPv4. + /// + public static string IDS_ST_BODY_IPV4 { + get { + return ResourceManager.GetString("IDS_ST_BODY_IPV4", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to IPv6. + /// + public static string IDS_ST_BODY_IPV6 { + get { + return ResourceManager.GetString("IDS_ST_BODY_IPV6", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Keep Wi-Fi on during sleep. + /// + public static string IDS_ST_BODY_KEEP_WI_FI_ON_DURING_SLEEP { + get { + return ResourceManager.GetString("IDS_ST_BODY_KEEP_WI_FI_ON_DURING_SLEEP", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Network notification. + /// + public static string IDS_ST_BODY_NETWORK_NOTIFICATION { + get { + return ResourceManager.GetString("IDS_ST_BODY_NETWORK_NOTIFICATION", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Network prefix length. + /// + public static string IDS_ST_BODY_NETWORK_PREFIX_LENGTH { + get { + return ResourceManager.GetString("IDS_ST_BODY_NETWORK_PREFIX_LENGTH", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Network SSID. + /// + public static string IDS_ST_BODY_NETWORK_SSID { + get { + return ResourceManager.GetString("IDS_ST_BODY_NETWORK_SSID", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to None. + /// + public static string IDS_ST_BODY_NONE { + get { + return ResourceManager.GetString("IDS_ST_BODY_NONE", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Obtaining IP address.... + /// + public static string IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING { + get { + return ResourceManager.GetString("IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Secured. + /// + public static string IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY { + get { + return ResourceManager.GetString("IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Turning on.... + /// + public static string IDS_ST_BODY_TURNING_ON_ING { + get { + return ResourceManager.GetString("IDS_ST_BODY_TURNING_ON_ING", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WPS available. + /// + public static string IDS_ST_BODY_WPS_AVAILABLE { + get { + return ResourceManager.GetString("IDS_ST_BODY_WPS_AVAILABLE", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to EAP method. + /// + public static string IDS_ST_BUTTON_EAP_METHOD { + get { + return ResourceManager.GetString("IDS_ST_BUTTON_EAP_METHOD", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Phase 2 authentication. + /// + public static string IDS_ST_BUTTON_PHASE_AUTHENTICATION { + get { + return ResourceManager.GetString("IDS_ST_BUTTON_PHASE_AUTHENTICATION", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Security. + /// + public static string IDS_ST_BUTTON_SECURITY_ABB { + get { + return ResourceManager.GetString("IDS_ST_BUTTON_SECURITY_ABB", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to User certificate. + /// + public static string IDS_ST_BUTTON_USER_CERTIFICATE { + get { + return ResourceManager.GetString("IDS_ST_BUTTON_USER_CERTIFICATE", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Available networks. + /// + public static string IDS_ST_HEADER_AVAILABLE_NETWORKS { + get { + return ResourceManager.GetString("IDS_ST_HEADER_AVAILABLE_NETWORKS", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Double tap. + /// + public static string IDS_ST_HEADER_DOUBLE_TAP { + get { + return ResourceManager.GetString("IDS_ST_HEADER_DOUBLE_TAP", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Always allow scanning. + /// + public static string IDS_ST_MBODY_ALWAYS_ALLOW_SCANNING { + get { + return ResourceManager.GetString("IDS_ST_MBODY_ALWAYS_ALLOW_SCANNING", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Skip. + /// + public static string IDS_ST_OPT_SKIP { + get { + return ResourceManager.GetString("IDS_ST_OPT_SKIP", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Turning on Wi-Fi will disable Wi-Fi tethering.. + /// + public static string IDS_ST_POP_TURNING_ON_WI_FI_WILL_DISABLE_WI_FI_TETHERING { + get { + return ResourceManager.GetString("IDS_ST_POP_TURNING_ON_WI_FI_WILL_DISABLE_WI_FI_TETHERING", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Wrong password.. + /// + public static string IDS_ST_POP_WRONG_PASSWORD { + get { + return ResourceManager.GetString("IDS_ST_POP_WRONG_PASSWORD", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Increases data usage.. + /// + public static string IDS_ST_SBODY_INCREASES_DATA_USAGE_ABB { + get { + return ResourceManager.GetString("IDS_ST_SBODY_INCREASES_DATA_USAGE_ABB", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Proxy address. + /// + public static string IDS_ST_SBODY_PROXY_ADDRESS { + get { + return ResourceManager.GetString("IDS_ST_SBODY_PROXY_ADDRESS", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Proxy port. + /// + public static string IDS_ST_SBODY_PROXY_PORT { + get { + return ResourceManager.GetString("IDS_ST_SBODY_PROXY_PORT", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Next. + /// + public static string IDS_STU_BUTTON_NEXT { + get { + return ResourceManager.GetString("IDS_STU_BUTTON_NEXT", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Previous. + /// + public static string IDS_STU_BUTTON_PREVIOUS { + get { + return ResourceManager.GetString("IDS_STU_BUTTON_PREVIOUS", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to After you install, they will be shown here.. + /// + public static string IDS_WIFI_AFTER_YOU_INSTALL_THEY_WILL_BE_SHOWN_HERE { + get { + return ResourceManager.GetString("IDS_WIFI_AFTER_YOU_INSTALL_THEY_WILL_BE_SHOWN_HERE", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A Wi-Fi network has been detected. You will be connected.. + /// + public static string IDS_WIFI_BODY_A_WI_FI_NETWORK_HAS_BEEN_DETECTED_YOU_WILL_BE_CONNECTED { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_A_WI_FI_NETWORK_HAS_BEEN_DETECTED_YOU_WILL_BE_CONNECTED", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Advanced settings. + /// + public static string IDS_WIFI_BODY_ADVANCED_SETTINGS { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_ADVANCED_SETTINGS", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Alphabetical. + /// + public static string IDS_WIFI_BODY_ALPHABETICAL { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_ALPHABETICAL", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Saved. + /// + public static string IDS_WIFI_BODY_CONFIGURATION_SAVED_M_STATUS { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_CONFIGURATION_SAVED_M_STATUS", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Connect. + /// + public static string IDS_WIFI_BODY_CONNECT { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_CONNECT", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Connecting.... + /// + public static string IDS_WIFI_BODY_CONNECTING_ING { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_CONNECTING_ING", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to DNS 1. + /// + public static string IDS_WIFI_BODY_DNS_1 { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_DNS_1", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to DNS 2. + /// + public static string IDS_WIFI_BODY_DNS_2 { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_DNS_2", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Done. + /// + public static string IDS_WIFI_BODY_DONE { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_DONE", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to EAP. + /// + public static string IDS_WIFI_BODY_EAP { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_EAP", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to EAP method. + /// + public static string IDS_WIFI_BODY_EAP_METHOD { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_EAP_METHOD", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Enter identity.. + /// + public static string IDS_WIFI_BODY_ENTER_IDENTITY { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_ENTER_IDENTITY", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Enter network name. + /// + public static string IDS_WIFI_BODY_ENTER_NETWORK_NAME { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_ENTER_NETWORK_NAME", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Gateway. + /// + public static string IDS_WIFI_BODY_GATEWAY { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_GATEWAY", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Gateway address. + /// + public static string IDS_WIFI_BODY_GATEWAY_ADDRESS { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_GATEWAY_ADDRESS", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Identity. + /// + public static string IDS_WIFI_BODY_IDENTITY { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_IDENTITY", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to IP address. + /// + public static string IDS_WIFI_BODY_IP_ADDRESS { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_IP_ADDRESS", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to IP settings. + /// + public static string IDS_WIFI_BODY_IP_SETTINGS { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_IP_SETTINGS", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to MAC address. + /// + public static string IDS_WIFI_BODY_MAC_ADDRESS { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_MAC_ADDRESS", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Maximum number of characters reached.. + /// + public static string IDS_WIFI_BODY_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Name. + /// + public static string IDS_WIFI_BODY_NAME { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_NAME", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Network name. + /// + public static string IDS_WIFI_BODY_NETWORK_NAME { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_NETWORK_NAME", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Proxy. + /// + public static string IDS_WIFI_BODY_PROXY { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_PROXY", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Receive notifications when networks are available.. + /// + public static string IDS_WIFI_BODY_RECEIVE_NOTIFICATIONS_WHEN_NETWORKS_ARE_AVAILABLE { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_RECEIVE_NOTIFICATIONS_WHEN_NETWORKS_ARE_AVAILABLE", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Scanning.... + /// + public static string IDS_WIFI_BODY_SCANNING_ING { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_SCANNING_ING", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Show advanced options. + /// + public static string IDS_WIFI_BODY_SHOW_ADVANCED_OPTIONS { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_SHOW_ADVANCED_OPTIONS", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Signal Strength. + /// + public static string IDS_WIFI_BODY_SIGNAL_STRENGTH { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_SIGNAL_STRENGTH", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Sort by. + /// + public static string IDS_WIFI_BODY_SORT_BY { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_SORT_BY", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Static IP. + /// + public static string IDS_WIFI_BODY_STATIC_IP { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_STATIC_IP", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Subnet mask. + /// + public static string IDS_WIFI_BODY_SUBNET_MASK { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_SUBNET_MASK", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Turn on Wi-Fi to view a list of available networks.. + /// + public static string IDS_WIFI_BODY_TURN_ON_WI_FI_TO_VIEW_A_LIST_OF_AVAILABLE_NETWORKS { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_TURN_ON_WI_FI_TO_VIEW_A_LIST_OF_AVAILABLE_NETWORKS", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Type password. + /// + public static string IDS_WIFI_BODY_TYPE_PASSWORD { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_TYPE_PASSWORD", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unknown. + /// + public static string IDS_WIFI_BODY_UNKNOWN { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_UNKNOWN", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unspecified. + /// + public static string IDS_WIFI_BODY_UNSPECIFIED { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_UNSPECIFIED", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to User certificate. + /// + public static string IDS_WIFI_BODY_USER_CERTIFICATE_ABB { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_USER_CERTIFICATE_ABB", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Weak. + /// + public static string IDS_WIFI_BODY_WEAK_M_STRENGTH { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_WEAK_M_STRENGTH", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to While charging only. + /// + public static string IDS_WIFI_BODY_WHILE_CHARGING_ONLY_ABB { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_WHILE_CHARGING_ONLY_ABB", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Wi-Fi. + /// + public static string IDS_WIFI_BODY_WI_FI { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_WI_FI", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Wi-Fi Direct. + /// + public static string IDS_WIFI_BODY_WI_FI_DIRECT_ABB { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_WI_FI_DIRECT_ABB", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add. + /// + public static string IDS_WIFI_BUTTON_ADD { + get { + return ResourceManager.GetString("IDS_WIFI_BUTTON_ADD", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Find hidden network. + /// + public static string IDS_WIFI_BUTTON_FIND_HIDDEN_NETWORK { + get { + return ResourceManager.GetString("IDS_WIFI_BUTTON_FIND_HIDDEN_NETWORK", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Scan. + /// + public static string IDS_WIFI_BUTTON_SCAN { + get { + return ResourceManager.GetString("IDS_WIFI_BUTTON_SCAN", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WPS button. + /// + public static string IDS_WIFI_BUTTON_WPS_BUTTON { + get { + return ResourceManager.GetString("IDS_WIFI_BUTTON_WPS_BUTTON", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Certificate Search Results. + /// + public static string IDS_WIFI_CERTIFICATE_SEARCH_RESULTS { + get { + return ResourceManager.GetString("IDS_WIFI_CERTIFICATE_SEARCH_RESULTS", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Enter password.. + /// + public static string IDS_WIFI_HEADER_ENTER_PASSWORD { + get { + return ResourceManager.GetString("IDS_WIFI_HEADER_ENTER_PASSWORD", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Passpoint. + /// + public static string IDS_WIFI_HEADER_PASSPOINT { + get { + return ResourceManager.GetString("IDS_WIFI_HEADER_PASSPOINT", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Password. + /// + public static string IDS_WIFI_HEADER_PASSWORD { + get { + return ResourceManager.GetString("IDS_WIFI_HEADER_PASSWORD", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Select WPS method. + /// + public static string IDS_WIFI_HEADER_SELECT_WPS_METHOD_ABB { + get { + return ResourceManager.GetString("IDS_WIFI_HEADER_SELECT_WPS_METHOD_ABB", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Wi-Fi network info. + /// + public static string IDS_WIFI_HEADER_WI_FI_NETWORK_INFO_ABB { + get { + return ResourceManager.GetString("IDS_WIFI_HEADER_WI_FI_NETWORK_INFO_ABB", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Signal strength. + /// + public static string IDS_WIFI_MBODY_SIGNAL_STRENGTH_KOR_SKT { + get { + return ResourceManager.GetString("IDS_WIFI_MBODY_SIGNAL_STRENGTH_KOR_SKT", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No certificate found.. + /// + public static string IDS_WIFI_NO_CERTIFICATE_FOUND { + get { + return ResourceManager.GetString("IDS_WIFI_NO_CERTIFICATE_FOUND", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Forget network. + /// + public static string IDS_WIFI_OPT_FORGET_NETWORK { + get { + return ResourceManager.GetString("IDS_WIFI_OPT_FORGET_NETWORK", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Off. + /// + public static string IDS_WIFI_OPT_MOBILEACCESSSERVICEATCIVATION_OFF { + get { + return ResourceManager.GetString("IDS_WIFI_OPT_MOBILEACCESSSERVICEATCIVATION_OFF", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to On. + /// + public static string IDS_WIFI_OPT_MOBILEACCESSSERVICEATCIVATION_ON { + get { + return ResourceManager.GetString("IDS_WIFI_OPT_MOBILEACCESSSERVICEATCIVATION_ON", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Show password. + /// + public static string IDS_WIFI_OPT_SHOW_PASSWORD { + get { + return ResourceManager.GetString("IDS_WIFI_OPT_SHOW_PASSWORD", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WPS. + /// + public static string IDS_WIFI_OPT_WPS { + get { + return ResourceManager.GetString("IDS_WIFI_OPT_WPS", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Current network will be disconnected.. + /// + public static string IDS_WIFI_POP_CURRENT_NETWORK_WILL_BE_DISCONNECTED { + get { + return ResourceManager.GetString("IDS_WIFI_POP_CURRENT_NETWORK_WILL_BE_DISCONNECTED", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No Wi-Fi AP found.. + /// + public static string IDS_WIFI_POP_NO_WI_FI_AP_FOUND { + get { + return ResourceManager.GetString("IDS_WIFI_POP_NO_WI_FI_AP_FOUND", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Open. + /// + public static string IDS_WIFI_POP_OPEN { + get { + return ResourceManager.GetString("IDS_WIFI_POP_OPEN", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Press WPS on your Wi-Fi access point within %d minutes.. + /// + public static string IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES { + get { + return ResourceManager.GetString("IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to %s is selected.\n\nIf you are unable to connect to an AP, change the SIM card used for verification by going to SIM card manager. Then select the SIM card you want to use for Mobile data. Alternatively, you can unmount the SIM card you do not want to use.. + /// + public static string IDS_WIFI_POP_SELECT_SIM_CARD_OR_AKA_OPTION_ON_EAP_METHOD_GUIDE_MSG { + get { + return ResourceManager.GetString("IDS_WIFI_POP_SELECT_SIM_CARD_OR_AKA_OPTION_ON_EAP_METHOD_GUIDE_MSG", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Authentication error occurred. + /// + public static string IDS_WIFI_SBODY_AUTHENTICATION_ERROR_OCCURRED_M_STATUS { + get { + return ResourceManager.GetString("IDS_WIFI_SBODY_AUTHENTICATION_ERROR_OCCURRED_M_STATUS", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Automatically switch between Wi-Fi and mobile networks to maintain a stable Internet connection.. + /// + public static string IDS_WIFI_SBODY_AUTOMATICALLY_SWITCH_BETWEEN_WI_FI_AND_MOBILE_NETWORKS_TO_MAINTAIN_A_STABLE_INTERNET_CONNECTION { + get { + return ResourceManager.GetString("IDS_WIFI_SBODY_AUTOMATICALLY_SWITCH_BETWEEN_WI_FI_AND_MOBILE_NETWORKS_TO_MAINTAIN" + + "_A_STABLE_INTERNET_CONNECTION", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Connected. + /// + public static string IDS_WIFI_SBODY_CONNECTED_M_STATUS { + get { + return ResourceManager.GetString("IDS_WIFI_SBODY_CONNECTED_M_STATUS", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cancel. + /// + public static string IDS_WIFI_SK_CANCEL { + get { + return ResourceManager.GetString("IDS_WIFI_SK_CANCEL", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Forget. + /// + public static string IDS_WIFI_SK_FORGET { + get { + return ResourceManager.GetString("IDS_WIFI_SK_FORGET", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Ok. + /// + public static string IDS_WIFI_SK_OK { + get { + return ResourceManager.GetString("IDS_WIFI_SK_OK", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WPS PIN. + /// + public static string IDS_WIFI_SK_WPS_PIN { + get { + return ResourceManager.GetString("IDS_WIFI_SK_WPS_PIN", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to OK. + /// + public static string IDS_WIFI_SK2_OK { + get { + return ResourceManager.GetString("IDS_WIFI_SK2_OK", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Never. + /// + public static string IDS_WIFI_TMBODY_NEVER_M_ALWAYS_OFF { + get { + return ResourceManager.GetString("IDS_WIFI_TMBODY_NEVER_M_ALWAYS_OFF", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Connected to Wi-Fi network %s.. + /// + public static string IDS_WIFI_TPOP_CONNECTED_TO_WI_FI_NETWORK_PS { + get { + return ResourceManager.GetString("IDS_WIFI_TPOP_CONNECTED_TO_WI_FI_NETWORK_PS", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Failed to obtain IP address.. + /// + public static string IDS_WIFI_TPOP_FAILED_TO_OBTAIN_IP_ADDRESS { + get { + return ResourceManager.GetString("IDS_WIFI_TPOP_FAILED_TO_OBTAIN_IP_ADDRESS", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Maximum number of characters %d reached.. + /// + public static string IDS_WIFI_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_PD_REACHED { + get { + return ResourceManager.GetString("IDS_WIFI_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_PD_REACHED", resourceCulture); + } + } + } +} diff --git a/SettingWiFi/SettingWiFi/res/allowed/SettingWiFi/locale/Resources.en.resx b/SettingWiFi/SettingWiFi/TextResources/Resources.en-US.resx similarity index 93% rename from SettingWiFi/SettingWiFi/res/allowed/SettingWiFi/locale/Resources.en.resx rename to SettingWiFi/SettingWiFi/TextResources/Resources.en-US.resx index ee483bb..83fecb0 100644 --- a/SettingWiFi/SettingWiFi/res/allowed/SettingWiFi/locale/Resources.en.resx +++ b/SettingWiFi/SettingWiFi/TextResources/Resources.en-US.resx @@ -117,337 +117,373 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Connect to device + + Button Invalid certificate. - - Phase 2 authentication + + Connect to device + + + Always Find + + Phase 2 authentication + Alphabetical - - Increases data usage. + + Invalid PIN. - - Wrong password. + + Tap the network you want to connect to. - - Turning on Wi-Fi will disable Wi-Fi tethering. + + You have been automatically connected to the remembered network. To see the network details, tap the %s icon. - - Double tap + + You have been connected to the network. To see the network details, tap the %s icon. - - Available networks + + Invalid action. Try again. - - WPS available + + No Wi-Fi networks found. Change your location or try later. - - Secured + + Tap to scan for Wi-Fi networks. - - Obtaining IP address... + + To connect to a secured network, You may need to enter a password or other credentials. - - Network SSID + + Do not show again. - - Network notification + + Next - - Keep Wi-Fi on during sleep + + Previous - - Good + + Add network - - Excellent + + Add Wi-Fi network + + + Advanced Enter the %1$s PIN on your Wi-Fi router. The setup can take up to %2$d minutes to complete. - - Advanced + + Excellent - - Maximum number of characters %d reached. + + Good - - Failed to obtain IP address. + + Install certificate - - Connected to Wi-Fi network %s. + + IPv4 - - Never + + IPv6 - - WPS PIN + + Keep Wi-Fi on during sleep - - Forget + + Network notification - - OK + + Network prefix length - - Connected + + Network SSID - - Automatically switch between Wi-Fi and mobile networks to maintain a stable Internet connection. + + None - - Authentication error occurred + + Obtaining IP address... - - Press WPS on your Wi-Fi access point within %d minutes. + + Secured - - Open + + Turning on... - - No Wi-Fi AP found. + + WPS available - - Current network will be disconnected. + + EAP method - - WPS + + Phase 2 authentication - - Show password + + Security - - Forget network + + User certificate - - Signal strength + + Available networks - - Wi-Fi network info + + Double tap - - Select WPS method + + Always allow scanning - - Enter password. + + Skip - - WPS button + + Turning on Wi-Fi will disable Wi-Fi tethering. - - Scan + + Wrong password. - - Find hidden network + + Increases data usage. - - Wi-Fi Direct + + Proxy address - - While charging only + + Proxy port - - Weak + + After you install, they will be shown here. - - User certificate + + Advanced settings - - Unspecified + + Alphabetical - - Subnet mask + + A Wi-Fi network has been detected. You will be connected. - - Static IP + + Saved - - Receive notifications when networks are available. + + Connect - - MAC address + + Connecting... - - IP address + + DNS 1 - - Identity + + DNS 2 - - Gateway address + + Done - - Enter identity. + + EAP EAP method - - EAP + + Enter identity. - - DNS 2 + + Enter network name - - DNS 1 + + Gateway - - Connecting... + + Gateway address - - Saved + + Identity - - A Wi-Fi network has been detected. You will be connected. + + IP address - - Advanced settings + + IP settings - - None + + MAC address - - Button + + Maximum number of characters reached. - - Always + + Name - - Previous + + Network name - - Next + + Proxy - - Do not show again. + + Receive notifications when networks are available. - - Turning on... + + Scanning... - - Invalid PIN. + + Show advanced options - - Invalid action. Try again. + + Signal Strength - - Cancel + + Sort by - - On + + Static IP - - Off + + Subnet mask - - Password + + Turn on Wi-Fi to view a list of available networks. - - Wi-Fi + + Type password Unknown - - Sort by + + Unspecified - - Scanning... + + User certificate - - Name + + Weak - - Connect + + While charging only - - Install certificate + + Wi-Fi + + + Wi-Fi Direct + + + Add + + + Find hidden network + + + Scan + + + WPS button + + + Certificate Search Results + + + Enter password. Passpoint - - Skip + + Password - - Always allow scanning + + Select WPS method - - %s is selected.\n\nIf you are unable to connect to an AP, change the SIM card used for verification by going to SIM card manager. Then select the SIM card you want to use for Mobile data. Alternatively, you can unmount the SIM card you do not want to use. + + Wi-Fi network info - - Tap the network you want to connect to. + + Signal strength - - You have been automatically connected to the remembered network. To see the network details, tap the %s icon. + + No certificate found. - - You have been connected to the network. To see the network details, tap the %s icon. + + Forget network - - No Wi-Fi networks found. Change your location or try later. + + Off - - Tap to scan for Wi-Fi networks. + + On - - To connect to a secured network, You may need to enter a password or other credentials. + + Show password - - Proxy address + + WPS - - Proxy port + + Current network will be disconnected. - - Turn on Wi-Fi to view a list of available networks. + + No Wi-Fi AP found. - - Add Wi-Fi network + + Open - - IPv4 + + Press WPS on your Wi-Fi access point within %d minutes. - - IPv6 + + %s is selected.\n\nIf you are unable to connect to an AP, change the SIM card used for verification by going to SIM card manager. Then select the SIM card you want to use for Mobile data. Alternatively, you can unmount the SIM card you do not want to use. - - Network prefix length + + Authentication error occurred - - Security + + Automatically switch between Wi-Fi and mobile networks to maintain a stable Internet connection. - - Certificate Search Results + + Connected - - No certificate found. + + OK - - After you install, they will be shown here. + + Cancel - - Add network + + Forget - - Enter network name + + Ok - - Show advanced options + + WPS PIN - - Network name + + Never - - IP settings + + Connected to Wi-Fi network %s. + + + Failed to obtain IP address. + + + Maximum number of characters %d reached. diff --git a/SettingWiFi/SettingWiFi/res/allowed/SettingWiFi/locale/Resources.ko-KR.resx b/SettingWiFi/SettingWiFi/TextResources/Resources.ko-KR.resx similarity index 93% rename from SettingWiFi/SettingWiFi/res/allowed/SettingWiFi/locale/Resources.ko-KR.resx rename to SettingWiFi/SettingWiFi/TextResources/Resources.ko-KR.resx index bed37f3..769fdbd 100644 --- a/SettingWiFi/SettingWiFi/res/allowed/SettingWiFi/locale/Resources.ko-KR.resx +++ b/SettingWiFi/SettingWiFi/TextResources/Resources.ko-KR.resx @@ -117,337 +117,373 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 디바이스 연결 + + 버튼 유효하지 않은 인증서입니다. - - 2단계 인증 + + 디바이스 연결 + + + 항상 찾기 + + 2단계 인증 + 가나다 순 - - 데이터 사용량이 증가합니다. + + PIN이 바르지 않습니다. - - 비밀번호가 바르지 않습니다. + + 연결할 네트워크를 누르세요. - - Wi-Fi를 실행하면 Wi-Fi 테더링을 연결 해제합니다. + + 저장된 네트워크에 자동 연결했습니다. 네트워크 상세정보를 보려면 %s 아이콘을 누르세요. - - 두 번 두드리기 + + 네트워크에 연결했습니다. 네트워크 상세정보를 보려면 %s 아이콘을 누르세요. - - 사용 가능한 네트워크 + + 동작이 바르지 않습니다. 다시 시도하세요. - - WPS 사용 가능 + + Wi-Fi 네트워크를 찾을 수 없습니다. 위치를 변경하거나 나중에 시도하세요. - - 보안 + + Wi-Fi 네트워크를 찾으려면 누르세요. - - IP 주소 받는 중... + + 보안 네트워크에 연결하려면 비밀번호 또는 기타 자격증명을 입력하세요. - - 네트워크 이름 + + 다시 보지 않기 - - 네트워크 알림 + + 다음 - - 화면이 꺼졌을 때 Wi-Fi 연결 유지 + + 이전 - - 좋음 + + 네트워크 추가 - - 매우 좋음 + + Wi-Fi 네트워크 추가 + + + 고급 Wi-Fi 공유기에 PIN(%1$s)을 입력하세요. 설정을 완료하기까지 최대 %2$d분이 소요됩니다. - - 고급 + + 매우 좋음 - - 최대 글자 수 %d자에 도달했습니다. + + 좋음 - - IP 주소를 받지 못했습니다. + + 인증서 설치 - - %s Wi-Fi 네트워크에 연결했습니다. + + IPv4 - - 사용 안 함 + + IPv6 - - WPS PIN + + 화면이 꺼졌을 때 Wi-Fi 연결 유지 - - 지우기 + + 네트워크 알림 - - 확인 + + 네트워크 식별자 길이 - - 연결됨 + + 네트워크 이름 - - 인터넷 연결을 안정적으로 유지하기 위해 Wi-Fi와 모바일 네트워크를 자동으로 전환합니다. + + 설정 안 함 - - 인증 오류 발생 + + IP 주소 받는 중... - - Wi-Fi 액세스 포인트에서 %d분 안에 WPS 버튼을 누르세요. + + 보안 - - 공개 + + 실행하는 중... - - 액세스 포인트를 찾을 수 없습니다. + + WPS 사용 가능 - - 현재 사용 중인 네트워크 연결을 해제합니다. + + EAP법 - - WPS + + 2단계 인증 - - 비밀번호 표시 + + 보호 - - 네트워크 지우기 + + 사용자 인증서 - - 신호 세기 + + 사용 가능한 네트워크 - - Wi-Fi 네트워크 정보 + + 두 번 두드리기 - - WPS 방식 선택 + + 항상 검색 허용 - - 비밀번호를 입력하세요. + + 건너뛰기 - - WPS 버튼 + + Wi-Fi를 실행하면 Wi-Fi 테더링을 연결 해제합니다. - - 찾기 + + 비밀번호가 바르지 않습니다. - - 숨겨진 네트워크 찾기 + + 데이터 사용량이 증가합니다. - - Wi-Fi 다이렉트 + + 프록시 주소 - - 충전 중일 때만 + + 프록시 포트 - - 약함 + + 설치가 완료되면 여기에 표시됩니다. - - 사용자 인증서 + + 고급 설정 - - 설정 안 함 + + 알파벳 - - 서브넷 마스크 + + Wi-Fi 네트워크를 찾았습니다. 네트워크에 연결합니다. - - 고정 IP + + 저장됨 - - 네트워크를 사용할 수 있을 때 알림을 받습니다. + + 연결 - - MAC 주소 + + 연결 중... - - IP 주소 + + 디엔에스1 - - ID + + 디엔에스2 - - 게이트웨이 주소 + + 완료 - - ID를 입력하세요. + + 이에이피 EAP 방식 - - EAP + + ID를 입력하세요. - - DNS2 + + 네트워크 이름 입력 - - DNS1 + + 출입구 - - 연결 중... + + 게이트웨이 주소 - - 저장됨 + + 아이디 - - Wi-Fi 네트워크를 찾았습니다. 네트워크에 연결합니다. + + IP 주소 - - 고급 설정 + + IP 설정 - - 설정 안 함 + + MAC 주소 - - 버튼 + + 최대 문자 수에 도달했습니다. - - 항상 + + 이름 - - 이전 + + 네트워크 이름 - - 다음 + + 프록시 - - 다시 보지 않기 + + 네트워크를 사용할 수 있을 때 알림을 받습니다. - - 실행하는 중... + + 찾는 중... - - PIN이 바르지 않습니다. + + 고급 옵션 표시 - - 동작이 바르지 않습니다. 다시 시도하세요. + + 신호강도 - - 취소 + + 정렬 방식 - - 사용 + + 고정 IP - - 해제 + + 서브넷 마스크 - - 비밀번호 + + 사용 가능한 네트워크 목록을 보려면 Wi-Fi를 실행하세요. - - Wi-Fi + + 암호 입력 알 수 없음 - - 정렬 방식 + + 설정 안 함 - - 찾는 중... + + 사용자 인증서 - - 이름 + + 약함 - - 연결 + + 충전 중일 때만 - - 인증서 설치 + + 와이파이 + + + Wi-Fi 다이렉트 + + + 가산 + + + 숨겨진 네트워크 찾기 + + + 찾기 + + + WPS 버튼 + + + 인증서 검색 결과 + + + 비밀번호를 입력하세요. 패스포인트 - - 건너뛰기 + + 비밀번호 - - 항상 검색 허용 + + WPS 방식 선택 - - %s 항목을 선택했습니다. AP에 연결할 수 없는 경우, [SIM 카드 관리자]에서 인증에 사용하는 SIM 카드를 변경하세요. 다음으로 모바일 데이터에 사용할 SIM 카드를 선택하거나 사용하지 않을 SIM 카드를 마운트 해제하세요. + + Wi-Fi 네트워크 정보 - - 연결할 네트워크를 누르세요. + + 신호 세기 - - 저장된 네트워크에 자동 연결했습니다. 네트워크 상세정보를 보려면 %s 아이콘을 누르세요. + + 인증서를 찾을 수 없습니다. - - 네트워크에 연결했습니다. 네트워크 상세정보를 보려면 %s 아이콘을 누르세요. + + 네트워크 지우기 - - Wi-Fi 네트워크를 찾을 수 없습니다. 위치를 변경하거나 나중에 시도하세요. + + 해제 - - Wi-Fi 네트워크를 찾으려면 누르세요. + + 사용 - - 보안 네트워크에 연결하려면 비밀번호 또는 기타 자격증명을 입력하세요. + + 비밀번호 표시 - - 프록시 주소 + + 더블유피에스 - - 프록시 포트 + + 현재 사용 중인 네트워크 연결을 해제합니다. - - 사용 가능한 네트워크 목록을 보려면 Wi-Fi를 실행하세요. + + 액세스 포인트를 찾을 수 없습니다. - - Wi-Fi 네트워크 추가 + + 공개 - - IPv4 + + Wi-Fi 액세스 포인트에서 %d분 안에 WPS 버튼을 누르세요. - - IPv6 + + %s 항목을 선택했습니다. AP에 연결할 수 없는 경우, [SIM 카드 관리자]에서 인증에 사용하는 SIM 카드를 변경하세요. 다음으로 모바일 데이터에 사용할 SIM 카드를 선택하거나 사용하지 않을 SIM 카드를 마운트 해제하세요. - - 네트워크 식별자 길이 + + 인증 오류 발생 - - 보호 + + 인터넷 연결을 안정적으로 유지하기 위해 Wi-Fi와 모바일 네트워크를 자동으로 전환합니다. - - 인증서 검색 결과 + + 연결됨 - - 인증서를 찾을 수 없습니다. + + 확인 - - 설치가 완료되면 여기에 표시됩니다. + + 취소 - - 네트워크 추가 + + 지우기 - - 네트워크 이름 입력 + + Ok - - 고급 옵션 표시 + + WPS 핀 - - 네트워크 이름 + + 사용 안 함 - - IP 설정 + + %s Wi-Fi 네트워크에 연결했습니다. + + + IP 주소를 받지 못했습니다. + + + 최대 글자 수 %d자에 도달했습니다. diff --git a/SettingWiFi/SettingWiFi/res/allowed/SettingWiFi/locale/Resources.resx b/SettingWiFi/SettingWiFi/TextResources/Resources.resx similarity index 71% rename from SettingWiFi/SettingWiFi/res/allowed/SettingWiFi/locale/Resources.resx rename to SettingWiFi/SettingWiFi/TextResources/Resources.resx index e3351c8..83fecb0 100644 --- a/SettingWiFi/SettingWiFi/res/allowed/SettingWiFi/locale/Resources.resx +++ b/SettingWiFi/SettingWiFi/TextResources/Resources.resx @@ -117,334 +117,373 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - + + Button - + Invalid certificate. - - + + Connect to device + + + Always - + Find + + + Phase 2 authentication - + Alphabetical - - + + Invalid PIN. - - + + Tap the network you want to connect to. - - + + You have been automatically connected to the remembered network. To see the network details, tap the %s icon. - - + + You have been connected to the network. To see the network details, tap the %s icon. - - + + Invalid action. Try again. - - + + No Wi-Fi networks found. Change your location or try later. - - + + Tap to scan for Wi-Fi networks. - - + + To connect to a secured network, You may need to enter a password or other credentials. - - + + Do not show again. - - + + Next - - + + Previous - - + + Add network - - + + Add Wi-Fi network + + + Advanced - + Enter the %1$s PIN on your Wi-Fi router. The setup can take up to %2$d minutes to complete. - - + + Excellent - - + + Good - - + + Install certificate - - + + IPv4 - - + + IPv6 - - + + Keep Wi-Fi on during sleep - - + + Network notification - - + + Network prefix length - - + + Network SSID - - + + None - - + + Obtaining IP address... - - + + Secured - - + + Turning on... - - + + WPS available - - + + EAP method - - + + Phase 2 authentication - - + + Security - - + + User certificate - - + + Available networks - - + + Double tap - - + + Always allow scanning - - + + Skip - - + + Turning on Wi-Fi will disable Wi-Fi tethering. - - + + Wrong password. - - + + Increases data usage. - - + + Proxy address - - + + Proxy port - - + + After you install, they will be shown here. - - + + Advanced settings - - + + Alphabetical - - + + A Wi-Fi network has been detected. You will be connected. - - + + Saved - - + + Connect - - + + Connecting... - - + + DNS 1 - - + + DNS 2 - - + + Done - - + + EAP - + EAP method - - + + Enter identity. - - + + Enter network name - - + + Gateway - - + + Gateway address - - + + Identity - - + + IP address - - + + IP settings - - + + MAC address - - + + Maximum number of characters reached. - - + + Name - - + + Network name - - + + Proxy - - + + Receive notifications when networks are available. - - + + Scanning... - - + + Show advanced options - - + + Signal Strength - - + + Sort by - - + + Static IP - - + + Subnet mask - - + + Turn on Wi-Fi to view a list of available networks. - - + + Type password - + Unknown - - + + Unspecified - - + + User certificate - - + + Weak - - + + While charging only - - + + Wi-Fi + + + Wi-Fi Direct + + + Add + + + Find hidden network + + + Scan + + + WPS button + + + Certificate Search Results + + + Enter password. - + Passpoint - - + + Password - - + + Select WPS method - - + + Wi-Fi network info - - + + Signal strength - - + + No certificate found. - - + + Forget network - - + + Off - - + + On - - + + Show password - - + + WPS - - + + Current network will be disconnected. - - + + No Wi-Fi AP found. - - + + Open - - + + Press WPS on your Wi-Fi access point within %d minutes. - - + + %s is selected.\n\nIf you are unable to connect to an AP, change the SIM card used for verification by going to SIM card manager. Then select the SIM card you want to use for Mobile data. Alternatively, you can unmount the SIM card you do not want to use. - - + + Authentication error occurred - - + + Automatically switch between Wi-Fi and mobile networks to maintain a stable Internet connection. - - + + Connected - - + + OK - - + + Cancel - + + Forget - + + Ok - + + WPS PIN - - + + Never - - + + Connected to Wi-Fi network %s. + + + Failed to obtain IP address. + + + Maximum number of characters %d reached. diff --git a/SettingWiFi/SettingWiFi/model/AP.cs b/SettingWiFi/SettingWiFi/model/AP.cs index a00374c..4030027 100755 --- a/SettingWiFi/SettingWiFi/model/AP.cs +++ b/SettingWiFi/SettingWiFi/model/AP.cs @@ -11,6 +11,7 @@ using Tizen.Network.Connection; //using SettingWiFi.res.locale; using static SettingWiFi.Logger; using Tizen.NUI; +using SettingWiFi.TextResources; namespace SettingWiFi @@ -185,29 +186,33 @@ namespace SettingWiFi { switch (state) { - case WiFiState.Disconnected: - if (secType == WiFiSecurityType.None) - { - return Resources.IDS_WIFI_POP_OPEN; - - } - else if (secType == WiFiSecurityType.Eap) - { - return Resources.IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY + " (Eap)"; - } - else if (isWps) - { - return Resources.IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY + " (WPS available)"; - } - else - { - return Resources.IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY; - } - case WiFiState.Association: - case WiFiState.Configuration: - return Resources.IDS_WIFI_BODY_CONNECTING_ING; - case WiFiState.Connected: - return Resources.IDS_WIFI_SBODY_CONNECTED_M_STATUS; + case WiFiState.Disconnected: + if (secType == WiFiSecurityType.None) + { + return ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_POP_OPEN)); + + } + else if (secType == WiFiSecurityType.Eap) + { + string temp = ""; + temp = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_EAP)); + return ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY)) + " (" + (ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_EAP))) + " )"; + } + else if (isWps) + { + string temp = ""; + temp = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_WPS_AVAILABLE)); + return ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY)) + " (" + (ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_WPS_AVAILABLE))) + " )"; + } + else + { + return ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY)); + } + case WiFiState.Association: + case WiFiState.Configuration: + return ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_CONNECTING_ING)); + case WiFiState.Connected: + return ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SBODY_CONNECTED_M_STATUS)); } return ""; } diff --git a/SettingWiFi/SettingWiFi/res/allowed/SettingWiFi/locale/Resources.Designer.cs b/SettingWiFi/SettingWiFi/res/allowed/SettingWiFi/locale/Resources.Designer.cs deleted file mode 100644 index 8acaa06..0000000 --- a/SettingWiFi/SettingWiFi/res/allowed/SettingWiFi/locale/Resources.Designer.cs +++ /dev/null @@ -1,853 +0,0 @@ -//------------------------------------------------------------------------------ -// -// 이 코드는 도구를 사용하여 생성되었습니다. -// 런타임 버전:4.0.30319.42000 -// -// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 -// 이러한 변경 내용이 손실됩니다. -// -//------------------------------------------------------------------------------ - -namespace SettingWiFi.res.locale -{ - using System; - - - /// - /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. - /// - // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder - // 클래스에서 자동으로 생성되었습니다. - // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을 - // 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - public static global::System.Resources.ResourceManager ResourceManager - { - get - { - if (object.ReferenceEquals(resourceMan, null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SettingWiFi.res.locale.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을 - /// 재정의합니다. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - public static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - - /// - /// 과(와) 유사한 지역화된 문자열을 찾습니다. - /// - public static string IDS_BT_BODY_CONNECT_TO_DEVICE - { - get - { - return ResourceManager.GetString("IDS_BT_BODY_CONNECT_TO_DEVICE", resourceCulture); - } - } - public static string IDS_BR_POP_INVALID_CERTIFICATE - { - get - { - return ResourceManager.GetString("IDS_BR_POP_INVALID_CERTIFICATE", resourceCulture); - } - } - public static string IDS_COM_BODY_PHASE_2_AUTHENTICATION - { - get - { - return ResourceManager.GetString("IDS_COM_BODY_PHASE_2_AUTHENTICATION", resourceCulture); - } - } - public static string IDS_COM_BODY_FIND - { - get - { - return ResourceManager.GetString("IDS_COM_BODY_FIND", resourceCulture); - } - } - public static string IDS_EMAIL_POP_ALPHABETICAL - { - get - { - return ResourceManager.GetString("IDS_EMAIL_POP_ALPHABETICAL", resourceCulture); - } - } - public static string IDS_ST_SBODY_INCREASES_DATA_USAGE_ABB - { - get - { - return ResourceManager.GetString("IDS_ST_SBODY_INCREASES_DATA_USAGE_ABB", resourceCulture); - } - } - public static string IDS_ST_POP_WRONG_PASSWORD - { - get - { - return ResourceManager.GetString("IDS_ST_POP_WRONG_PASSWORD", resourceCulture); - } - } - public static string IDS_ST_POP_TURNING_ON_WI_FI_WILL_DISABLE_WI_FI_TETHERING - { - get - { - return ResourceManager.GetString("IDS_ST_POP_TURNING_ON_WI_FI_WILL_DISABLE_WI_FI_TETHERING", resourceCulture); - } - } - public static string IDS_ST_HEADER_DOUBLE_TAP - { - get - { - return ResourceManager.GetString("IDS_ST_HEADER_DOUBLE_TAP", resourceCulture); - } - } - public static string IDS_ST_HEADER_AVAILABLE_NETWORKS - { - get - { - return ResourceManager.GetString("IDS_ST_HEADER_AVAILABLE_NETWORKS", resourceCulture); - } - } - public static string IDS_ST_BODY_WPS_AVAILABLE - { - get - { - return ResourceManager.GetString("IDS_ST_BODY_WPS_AVAILABLE", resourceCulture); - } - } - public static string IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY - { - get - { - return ResourceManager.GetString("IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY", resourceCulture); - } - } - public static string IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING - { - get - { - return ResourceManager.GetString("IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING", resourceCulture); - } - } - public static string IDS_ST_BODY_NETWORK_SSID - { - get - { - return ResourceManager.GetString("IDS_ST_BODY_NETWORK_SSID", resourceCulture); - } - } - public static string IDS_ST_BODY_NETWORK_NOTIFICATION - { - get - { - return ResourceManager.GetString("IDS_ST_BODY_NETWORK_NOTIFICATION", resourceCulture); - } - } - public static string IDS_ST_BODY_KEEP_WI_FI_ON_DURING_SLEEP - { - get - { - return ResourceManager.GetString("IDS_ST_BODY_KEEP_WI_FI_ON_DURING_SLEEP", resourceCulture); - } - } - public static string IDS_ST_BODY_GOOD_M_BATTERY - { - get - { - return ResourceManager.GetString("IDS_ST_BODY_GOOD_M_BATTERY", resourceCulture); - } - } - public static string IDS_ST_BODY_EXCELLENT - { - get - { - return ResourceManager.GetString("IDS_ST_BODY_EXCELLENT", resourceCulture); - } - } - public static string IDS_ST_BODY_ENTER_THE_P1SS_PIN_ON_YOUR_WI_FI_ROUTER_THE_SETUP_CAN_TAKE_UP_TO_P2SD_MINUTES_TO_COMPLETE - { - get - { - return ResourceManager.GetString("IDS_ST_BODY_ENTER_THE_P1SS_PIN_ON_YOUR_WI_FI_ROUTER_THE_SETUP_CAN_TAKE_UP_TO_P2SD_MINUTES_TO_COMPLETE", resourceCulture); - } - } - public static string IDS_ST_BODY_ADVANCED - { - get - { - return ResourceManager.GetString("IDS_ST_BODY_ADVANCED", resourceCulture); - } - } - public static string IDS_WIFI_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_PD_REACHED - { - get - { - return ResourceManager.GetString("IDS_WIFI_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_PD_REACHED", resourceCulture); - } - } - public static string IDS_WIFI_TPOP_FAILED_TO_OBTAIN_IP_ADDRESS - { - get - { - return ResourceManager.GetString("IDS_WIFI_TPOP_FAILED_TO_OBTAIN_IP_ADDRESS", resourceCulture); - } - } - public static string IDS_WIFI_TPOP_CONNECTED_TO_WI_FI_NETWORK_PS - { - get - { - return ResourceManager.GetString("IDS_WIFI_TPOP_CONNECTED_TO_WI_FI_NETWORK_PS", resourceCulture); - } - } - public static string IDS_WIFI_TMBODY_NEVER_M_ALWAYS_OFF - { - get - { - return ResourceManager.GetString("IDS_WIFI_TMBODY_NEVER_M_ALWAYS_OFF", resourceCulture); - } - } - public static string IDS_WIFI_SK_WPS_PIN - { - get - { - return ResourceManager.GetString("IDS_WIFI_SK_WPS_PIN", resourceCulture); - } - } - public static string IDS_WIFI_SK_FORGET - { - get - { - return ResourceManager.GetString("IDS_WIFI_SK_FORGET", resourceCulture); - } - } - public static string IDS_WIFI_SK2_OK - { - get - { - return ResourceManager.GetString("IDS_WIFI_SK2_OK", resourceCulture); - } - } - public static string IDS_WIFI_SBODY_CONNECTED_M_STATUS - { - get - { - return ResourceManager.GetString("IDS_WIFI_SBODY_CONNECTED_M_STATUS", resourceCulture); - } - } - public static string IDS_WIFI_SBODY_AUTOMATICALLY_SWITCH_BETWEEN_WI_FI_AND_MOBILE_NETWORKS_TO_MAINTAIN_A_STABLE_INTERNET_CONNECTION - { - get - { - return ResourceManager.GetString("IDS_WIFI_SBODY_AUTOMATICALLY_SWITCH_BETWEEN_WI_FI_AND_MOBILE_NETWORKS_TO_MAINTAIN_A_STABLE_INTERNET_CONNECTION", resourceCulture); - } - } - public static string IDS_WIFI_SBODY_AUTHENTICATION_ERROR_OCCURRED_M_STATUS - { - get - { - return ResourceManager.GetString("IDS_WIFI_SBODY_AUTHENTICATION_ERROR_OCCURRED_M_STATUS", resourceCulture); - } - } - public static string IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES - { - get - { - return ResourceManager.GetString("IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES", resourceCulture); - } - } - public static string IDS_WIFI_POP_OPEN - { - get - { - return ResourceManager.GetString("IDS_WIFI_POP_OPEN", resourceCulture); - } - } - public static string IDS_WIFI_POP_NO_WI_FI_AP_FOUND - { - get - { - return ResourceManager.GetString("IDS_WIFI_POP_NO_WI_FI_AP_FOUND", resourceCulture); - } - } - public static string IDS_WIFI_POP_CURRENT_NETWORK_WILL_BE_DISCONNECTED - { - get - { - return ResourceManager.GetString("IDS_WIFI_POP_CURRENT_NETWORK_WILL_BE_DISCONNECTED", resourceCulture); - } - } - public static string IDS_WIFI_OPT_WPS - { - get - { - return ResourceManager.GetString("IDS_WIFI_OPT_WPS", resourceCulture); - } - } - public static string IDS_WIFI_OPT_SHOW_PASSWORD - { - get - { - return ResourceManager.GetString("IDS_WIFI_OPT_SHOW_PASSWORD", resourceCulture); - } - } - public static string IDS_WIFI_OPT_FORGET_NETWORK - { - get - { - return ResourceManager.GetString("IDS_WIFI_OPT_FORGET_NETWORK", resourceCulture); - } - } - public static string IDS_WIFI_MBODY_SIGNAL_STRENGTH_KOR_SKT - { - get - { - return ResourceManager.GetString("IDS_WIFI_MBODY_SIGNAL_STRENGTH_KOR_SKT", resourceCulture); - } - } - public static string IDS_WIFI_HEADER_WI_FI_NETWORK_INFO_ABB - { - get - { - return ResourceManager.GetString("IDS_WIFI_HEADER_WI_FI_NETWORK_INFO_ABB", resourceCulture); - } - } - public static string IDS_WIFI_HEADER_SELECT_WPS_METHOD_ABB - { - get - { - return ResourceManager.GetString("IDS_WIFI_HEADER_SELECT_WPS_METHOD_ABB", resourceCulture); - } - } - public static string IDS_WIFI_HEADER_ENTER_PASSWORD - { - get - { - return ResourceManager.GetString("IDS_WIFI_HEADER_ENTER_PASSWORD", resourceCulture); - } - } - public static string IDS_WIFI_BUTTON_WPS_BUTTON - { - get - { - return ResourceManager.GetString("IDS_WIFI_BUTTON_WPS_BUTTON", resourceCulture); - } - } - public static string IDS_WIFI_BUTTON_SCAN - { - get - { - return ResourceManager.GetString("IDS_WIFI_BUTTON_SCAN", resourceCulture); - } - } - public static string IDS_WIFI_BUTTON_FIND_HIDDEN_NETWORK - { - get - { - return ResourceManager.GetString("IDS_WIFI_BUTTON_FIND_HIDDEN_NETWORK", resourceCulture); - } - } - public static string IDS_WIFI_BODY_WI_FI_DIRECT_ABB - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_WI_FI_DIRECT_ABB", resourceCulture); - } - } - public static string IDS_WIFI_BODY_WHILE_CHARGING_ONLY_ABB - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_WHILE_CHARGING_ONLY_ABB", resourceCulture); - } - } - public static string IDS_WIFI_BODY_WEAK_M_STRENGTH - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_WEAK_M_STRENGTH", resourceCulture); - } - } - public static string IDS_WIFI_BODY_USER_CERTIFICATE_ABB - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_USER_CERTIFICATE_ABB", resourceCulture); - } - } - public static string IDS_WIFI_BODY_UNSPECIFIED - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_UNSPECIFIED", resourceCulture); - } - } - public static string IDS_WIFI_BODY_SUBNET_MASK - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_SUBNET_MASK", resourceCulture); - } - } - public static string IDS_WIFI_BODY_STATIC_IP - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_STATIC_IP", resourceCulture); - } - } - public static string IDS_WIFI_BODY_RECEIVE_NOTIFICATIONS_WHEN_NETWORKS_ARE_AVAILABLE - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_RECEIVE_NOTIFICATIONS_WHEN_NETWORKS_ARE_AVAILABLE", resourceCulture); - } - } - public static string IDS_WIFI_BODY_MAC_ADDRESS - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_MAC_ADDRESS", resourceCulture); - } - } - public static string IDS_WIFI_BODY_IP_ADDRESS - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_IP_ADDRESS", resourceCulture); - } - } - public static string IDS_WIFI_BODY_IDENTITY - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_IDENTITY", resourceCulture); - } - } - public static string IDS_WIFI_BODY_GATEWAY_ADDRESS - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_GATEWAY_ADDRESS", resourceCulture); - } - } - public static string IDS_WIFI_BODY_ENTER_IDENTITY - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_ENTER_IDENTITY", resourceCulture); - } - } - public static string IDS_WIFI_BODY_EAP_METHOD - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_EAP_METHOD", resourceCulture); - } - } - public static string IDS_WIFI_BODY_EAP - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_EAP", resourceCulture); - } - } - public static string IDS_WIFI_BODY_DNS_2 - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_DNS_2", resourceCulture); - } - } - public static string IDS_WIFI_BODY_DNS_1 - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_DNS_1", resourceCulture); - } - } - public static string IDS_WIFI_BODY_CONNECTING_ING - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_CONNECTING_ING", resourceCulture); - } - } - public static string IDS_WIFI_BODY_CONFIGURATION_SAVED_M_STATUS - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_CONFIGURATION_SAVED_M_STATUS", resourceCulture); - } - } - public static string IDS_WIFI_BODY_A_WI_FI_NETWORK_HAS_BEEN_DETECTED_YOU_WILL_BE_CONNECTED - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_A_WI_FI_NETWORK_HAS_BEEN_DETECTED_YOU_WILL_BE_CONNECTED", resourceCulture); - } - } - public static string IDS_WIFI_BODY_ADVANCED_SETTINGS - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_ADVANCED_SETTINGS", resourceCulture); - } - } - public static string IDS_ST_BODY_NONE - { - get - { - return ResourceManager.GetString("IDS_ST_BODY_NONE", resourceCulture); - } - } - public static string IDS_BR_BODY_BUTTON_T_TTS - { - get - { - return ResourceManager.GetString("IDS_BR_BODY_BUTTON_T_TTS", resourceCulture); - } - } - public static string IDS_CLD_OPT_ALWAYS_ABB - { - get - { - return ResourceManager.GetString("IDS_CLD_OPT_ALWAYS_ABB", resourceCulture); - } - } - public static string IDS_STU_BUTTON_PREVIOUS - { - get - { - return ResourceManager.GetString("IDS_STU_BUTTON_PREVIOUS", resourceCulture); - } - } - public static string IDS_STU_BUTTON_NEXT - { - get - { - return ResourceManager.GetString("IDS_STU_BUTTON_NEXT", resourceCulture); - } - } - public static string IDS_MOBILEAP_POP_DO_NOT_SHOW_AGAIN - { - get - { - return ResourceManager.GetString("IDS_MOBILEAP_POP_DO_NOT_SHOW_AGAIN", resourceCulture); - } - } - public static string IDS_ST_BODY_TURNING_ON_ING - { - get - { - return ResourceManager.GetString("IDS_ST_BODY_TURNING_ON_ING", resourceCulture); - } - } - public static string IDS_GC_POP_INVALID_PIN - { - get - { - return ResourceManager.GetString("IDS_GC_POP_INVALID_PIN", resourceCulture); - } - } - public static string IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN - { - get - { - return ResourceManager.GetString("IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN", resourceCulture); - } - } - public static string IDS_WIFI_SK_CANCEL - { - get - { - return ResourceManager.GetString("IDS_WIFI_SK_CANCEL", resourceCulture); - } - } - public static string IDS_WIFI_OPT_MOBILEACCESSSERVICEATCIVATION_ON - { - get - { - return ResourceManager.GetString("IDS_WIFI_OPT_MOBILEACCESSSERVICEATCIVATION_ON", resourceCulture); - } - } - public static string IDS_WIFI_OPT_MOBILEACCESSSERVICEATCIVATION_OFF - { - get - { - return ResourceManager.GetString("IDS_WIFI_OPT_MOBILEACCESSSERVICEATCIVATION_OFF", resourceCulture); - } - } - public static string IDS_WIFI_HEADER_PASSWORD - { - get - { - return ResourceManager.GetString("IDS_WIFI_HEADER_PASSWORD", resourceCulture); - } - } - public static string IDS_WIFI_BODY_WI_FI - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_WI_FI", resourceCulture); - } - } - public static string IDS_WIFI_BODY_UNKNOWN - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_UNKNOWN", resourceCulture); - } - } - public static string IDS_WIFI_BODY_SORT_BY - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_SORT_BY", resourceCulture); - } - } - public static string IDS_WIFI_BODY_SCANNING_ING - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_SCANNING_ING", resourceCulture); - } - } - public static string IDS_WIFI_BODY_NAME - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_NAME", resourceCulture); - } - } - public static string IDS_WIFI_BODY_CONNECT - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_CONNECT", resourceCulture); - } - } - public static string IDS_ST_BODY_INSTALL_CERTIFICATE - { - get - { - return ResourceManager.GetString("IDS_ST_BODY_INSTALL_CERTIFICATE", resourceCulture); - } - } - public static string IDS_WIFI_HEADER_PASSPOINT - { - get - { - return ResourceManager.GetString("IDS_WIFI_HEADER_PASSPOINT", resourceCulture); - } - } - public static string IDS_ST_OPT_SKIP - { - get - { - return ResourceManager.GetString("IDS_ST_OPT_SKIP", resourceCulture); - } - } - public static string IDS_ST_MBODY_ALWAYS_ALLOW_SCANNING - { - get - { - return ResourceManager.GetString("IDS_ST_MBODY_ALWAYS_ALLOW_SCANNING", resourceCulture); - } - } - public static string IDS_WIFI_POP_SELECT_SIM_CARD_OR_AKA_OPTION_ON_EAP_METHOD_GUIDE_MSG - { - get - { - return ResourceManager.GetString("IDS_WIFI_POP_SELECT_SIM_CARD_OR_AKA_OPTION_ON_EAP_METHOD_GUIDE_MSG", resourceCulture); - } - } - public static string IDS_HELP_BODY_TAP_THE_NETWORK_YOU_WANT_TO_CONNECT_TO - { - get - { - return ResourceManager.GetString("IDS_HELP_BODY_TAP_THE_NETWORK_YOU_WANT_TO_CONNECT_TO", resourceCulture); - } - } - public static string IDS_HELP_BODY_YOU_HAVE_BEEN_AUTOMATICALLY_CONNECTED_TO_THE_REMEMBERED_NETWORK_TO_SEE_THE_NETWORK_DETAILS_TAP_THE_PS_ICON - { - get - { - return ResourceManager.GetString("IDS_HELP_BODY_YOU_HAVE_BEEN_AUTOMATICALLY_CONNECTED_TO_THE_REMEMBERED_NETWORK_TO_SEE_THE_NETWORK_DETAILS_TAP_THE_PS_ICON", resourceCulture); - } - } - public static string IDS_HELP_BODY_YOU_HAVE_BEEN_CONNECTED_TO_THE_NETWORK_TO_SEE_THE_NETWORK_DETAILS_TAP_THE_PS_ICON - { - get - { - return ResourceManager.GetString("IDS_HELP_BODY_YOU_HAVE_BEEN_CONNECTED_TO_THE_NETWORK_TO_SEE_THE_NETWORK_DETAILS_TAP_THE_PS_ICON", resourceCulture); - } - } - public static string IDS_HELP_POP_NO_WI_FI_NETWORKS_FOUND_CHANGE_YOUR_LOCATION_OR_TRY_LATER - { - get - { - return ResourceManager.GetString("IDS_HELP_POP_NO_WI_FI_NETWORKS_FOUND_CHANGE_YOUR_LOCATION_OR_TRY_LATER", resourceCulture); - } - } - public static string IDS_HELP_POP_TAP_TO_SCAN_FOR_WI_FI_NETWORKS - { - get - { - return ResourceManager.GetString("IDS_HELP_POP_TAP_TO_SCAN_FOR_WI_FI_NETWORKS", resourceCulture); - } - } - public static string IDS_HELP_POP_TO_CONNECT_TO_A_SECURED_NETWORK_YOU_MAY_NEED_TO_ENTER_A_PASSWORD_OR_OTHER_CREDENTIALS - { - get - { - return ResourceManager.GetString("IDS_HELP_POP_TO_CONNECT_TO_A_SECURED_NETWORK_YOU_MAY_NEED_TO_ENTER_A_PASSWORD_OR_OTHER_CREDENTIALS", resourceCulture); - } - } - public static string IDS_ST_SBODY_PROXY_ADDRESS - { - get - { - return ResourceManager.GetString("IDS_ST_SBODY_PROXY_ADDRESS", resourceCulture); - } - } - public static string IDS_ST_SBODY_PROXY_PORT - { - get - { - return ResourceManager.GetString("IDS_ST_SBODY_PROXY_PORT", resourceCulture); - } - } - public static string IDS_WIFI_BODY_TURN_ON_WI_FI_TO_VIEW_A_LIST_OF_AVAILABLE_NETWORKS - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_TURN_ON_WI_FI_TO_VIEW_A_LIST_OF_AVAILABLE_NETWORKS", resourceCulture); - } - } - public static string IDS_ST_BODY_ADD_WI_FI_NETWORK - { - get - { - return ResourceManager.GetString("IDS_ST_BODY_ADD_WI_FI_NETWORK", resourceCulture); - } - } - public static string IDS_ST_BODY_IPV4 - { - get - { - return ResourceManager.GetString("IDS_ST_BODY_IPV4", resourceCulture); - } - } - public static string IDS_ST_BODY_IPV6 - { - get - { - return ResourceManager.GetString("IDS_ST_BODY_IPV6", resourceCulture); - } - } - public static string IDS_ST_BODY_NETWORK_PREFIX_LENGTH - { - get - { - return ResourceManager.GetString("IDS_ST_BODY_NETWORK_PREFIX_LENGTH", resourceCulture); - } - } - public static string IDS_ST_BUTTON_SECURITY_ABB - { - get - { - return ResourceManager.GetString("IDS_ST_BUTTON_SECURITY_ABB", resourceCulture); - } - } - public static string IDS_WIFI_CERTIFICATE_SEARCH_RESULTS - { - get - { - return ResourceManager.GetString("IDS_WIFI_CERTIFICATE_SEARCH_RESULTS", resourceCulture); - } - } - public static string IDS_WIFI_NO_CERTIFICATE_FOUND - { - get - { - return ResourceManager.GetString("IDS_WIFI_NO_CERTIFICATE_FOUND", resourceCulture); - } - } - public static string IDS_WIFI_AFTER_YOU_INSTALL_THEY_WILL_BE_SHOWN_HERE - { - get - { - return ResourceManager.GetString("IDS_WIFI_AFTER_YOU_INSTALL_THEY_WILL_BE_SHOWN_HERE", resourceCulture); - } - } - public static string IDS_ST_BODY_ADD_NETWORK - { - get - { - return ResourceManager.GetString("IDS_ST_BODY_ADD_NETWORK", resourceCulture); - } - } - public static string IDS_WIFI_BODY_ENTER_NETWORK_NAME - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_ENTER_NETWORK_NAME", resourceCulture); - } - } - public static string IDS_WIFI_BODY_SHOW_ADVANCED_OPTIONS - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_SHOW_ADVANCED_OPTIONS", resourceCulture); - } - } - public static string IDS_WIFI_BODY_NETWORK_NAME - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_NETWORK_NAME", resourceCulture); - } - } - public static string IDS_WIFI_BODY_IP_SETTINGS - { - get - { - return ResourceManager.GetString("IDS_WIFI_BODY_IP_SETTINGS", resourceCulture); - } - } - } -} diff --git a/SettingWiFi/SettingWiFi/tizen-manifest.xml b/SettingWiFi/SettingWiFi/tizen-manifest.xml index 6c905f5..028836c 100755 --- a/SettingWiFi/SettingWiFi/tizen-manifest.xml +++ b/SettingWiFi/SettingWiFi/tizen-manifest.xml @@ -10,7 +10,10 @@ + + + diff --git a/SettingWiFi/SettingWiFi/view/APSource.cs b/SettingWiFi/SettingWiFi/view/APSource.cs index ab82abb..31ef847 100755 --- a/SettingWiFi/SettingWiFi/view/APSource.cs +++ b/SettingWiFi/SettingWiFi/view/APSource.cs @@ -12,6 +12,7 @@ using static SettingWiFi.Logger; using System.Linq; using System.Collections; using Interop; +using SettingWiFi.TextResources; namespace SettingWiFi { @@ -125,21 +126,21 @@ namespace SettingWiFi { string text = ""; - if (ap.SecType.Equals(Resources.IDS_ST_BODY_NONE)) + if (ap.SecType.Equals(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_NONE)))) { - text = Resources.IDS_WIFI_POP_OPEN; + text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_POP_OPEN)); } - else if (ap.SecType.Equals(Resources.IDS_WIFI_BODY_EAP)) + else if (ap.SecType.Equals(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_EAP)))) { - text = Resources.IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY + " (Eap)"; + text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY)) + " (" + (ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_EAP))) + " )"; } else if (ap.IsWps) { - text = Resources.IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY + " (WPS available)"; + text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY)) + " (" + (ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_WPS_AVAILABLE))) + " )"; } else { - text = Resources.IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY; + text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY)); } ap.StateInfo = text; diff --git a/SettingWiFi/SettingWiFi/view/AddNetwork.cs b/SettingWiFi/SettingWiFi/view/AddNetwork.cs index 6eeb2d3..ba98463 100644 --- a/SettingWiFi/SettingWiFi/view/AddNetwork.cs +++ b/SettingWiFi/SettingWiFi/view/AddNetwork.cs @@ -5,7 +5,8 @@ using Tizen.NUI.BaseComponents; using Tizen.NUI.Binding; using Tizen.NUI.Components; using static SettingWiFi.Logger; -using SettingWiFi.res.locale; +//using SettingWiFi.res.locale; +using SettingWiFi.TextResources; namespace SettingWiFi { @@ -36,7 +37,7 @@ namespace SettingWiFi internal AddNetwork(WiFi wifi) { mWifi = wifi; - mNetworkItem = new AddNetworkItem(Resources.IDS_ST_BODY_NONE, "DHCP", Resources.IDS_ST_BODY_NONE); + mNetworkItem = new AddNetworkItem(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_NONE)), "DHCP", ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_NONE))); } internal void CreateComponents(APSource apSource) @@ -87,7 +88,7 @@ namespace SettingWiFi mShowAdvancedButton = new CheckBox() { - Text = Resources.IDS_WIFI_BODY_SHOW_ADVANCED_OPTIONS, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_SHOW_ADVANCED_OPTIONS)), TextAlignment = HorizontalAlignment.End, CellHorizontalAlignment = HorizontalAlignmentType.Left, }; @@ -118,7 +119,7 @@ namespace SettingWiFi { var appBar= new AppBar() { - Title = Resources.IDS_ST_BODY_ADD_NETWORK, + Title = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_ADD_NETWORK)), }; AppBarStyle appBarStyle = (AppBarStyle)ThemeManager.GetStyle("Tizen.NUI.Components.AppBar"); Button backButton = new Button(((AppBarStyle)appBarStyle).BackButton); @@ -131,7 +132,7 @@ namespace SettingWiFi { var button = new Button() { - Text = Resources.IDS_WIFI_BODY_CONNECT, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_CONNECT)), }; button.Clicked += OnConnectClicked; @@ -193,23 +194,23 @@ namespace SettingWiFi else { Debug("Item Clicked: " + info.InfoTitle); - if (info.InfoTitle == Resources.IDS_WIFI_BODY_NETWORK_NAME) + if (info.InfoTitle == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_NETWORK_NAME))) { OnNewtworkNameClicked(sender, e); } - else if (info.InfoTitle == Resources.IDS_ST_BUTTON_SECURITY_ABB) + else if (info.InfoTitle == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BUTTON_SECURITY_ABB))) { OnSecurityOptionsClicked(sender, e); } - else if (info.InfoTitle == Resources.IDS_WIFI_HEADER_PASSWORD) + else if (info.InfoTitle == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_HEADER_PASSWORD))) { OnPasswordClicked(sender, e); } - else if (info.InfoTitle == Resources.IDS_WIFI_BODY_IP_SETTINGS) + else if (info.InfoTitle == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_IP_SETTINGS))) { OnIPSettingsClicked(sender, e); } - else if (info.InfoTitle == Resources.IDS_WIFI_BODY_PROXY) + else if (info.InfoTitle == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_PROXY))) { OnProxyClicked(sender, e); } @@ -223,7 +224,7 @@ namespace SettingWiFi { Debug("OnNewtworkNameClicked"); var page = new AddNetworkInfoInputPage(mNetworkItem, mNetworkDetailsInfoSource); - page.CreateComponents(Resources.IDS_WIFI_BODY_NETWORK_NAME, Resources.IDS_WIFI_BODY_ENTER_NETWORK_NAME); + page.CreateComponents(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_NETWORK_NAME)), ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_ENTER_NETWORK_NAME))); NUIApplication.GetDefaultWindow().GetDefaultNavigator().Push(page); } public void OnSecurityOptionsClicked(object source, ClickedEventArgs e) @@ -239,7 +240,7 @@ namespace SettingWiFi }; var page = new AddNetworkInfoInputPage(mNetworkItem, mNetworkDetailsInfoSource); - page.CreateRadioComponents(Resources.IDS_ST_BUTTON_SECURITY_ABB, options); + page.CreateRadioComponents(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BUTTON_SECURITY_ABB)), options); NUIApplication.GetDefaultWindow().GetDefaultNavigator().Push(page); } @@ -254,7 +255,7 @@ namespace SettingWiFi }; var page = new AddNetworkInfoInputPage(mNetworkItem, mAddNetworkInfoSource); - page.CreateRadioComponents(Resources.IDS_WIFI_BODY_IP_SETTINGS, options); + page.CreateRadioComponents(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_IP_SETTINGS)), options); NUIApplication.GetDefaultWindow().GetDefaultNavigator().Push(page); } @@ -263,7 +264,7 @@ namespace SettingWiFi Debug("OnPasswordClicked"); var page = new AddNetworkInfoInputPage(mNetworkItem, mNetworkDetailsInfoSource); - page.CreateComponents(Resources.IDS_WIFI_HEADER_PASSWORD, ""); + page.CreateComponents(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_HEADER_PASSWORD)), ""); NUIApplication.GetDefaultWindow().GetDefaultNavigator().Push(page); } public void OnProxyClicked(object source, ClickedEventArgs e) @@ -277,7 +278,7 @@ namespace SettingWiFi }; var page = new AddNetworkInfoInputPage(mNetworkItem, mAddNetworkInfoSource); - page.CreateRadioComponents(Resources.IDS_WIFI_BODY_PROXY, options); + page.CreateRadioComponents(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_PROXY)), options); NUIApplication.GetDefaultWindow().GetDefaultNavigator().Push(page); } @@ -346,7 +347,7 @@ namespace SettingWiFi await mWifi.Connect(ap, password); if (mWifi.GetConnectedAP().Equals(ap.Essid)) { - ap.StateInfo = Resources.IDS_WIFI_SBODY_CONNECTED_M_STATUS; + ap.StateInfo = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SBODY_CONNECTED_M_STATUS)); Debug("IP Config: " + ap.StaticIPConfig + " : " + mNetworkItem.IPSettings); if (mNetworkItem.IPSettings == "Static") { diff --git a/SettingWiFi/SettingWiFi/view/AddNetworkInfoInputPage.cs b/SettingWiFi/SettingWiFi/view/AddNetworkInfoInputPage.cs index fd04375..057a57e 100644 --- a/SettingWiFi/SettingWiFi/view/AddNetworkInfoInputPage.cs +++ b/SettingWiFi/SettingWiFi/view/AddNetworkInfoInputPage.cs @@ -1,4 +1,5 @@ -using SettingWiFi.res.locale; +//using SettingWiFi.res.locale; +using SettingWiFi.TextResources; using Tizen.NUI; using Tizen.NUI.BaseComponents; using Tizen.NUI.Components; @@ -43,7 +44,7 @@ namespace SettingWiFi HeightSpecification = LayoutParamPolicies.WrapContent, }; - if(mTitle == Resources.IDS_WIFI_HEADER_PASSWORD) + if(mTitle == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_HEADER_PASSWORD))) { mValueField = CreatePasswordField(); } @@ -60,12 +61,12 @@ namespace SettingWiFi var cancelButton = new Button() { - Text = Resources.IDS_WIFI_SK_CANCEL, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SK_CANCEL)), }; cancelButton.Clicked += OnCancelClicked; var okButton = new Button() { - Text = Resources.IDS_WIFI_SK2_OK, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SK2_OK)), }; okButton.Clicked += OnOkClicked; @@ -84,7 +85,7 @@ namespace SettingWiFi { WidthSpecification = 600, BackgroundColor = Color.Silver, - PlaceholderText = Resources.IDS_WIFI_HEADER_PASSWORD, + PlaceholderText = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_HEADER_PASSWORD)), }; var hiddenInput = new Tizen.NUI.Text.HiddenInput(); @@ -117,7 +118,7 @@ namespace SettingWiFi var okButton = new Button() { - Text = Resources.IDS_WIFI_SK2_OK, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SK2_OK)), }; okButton.Clicked += OnRadioOkClicked; @@ -136,7 +137,7 @@ namespace SettingWiFi { Debug(""); mSelectedIndex = 0; - if (mTitle == Resources.IDS_ST_BUTTON_SECURITY_ABB) + if (mTitle == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BUTTON_SECURITY_ABB))) { switch (mAddItem.SecurityType) { @@ -154,7 +155,7 @@ namespace SettingWiFi break; } } - else if (mTitle == Resources.IDS_WIFI_BODY_IP_SETTINGS) + else if (mTitle == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_IP_SETTINGS))) { switch (mAddItem.IPSettings) { @@ -166,7 +167,7 @@ namespace SettingWiFi break; } } - else if (mTitle == Resources.IDS_WIFI_BODY_PROXY) + else if (mTitle == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_PROXY))) { switch (mAddItem.ProxyType) { @@ -250,11 +251,11 @@ namespace SettingWiFi private void CreateIpSettingsInfoPage() { - if (mTitle == Resources.IDS_WIFI_BODY_IP_SETTINGS && mSelectedIndex == 0) + if (mTitle == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_IP_SETTINGS)) && mSelectedIndex == 0) { Debug(""); IPSettingsInfoPage page = new IPSettingsInfoPage(mAddItem); - page.CreateComponents(Resources.IDS_WIFI_BODY_IP_SETTINGS); + page.CreateComponents(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_IP_SETTINGS))); NUIApplication.GetDefaultWindow().GetDefaultNavigator().Push(page); } } @@ -284,31 +285,31 @@ namespace SettingWiFi { Debug("UpdateInfo"); - if (fieldName == Resources.IDS_WIFI_BODY_NETWORK_NAME) + if (fieldName == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_NETWORK_NAME))) { Debug("Name: Updating value to " + value + " from " + mAddItem.NetworkName); mAddItem.NetworkName = value; mInfoSource.ShowNetworkInfo(); } - else if (fieldName == Resources.IDS_ST_BUTTON_SECURITY_ABB) + else if (fieldName == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BUTTON_SECURITY_ABB))) { Debug("Security: Updating value to " + value + " from " + mAddItem.SecurityType); mAddItem.SecurityType = value; mInfoSource.ShowNetworkInfo(); } - else if (fieldName == Resources.IDS_WIFI_BODY_IP_SETTINGS) + else if (fieldName == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_IP_SETTINGS))) { Debug("IP: Updating value to " + value + " from " + mAddItem.IPSettings); mAddItem.IPSettings = value; mInfoSource.ShowAdvancedInfo(); } - else if (fieldName == Resources.IDS_WIFI_BODY_PROXY) + else if (fieldName == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_PROXY))) { Debug("Proxy: Updating value to " + value + " from " + mAddItem.ProxyType); mAddItem.ProxyType = value; mInfoSource.ShowAdvancedInfo(); } - else if (fieldName == Resources.IDS_WIFI_HEADER_PASSWORD) + else if (fieldName == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_HEADER_PASSWORD))) { Debug("Password: Updating value to " + value + " from " + mAddItem.Password); mAddItem.Password = value; @@ -330,11 +331,11 @@ namespace SettingWiFi infoFields = new TextField[5]; infoFieldTitles = new string[] { - Resources.IDS_WIFI_BODY_IP_ADDRESS, - Resources.IDS_WIFI_BODY_GATEWAY, - Resources.IDS_ST_BODY_NETWORK_PREFIX_LENGTH, - Resources.IDS_WIFI_BODY_DNS_1, - Resources.IDS_WIFI_BODY_DNS_2 + ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_IP_ADDRESS)), + ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_GATEWAY)), + ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_NETWORK_PREFIX_LENGTH)), + ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_DNS_1)), + ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_DNS_2)) }; } @@ -361,7 +362,7 @@ namespace SettingWiFi var okButton = new Button() { - Text = Resources.IDS_WIFI_BODY_DONE, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_DONE)), }; okButton.Clicked += OnOkClicked; @@ -378,7 +379,7 @@ namespace SettingWiFi string placeholder = ""; for(int i = 0; i < infoFields.Length; i++) { - if(infoFieldTitles[i] == Resources.IDS_ST_BODY_NETWORK_PREFIX_LENGTH) + if(infoFieldTitles[i] == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_NETWORK_PREFIX_LENGTH))) { placeholder = "0"; } diff --git a/SettingWiFi/SettingWiFi/view/AddNetworkInfoSource.cs b/SettingWiFi/SettingWiFi/view/AddNetworkInfoSource.cs index 76e3c9b..116aeac 100644 --- a/SettingWiFi/SettingWiFi/view/AddNetworkInfoSource.cs +++ b/SettingWiFi/SettingWiFi/view/AddNetworkInfoSource.cs @@ -1,3 +1,4 @@ +using SettingWiFi.TextResources; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -20,19 +21,19 @@ namespace SettingWiFi internal void ShowNetworkInfo() { Debug("ShowNetworkInfo"); - Add(new AddNetworkInfoText(Resources.IDS_WIFI_BODY_NETWORK_NAME, mNetworkItem.NetworkName, null)); - Add(new AddNetworkInfoText(Resources.IDS_ST_BUTTON_SECURITY_ABB, mNetworkItem.SecurityType, null)); - if(mNetworkItem.SecurityType != Resources.IDS_ST_BODY_NONE) + Add(new AddNetworkInfoText(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_NETWORK_NAME)), mNetworkItem.NetworkName, null)); + Add(new AddNetworkInfoText(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BUTTON_SECURITY_ABB)), mNetworkItem.SecurityType, null)); + if(mNetworkItem.SecurityType != ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_NONE))) { - Add(new AddNetworkInfoText(Resources.IDS_WIFI_HEADER_PASSWORD, "*****", null)); + Add(new AddNetworkInfoText(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_HEADER_PASSWORD)), "*****", null)); } } internal void ShowAdvancedInfo() { Debug("ShowAdvancedInfo"); - Add(new AddNetworkInfoText(Resources.IDS_WIFI_BODY_IP_SETTINGS, mNetworkItem.IPSettings, null)); - Add(new AddNetworkInfoText(Resources.IDS_WIFI_BODY_PROXY, mNetworkItem.ProxyType, null)); + Add(new AddNetworkInfoText(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_IP_SETTINGS)), mNetworkItem.IPSettings, null)); + Add(new AddNetworkInfoText(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_PROXY)), mNetworkItem.ProxyType, null)); } } diff --git a/SettingWiFi/SettingWiFi/view/AdvancedPage.cs b/SettingWiFi/SettingWiFi/view/AdvancedPage.cs index 2e10fcb..b6d508a 100755 --- a/SettingWiFi/SettingWiFi/view/AdvancedPage.cs +++ b/SettingWiFi/SettingWiFi/view/AdvancedPage.cs @@ -6,6 +6,7 @@ using Tizen.NUI.Binding; //using SettingWiFi.res.locale; using static SettingWiFi.Logger; using SettingCore.Views; +using SettingWiFi.TextResources; namespace SettingWiFi { @@ -41,11 +42,11 @@ namespace SettingWiFi var networkNotification = new DefaultLinearItem() { WidthSpecification = LayoutParamPolicies.MatchParent, - Text = Resources.IDS_ST_BODY_NETWORK_NOTIFICATION, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_NETWORK_NOTIFICATION)), IsSelectable = false, }; networkNotification.Label.HorizontalAlignment = HorizontalAlignment.Begin; - networkNotification.SubText = Resources.IDS_WIFI_BODY_RECEIVE_NOTIFICATIONS_WHEN_NETWORKS_ARE_AVAILABLE; + networkNotification.SubText = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_RECEIVE_NOTIFICATIONS_WHEN_NETWORKS_ARE_AVAILABLE)); var onOffSwitch = new Switch() { @@ -59,7 +60,7 @@ namespace SettingWiFi { WidthSpecification = LayoutParamPolicies.MatchParent, - Text = Resources.IDS_WIFI_BODY_SORT_BY, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_SORT_BY)), IsSelectable = false, }; @@ -73,13 +74,13 @@ namespace SettingWiFi var installCertificate = new DefaultLinearItem() { WidthSpecification = LayoutParamPolicies.MatchParent, - Text = Resources.IDS_ST_BODY_INSTALL_CERTIFICATE, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_INSTALL_CERTIFICATE)), IsSelectable = false, }; installCertificate.Clicked += OnInstallCerticateClicked; advacedView.Add(installCertificate); - AppBar = CreateAppBar(Resources.IDS_WIFI_BODY_ADVANCED_SETTINGS); + AppBar = CreateAppBar(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_ADVANCED_SETTINGS))); Content = advacedView; } private void OnSortByClicked(object sender, ClickedEventArgs ev) @@ -145,13 +146,13 @@ namespace SettingWiFi }; // TO DO: First search certificate. if not found then show this text. - TextLabel viewInfo1 = new TextLabel(Resources.IDS_WIFI_NO_CERTIFICATE_FOUND); - TextLabel viewInfo2 = new TextLabel(Resources.IDS_WIFI_AFTER_YOU_INSTALL_THEY_WILL_BE_SHOWN_HERE); + TextLabel viewInfo1 = new TextLabel(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_NO_CERTIFICATE_FOUND))); + TextLabel viewInfo2 = new TextLabel(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_AFTER_YOU_INSTALL_THEY_WILL_BE_SHOWN_HERE))); certificateView.Add(viewInfo1); certificateView.Add(viewInfo2); - AppBar = CreateAppBar(Resources.IDS_WIFI_CERTIFICATE_SEARCH_RESULTS); + AppBar = CreateAppBar(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_CERTIFICATE_SEARCH_RESULTS))); Content = certificateView; } diff --git a/SettingWiFi/SettingWiFi/view/ApInfoSource.cs b/SettingWiFi/SettingWiFi/view/ApInfoSource.cs index 8fe7e5e..e43f8ff 100755 --- a/SettingWiFi/SettingWiFi/view/ApInfoSource.cs +++ b/SettingWiFi/SettingWiFi/view/ApInfoSource.cs @@ -1,3 +1,4 @@ +using SettingWiFi.TextResources; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -34,32 +35,32 @@ namespace SettingWiFi private void ShowDynamicInfo(bool isConfigChanged) { - Add(new ApInfoText(Resources.IDS_ST_BODY_IPV4, mAp.IPv4, null)); + Add(new ApInfoText(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_IPV4)), mAp.IPv4, null)); if (mAp.IPv6?.Length > 0) { - Add(new ApInfoText(Resources.IDS_ST_BODY_IPV6, mAp.IPv6, null)); + Add(new ApInfoText(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_IPV6)), mAp.IPv6, null)); } - Add(new ApInfoText(Resources.IDS_WIFI_BODY_MAC_ADDRESS, mAp.Bssid, null)); + Add(new ApInfoText(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_MAC_ADDRESS)), mAp.Bssid, null)); if (mAp.ProxyAddress?.Length > 0) { - Add(new ApInfoText(Resources.IDS_ST_SBODY_PROXY_ADDRESS, mAp.ProxyAddress, UpdateProxyAddress)); + Add(new ApInfoText(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_SBODY_PROXY_ADDRESS)), mAp.ProxyAddress, UpdateProxyAddress)); } if (mAp.ProxyPort >= 0) { - Add(new ApInfoText(Resources.IDS_ST_SBODY_PROXY_PORT, "" + mAp.ProxyPort, UpdateProxyPort)); + Add(new ApInfoText(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_SBODY_PROXY_PORT)), "" + mAp.ProxyPort, UpdateProxyPort)); } } private void ShowStaticInfo(bool isConfigChanged) { - Add(new ApInfoText(Resources.IDS_WIFI_BODY_IP_ADDRESS, mAp.IPv4, UpdateIPAddress)); - Add(new ApInfoText(Resources.IDS_WIFI_BODY_SUBNET_MASK, mAp.SubnetMask, UpdateSubnetMask)); - Add(new ApInfoText(Resources.IDS_WIFI_BODY_GATEWAY_ADDRESS, mAp.GatewayAddress, UpdateGatewayAddress)); - Add(new ApInfoText(Resources.IDS_WIFI_BODY_DNS_1, mAp.Dns1, UpdateDns1)); - Add(new ApInfoText(Resources.IDS_WIFI_BODY_DNS_2, mAp.Dns2, UpdateDns2)); - Add(new ApInfoText(Resources.IDS_WIFI_BODY_MAC_ADDRESS, mAp.Bssid, null)); - Add(new ApInfoText(Resources.IDS_ST_SBODY_PROXY_ADDRESS, mAp.ProxyAddress, UpdateProxyAddress)); - Add(new ApInfoText(Resources.IDS_ST_SBODY_PROXY_PORT, "" + mAp.ProxyPort, UpdateProxyPort)); + Add(new ApInfoText(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_IP_ADDRESS)), mAp.IPv4, UpdateIPAddress)); + Add(new ApInfoText(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_SUBNET_MASK)), mAp.SubnetMask, UpdateSubnetMask)); + Add(new ApInfoText(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_GATEWAY_ADDRESS)), mAp.GatewayAddress, UpdateGatewayAddress)); + Add(new ApInfoText(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_DNS_1)), mAp.Dns1, UpdateDns1)); + Add(new ApInfoText(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_DNS_2)), mAp.Dns2, UpdateDns2)); + Add(new ApInfoText(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_MAC_ADDRESS)), mAp.Bssid, null)); + Add(new ApInfoText(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_SBODY_PROXY_ADDRESS)), mAp.ProxyAddress, UpdateProxyAddress)); + Add(new ApInfoText(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_SBODY_PROXY_PORT)), "" + mAp.ProxyPort, UpdateProxyPort)); } internal IList GetItemList() diff --git a/SettingWiFi/SettingWiFi/view/ConnectPage.cs b/SettingWiFi/SettingWiFi/view/ConnectPage.cs index 6c6545d..6a13deb 100755 --- a/SettingWiFi/SettingWiFi/view/ConnectPage.cs +++ b/SettingWiFi/SettingWiFi/view/ConnectPage.cs @@ -6,6 +6,7 @@ using Tizen.NUI.Components; using static SettingWiFi.Logger; using SettingCore; +using SettingWiFi.TextResources; namespace SettingWiFi { @@ -34,7 +35,7 @@ namespace SettingWiFi placeholder.Add("color", new PropertyValue(isLightTheme ? new Color("#CACACA") : new Color("#666666"))); placeholder.Add("fontFamily", new PropertyValue("BreezeSans")); placeholder.Add("pixelSize", new PropertyValue(24.SpToPx())); - placeholder.Add("text", new PropertyValue(Resources.IDS_WIFI_HEADER_PASSWORD)); + placeholder.Add("text", new PropertyValue(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_HEADER_PASSWORD)))); var passwordField = new TextField { @@ -97,7 +98,7 @@ namespace SettingWiFi SizeWidth = 618.SpToPx(), IsSelectable = true, Icon = new ImageView(iconStyle), - Text = Resources.IDS_WIFI_OPT_WPS, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_OPT_WPS)), Margin = new Extents(15, 0, 0, 0).SpToPx(), }; @@ -177,7 +178,7 @@ namespace SettingWiFi { WidthResizePolicy = ResizePolicyType.FitToChildren, HeightResizePolicy = ResizePolicyType.FitToChildren, - Text = Resources.IDS_WIFI_SK_OK, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SK_OK)), Size = new Size(252, 48).SpToPx(), Margin = new Extents(61, 0, 0, 0).SpToPx(), }; @@ -187,7 +188,7 @@ namespace SettingWiFi { WidthResizePolicy = ResizePolicyType.FitToChildren, HeightResizePolicy = ResizePolicyType.FitToChildren, - Text = Resources.IDS_WIFI_SK_CANCEL, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SK_CANCEL)), Size = new Size(252, 48).SpToPx(), }; cancelButton.Clicked += OnCancelClicked; @@ -236,7 +237,7 @@ namespace SettingWiFi private View AddSubTitle() { - var textSubTitle = new TextLabel(Resources.IDS_WIFI_BODY_TYPE_PASSWORD) + var textSubTitle = new TextLabel(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_TYPE_PASSWORD))) { FontFamily = "BreezeSans", PixelSize = 24.SpToPx(), @@ -347,7 +348,7 @@ namespace SettingWiFi if(mWifi.GetConnectedAP().Equals(mAp.Essid)) { - mAp.StateInfo = Resources.IDS_WIFI_SBODY_CONNECTED_M_STATUS; + mAp.StateInfo = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SBODY_CONNECTED_M_STATUS)); } } catch (WrongPasswordEntered e) diff --git a/SettingWiFi/SettingWiFi/view/EapInfoInputPage.cs b/SettingWiFi/SettingWiFi/view/EapInfoInputPage.cs index f3ac4d0..614030a 100644 --- a/SettingWiFi/SettingWiFi/view/EapInfoInputPage.cs +++ b/SettingWiFi/SettingWiFi/view/EapInfoInputPage.cs @@ -1,4 +1,5 @@ -using SettingWiFi.res.locale; +//using SettingWiFi.res.locale; +using SettingWiFi.TextResources; using Tizen.NUI; using Tizen.NUI.BaseComponents; using Tizen.NUI.Components; @@ -102,7 +103,7 @@ namespace SettingWiFi { Debug(""); mSelectedIndex = 0; - if (mTitle == Resources.IDS_ST_BUTTON_EAP_METHOD) + if (mTitle == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BUTTON_EAP_METHOD))) { switch (mAddItem.Eapmethod) { @@ -123,7 +124,7 @@ namespace SettingWiFi break; } } - else if (mTitle == Resources.IDS_ST_BUTTON_PHASE_AUTHENTICATION) + else if (mTitle == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BUTTON_PHASE_AUTHENTICATION))) { switch (mAddItem.Phaseauthentication) { @@ -138,7 +139,7 @@ namespace SettingWiFi break; } } - else if (mTitle == Resources.IDS_ST_BUTTON_USER_CERTIFICATE) + else if (mTitle == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BUTTON_USER_CERTIFICATE))) { switch (mAddItem.Usercertificate) { @@ -240,19 +241,19 @@ namespace SettingWiFi { Debug("UpdateInfo"); - if (fieldName == Resources.IDS_ST_BUTTON_EAP_METHOD) + if (fieldName == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BUTTON_EAP_METHOD))) { Debug("Eap method: Updating value to " + value + " from " + mAddItem.Eapmethod); mAddItem.Eapmethod = value; mInfoSource.ShowEapInfo(); } - else if (fieldName == Resources.IDS_ST_BUTTON_PHASE_AUTHENTICATION) + else if (fieldName == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BUTTON_PHASE_AUTHENTICATION))) { Debug("Phase 2 authentication: Updating value to " + value + " from " + mAddItem.Phaseauthentication); mAddItem.Phaseauthentication = value; mInfoSource.ShowEapInfo(); } - else if (fieldName == Resources.IDS_ST_BUTTON_USER_CERTIFICATE) + else if (fieldName == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BUTTON_USER_CERTIFICATE))) { Debug("User Certificate: Updating value to " + value + " from " + mAddItem.Usercertificate); mAddItem.Usercertificate = value; diff --git a/SettingWiFi/SettingWiFi/view/EapInfoSource.cs b/SettingWiFi/SettingWiFi/view/EapInfoSource.cs index 19ba4d6..daebd0f 100644 --- a/SettingWiFi/SettingWiFi/view/EapInfoSource.cs +++ b/SettingWiFi/SettingWiFi/view/EapInfoSource.cs @@ -1,3 +1,4 @@ +using SettingWiFi.TextResources; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -20,9 +21,9 @@ namespace SettingWiFi internal void ShowEapInfo() { Debug("ShowEapInfo"); - Add(new EapInfoText(Resources.IDS_ST_BUTTON_EAP_METHOD, mEapItem.Eapmethod, null)); - Add(new EapInfoText(Resources.IDS_ST_BUTTON_PHASE_AUTHENTICATION, mEapItem.Phaseauthentication, null)); - Add(new EapInfoText(Resources.IDS_ST_BUTTON_USER_CERTIFICATE, mEapItem.Usercertificate, null)); + Add(new EapInfoText(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BUTTON_EAP_METHOD)), mEapItem.Eapmethod, null)); + Add(new EapInfoText(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BUTTON_PHASE_AUTHENTICATION)), mEapItem.Phaseauthentication, null)); + Add(new EapInfoText(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BUTTON_USER_CERTIFICATE)), mEapItem.Usercertificate, null)); } } diff --git a/SettingWiFi/SettingWiFi/view/EapPage.cs b/SettingWiFi/SettingWiFi/view/EapPage.cs index ba7d621..2dc7b0f 100644 --- a/SettingWiFi/SettingWiFi/view/EapPage.cs +++ b/SettingWiFi/SettingWiFi/view/EapPage.cs @@ -1,3 +1,4 @@ +using SettingWiFi.TextResources; using System; using Tizen.NUI; using Tizen.NUI.BaseComponents; @@ -23,7 +24,7 @@ namespace SettingWiFi { Debug("EapPage"); mWifi = wifi; - mEapItem = new EapItem("PEAP", Resources.IDS_ST_BODY_NONE, Resources.IDS_ST_BODY_NONE); + mEapItem = new EapItem("PEAP", ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_NONE)), ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_NONE))); } internal void CreateComponents(AP ap) @@ -90,14 +91,14 @@ namespace SettingWiFi Padding = new Extents(16, 0, 0, 0), }; - TextLabel identity = new TextLabel(Resources.IDS_WIFI_BODY_IDENTITY); + TextLabel identity = new TextLabel(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_IDENTITY))); Margin = new Extents(0, 0, 10, 20); infoCollection.Add(identity); infoCollection.Add(CreateIdentityEntryItem()); infoCollection.Add(CreateUnderline()); - TextLabel label = new TextLabel(Resources.IDS_WIFI_HEADER_PASSWORD); + TextLabel label = new TextLabel(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_HEADER_PASSWORD))); Margin = new Extents(0, 0, 30, 20); infoCollection.Add(label); @@ -116,7 +117,7 @@ namespace SettingWiFi var cancelButton = new Button() { - Text = Resources.IDS_WIFI_SK_CANCEL, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SK_CANCEL)), WidthSpecification = 252, HeightSpecification = 48, BackgroundColor = Color.White, @@ -128,7 +129,7 @@ namespace SettingWiFi mConnectButton = new Button() { - Text = Resources.IDS_WIFI_SK_OK, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SK_OK)), WidthSpecification = 252, HeightSpecification = 48, Margin = new Extents(160, 0, 0, 0).SpToPx(), @@ -193,15 +194,15 @@ namespace SettingWiFi else { Debug("Item Clicked: " + info.InfoTitle); - if (info.InfoTitle == Resources.IDS_ST_BUTTON_EAP_METHOD) + if (info.InfoTitle == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BUTTON_EAP_METHOD))) { OnEapMethodClicked(sender, e); } - else if (info.InfoTitle == Resources.IDS_ST_BUTTON_PHASE_AUTHENTICATION) + else if (info.InfoTitle == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BUTTON_PHASE_AUTHENTICATION))) { OnPhase2AuthenticationClicked(sender, e); } - else if (info.InfoTitle == Resources.IDS_ST_BUTTON_USER_CERTIFICATE) + else if (info.InfoTitle == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BUTTON_USER_CERTIFICATE))) { OnUserCertificateClicked(sender, e); } @@ -226,7 +227,7 @@ namespace SettingWiFi }; var page = new EapInfoInputPage(mEapItem, mEapDetailsInfoSource); - page.CreateRadioComponents(Resources.IDS_ST_BUTTON_EAP_METHOD, options); + page.CreateRadioComponents(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BUTTON_EAP_METHOD)), options); NUIApplication.GetDefaultWindow().GetDefaultNavigator().Push(page); } @@ -242,7 +243,7 @@ namespace SettingWiFi }; var page = new EapInfoInputPage(mEapItem, mEapDetailsInfoSource); - page.CreateRadioComponents(Resources.IDS_ST_BUTTON_PHASE_AUTHENTICATION, options); + page.CreateRadioComponents(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BUTTON_PHASE_AUTHENTICATION)), options); NUIApplication.GetDefaultWindow().GetDefaultNavigator().Push(page); } @@ -259,7 +260,7 @@ namespace SettingWiFi }; var page = new EapInfoInputPage(mEapItem, mEapDetailsInfoSource); - page.CreateRadioComponents(Resources.IDS_ST_BUTTON_USER_CERTIFICATE, options); + page.CreateRadioComponents(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BUTTON_USER_CERTIFICATE)), options); NUIApplication.GetDefaultWindow().GetDefaultNavigator().Push(page); } @@ -336,7 +337,7 @@ namespace SettingWiFi WidthSpecification = 534, HeightSpecification = 35, BackgroundColor = Color.White, - PlaceholderText = Resources.IDS_WIFI_HEADER_PASSWORD, + PlaceholderText = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_HEADER_PASSWORD)), }; InputMethod inputSetting = new InputMethod @@ -360,7 +361,7 @@ namespace SettingWiFi WidthSpecification = 534, HeightSpecification = 35, BackgroundColor = Color.White, - PlaceholderText = Resources.IDS_WIFI_BODY_IDENTITY, + PlaceholderText = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_IDENTITY)), }; InputMethod inputSetting = new InputMethod diff --git a/SettingWiFi/SettingWiFi/view/EyeButton.cs b/SettingWiFi/SettingWiFi/view/EyeButton.cs index 8df1408..da8f751 100644 --- a/SettingWiFi/SettingWiFi/view/EyeButton.cs +++ b/SettingWiFi/SettingWiFi/view/EyeButton.cs @@ -2,6 +2,7 @@ using Tizen.NUI; using Tizen.NUI.BaseComponents; using SettingCore.Views; +using SettingWiFi.TextResources; namespace SettingWiFi diff --git a/SettingWiFi/SettingWiFi/view/HiddenConnectPage.cs b/SettingWiFi/SettingWiFi/view/HiddenConnectPage.cs index 5419b64..0156211 100755 --- a/SettingWiFi/SettingWiFi/view/HiddenConnectPage.cs +++ b/SettingWiFi/SettingWiFi/view/HiddenConnectPage.cs @@ -1,3 +1,4 @@ +using SettingWiFi.TextResources; using System; using System.Collections.Generic; using Tizen.NUI; @@ -42,7 +43,7 @@ namespace SettingWiFi placeholder.Add("color", new PropertyValue(isLightTheme ? new Color("#CACACA") : new Color("#666666"))); placeholder.Add("fontFamily", new PropertyValue("BreezeSans")); placeholder.Add("pixelSize", new PropertyValue(24.SpToPx())); - placeholder.Add("text", new PropertyValue(Resources.IDS_ST_BODY_NETWORK_SSID)); + placeholder.Add("text", new PropertyValue(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_NETWORK_SSID)))); var textField = new TextField { @@ -132,7 +133,7 @@ namespace SettingWiFi { WidthResizePolicy = ResizePolicyType.FitToChildren, HeightResizePolicy = ResizePolicyType.FitToChildren, - Text = Resources.IDS_WIFI_SK_CANCEL, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SK_CANCEL)), Size = new Size(252, 48).SpToPx(), }; cancelButton.Clicked += (object source, ClickedEventArgs args) => @@ -144,7 +145,7 @@ namespace SettingWiFi { WidthResizePolicy = ResizePolicyType.FitToChildren, HeightResizePolicy = ResizePolicyType.FitToChildren, - Text = Resources.IDS_WIFI_BUTTON_ADD, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BUTTON_ADD)), Size = new Size(252, 48).SpToPx(), }; mFindButton.IsEnabled = false; @@ -158,7 +159,7 @@ namespace SettingWiFi AlertDialog alt = new AlertDialog() { - Title = Resources.IDS_WIFI_BUTTON_FIND_HIDDEN_NETWORK, + Title = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BUTTON_FIND_HIDDEN_NETWORK)), Content = findView, Actions = new View[] { cancelButton, mFindButton, }, }; @@ -167,7 +168,7 @@ namespace SettingWiFi private View AddSubTitle() { - var textSubTitle = new TextLabel(Resources.IDS_WIFI_BODY_ENTER_NETWORK_NAME) + var textSubTitle = new TextLabel(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_ENTER_NETWORK_NAME))) { FontFamily = "BreezeSans", PixelSize = 24.SpToPx(), @@ -207,7 +208,7 @@ namespace SettingWiFi private Button CreateCancelButton() { - var cancelButton = CreateButton(300, 80, Resources.IDS_WIFI_SK_CANCEL); + var cancelButton = CreateButton(300, 80, ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SK_CANCEL))); cancelButton.Clicked += (object source, ClickedEventArgs args) => { NUIApplication.GetDefaultWindow().GetDefaultNavigator().Pop(); @@ -228,12 +229,12 @@ namespace SettingWiFi { WidthSpecification = LayoutParamPolicies.MatchParent, IsSelectable = false, - Text = Resources.IDS_WIFI_BODY_A_WI_FI_NETWORK_HAS_BEEN_DETECTED_YOU_WILL_BE_CONNECTED, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_A_WI_FI_NETWORK_HAS_BEEN_DETECTED_YOU_WILL_BE_CONNECTED)), }; infoView.Add(info); var cancelButton = CreateCancelButton(); - var connectButton = CreateButton(300, 80, Resources.IDS_WIFI_BODY_CONNECT); + var connectButton = CreateButton(300, 80, ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_CONNECT))); connectButton.Clicked += (object source, ClickedEventArgs args) => { @@ -263,7 +264,7 @@ namespace SettingWiFi await mWifi.Connect(ap, password); if (mWifi.GetConnectedAP().Equals(ap.Essid)) { - ap.StateInfo = Resources.IDS_WIFI_SBODY_CONNECTED_M_STATUS; + ap.StateInfo = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SBODY_CONNECTED_M_STATUS)); } } diff --git a/SettingWiFi/SettingWiFi/view/InfoInputPage.cs b/SettingWiFi/SettingWiFi/view/InfoInputPage.cs index a9d437b..c964d0e 100755 --- a/SettingWiFi/SettingWiFi/view/InfoInputPage.cs +++ b/SettingWiFi/SettingWiFi/view/InfoInputPage.cs @@ -1,3 +1,4 @@ +using SettingWiFi.TextResources; using System; //using SettingWiFi.res.locale; using Tizen.NUI; @@ -47,7 +48,7 @@ namespace SettingWiFi var cancelButton = new Button() { - Text = Resources.IDS_WIFI_SK_CANCEL, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SK_CANCEL)), }; cancelButton.Clicked += OnCancelClicked; var okButton = new Button() @@ -83,31 +84,31 @@ namespace SettingWiFi { Debug("UpdateInfo"); - if (fieldName == Resources.IDS_WIFI_BODY_IP_ADDRESS) + if (fieldName == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_IP_ADDRESS))) { mAp.IPv4 = value; } - else if (fieldName == Resources.IDS_WIFI_BODY_SUBNET_MASK) + else if (fieldName == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_SUBNET_MASK))) { mAp.SubnetMask = value; } - else if (fieldName == Resources.IDS_WIFI_BODY_GATEWAY_ADDRESS) + else if (fieldName == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_GATEWAY_ADDRESS))) { mAp.GatewayAddress = value; } - else if (fieldName == Resources.IDS_WIFI_BODY_DNS_1) + else if (fieldName == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_DNS_1))) { mAp.Dns1 = value; } - else if (fieldName == Resources.IDS_WIFI_BODY_DNS_2) + else if (fieldName == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_DNS_2))) { mAp.Dns2 = value; } - else if (fieldName == Resources.IDS_ST_SBODY_PROXY_ADDRESS) + else if (fieldName == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_SBODY_PROXY_ADDRESS))) { mAp.ProxyAddress = value; } - else if (fieldName == Resources.IDS_ST_SBODY_PROXY_PORT) + else if (fieldName == ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_SBODY_PROXY_PORT))) { try { diff --git a/SettingWiFi/SettingWiFi/view/InfoPage.cs b/SettingWiFi/SettingWiFi/view/InfoPage.cs index 48325dd..9e0a714 100755 --- a/SettingWiFi/SettingWiFi/view/InfoPage.cs +++ b/SettingWiFi/SettingWiFi/view/InfoPage.cs @@ -1,5 +1,6 @@ using SettingCore; using SettingCore.Views; +using SettingWiFi.TextResources; using System; using System.Collections.Generic; using Tizen; @@ -67,7 +68,7 @@ namespace SettingWiFi { var appBar = new AppBar() { - Title = Resources.IDS_WIFI_HEADER_WI_FI_NETWORK_INFO_ABB, + Title = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_HEADER_WI_FI_NETWORK_INFO_ABB)), }; AppBarStyle appBarStyle = (AppBarStyle)ThemeManager.GetStyle("Tizen.NUI.Components.AppBar"); Button backButton = new Button(((AppBarStyle)appBarStyle).BackButton); @@ -76,7 +77,7 @@ namespace SettingWiFi appBar.NavigationContent = backButton; Button mForgetButton = new Button() { - Text = Resources.IDS_WIFI_SK_FORGET, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SK_FORGET)), }; mForgetButton.Clicked += OnForgetClicked; mForgetButton.TextColor = new Color(ThemeManager.PlatformThemeId == "org.tizen.default-light-theme" ? "#FF6200" : "#FF8A00"); @@ -101,7 +102,7 @@ namespace SettingWiFi var toggle = new DefaultLinearItem() { WidthSpecification = LayoutParamPolicies.MatchParent, - Text = Resources.IDS_WIFI_BODY_STATIC_IP, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_STATIC_IP)), IsSelectable = false, }; toggle.Label.HorizontalAlignment = HorizontalAlignment.Begin; @@ -184,29 +185,29 @@ namespace SettingWiFi private void GetStaticInfo() { Debug("+"); - staticItems[0] = new InfoItem(Resources.IDS_WIFI_BODY_IP_ADDRESS, true, mAp.IPv4, true); - staticItems[1] = new InfoItem(Resources.IDS_WIFI_BODY_SUBNET_MASK, true, mAp.SubnetMask, true); - staticItems[2] = new InfoItem(Resources.IDS_WIFI_BODY_GATEWAY, true, mAp.GatewayAddress, true); - staticItems[3] = new InfoItem(Resources.IDS_ST_BODY_NETWORK_PREFIX_LENGTH, true, mAp.NetworkPrefixLength, true); - staticItems[4] = new InfoItem(Resources.IDS_WIFI_BODY_DNS_1, true, mAp.Dns1, true); - staticItems[5] = new InfoItem(Resources.IDS_WIFI_BODY_DNS_2, true, mAp.Dns2, true); - staticItems[6] = new InfoItem(Resources.IDS_WIFI_BODY_MAC_ADDRESS, false, mAp.Bssid, true); + staticItems[0] = new InfoItem(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_IP_ADDRESS)), true, mAp.IPv4, true); + staticItems[1] = new InfoItem(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_SUBNET_MASK)), true, mAp.SubnetMask, true); + staticItems[2] = new InfoItem(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_GATEWAY)), true, mAp.GatewayAddress, true); + staticItems[3] = new InfoItem(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_NETWORK_PREFIX_LENGTH)), true, mAp.NetworkPrefixLength, true); + staticItems[4] = new InfoItem(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_DNS_1)), true, mAp.Dns1, true); + staticItems[5] = new InfoItem(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_DNS_2)), true, mAp.Dns2, true); + staticItems[6] = new InfoItem(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_MAC_ADDRESS)), false, mAp.Bssid, true); if(mAp.ProxyAddress?.Length > 0) { - staticItems[7] = new InfoItem(Resources.IDS_ST_SBODY_PROXY_ADDRESS, true, mAp.ProxyAddress, true, false); + staticItems[7] = new InfoItem(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_SBODY_PROXY_ADDRESS)), true, mAp.ProxyAddress, true, false); } else { - staticItems[7] = new InfoItem(Resources.IDS_ST_SBODY_PROXY_ADDRESS, true, "proxy.example.com", false, false); + staticItems[7] = new InfoItem(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_SBODY_PROXY_ADDRESS)), true, "proxy.example.com", false, false); } if(mAp.ProxyPort > 0) { string port = "" + mAp.ProxyPort; - staticItems[8] = new InfoItem(Resources.IDS_ST_SBODY_PROXY_PORT, true, port, true, false); + staticItems[8] = new InfoItem(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_SBODY_PROXY_PORT)), true, port, true, false); } else { - staticItems[8] = new InfoItem(Resources.IDS_ST_SBODY_PROXY_PORT, true, "8080", false, false); + staticItems[8] = new InfoItem(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_SBODY_PROXY_PORT)), true, "8080", false, false); } @@ -219,25 +220,25 @@ namespace SettingWiFi private void GetDynamicInfo() { Debug("+"); - dynamicItems[0] = new InfoItem(Resources.IDS_WIFI_BODY_IP_ADDRESS, false, mAp.IPv4, true); - dynamicItems[1] = new InfoItem(Resources.IDS_WIFI_BODY_MAC_ADDRESS, false, mAp.Bssid, true); + dynamicItems[0] = new InfoItem(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_IP_ADDRESS)), false, mAp.IPv4, true); + dynamicItems[1] = new InfoItem(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_MAC_ADDRESS)), false, mAp.Bssid, true); if (mAp.ProxyAddress?.Length > 0) { - dynamicItems[2] = new InfoItem(Resources.IDS_ST_SBODY_PROXY_ADDRESS, true, mAp.ProxyAddress, true, false); + dynamicItems[2] = new InfoItem(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_SBODY_PROXY_ADDRESS)), true, mAp.ProxyAddress, true, false); } else { - dynamicItems[2] = new InfoItem(Resources.IDS_ST_SBODY_PROXY_ADDRESS, true, "proxy.example.com", false, false); + dynamicItems[2] = new InfoItem(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_SBODY_PROXY_ADDRESS)), true, "proxy.example.com", false, false); } if (mAp.ProxyPort > 0) { string port = "" + mAp.ProxyPort; - new InfoItem(Resources.IDS_ST_SBODY_PROXY_PORT, true, port,true, false); + new InfoItem(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_SBODY_PROXY_PORT)), true, port,true, false); } else { - dynamicItems[3] = new InfoItem(Resources.IDS_ST_SBODY_PROXY_PORT, true, "8080", false, false); + dynamicItems[3] = new InfoItem(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_SBODY_PROXY_PORT)), true, "8080", false, false); } foreach (var item in dynamicItems) { @@ -275,7 +276,7 @@ namespace SettingWiFi var cancelButton = new Button() { - Text = Resources.IDS_WIFI_SK_CANCEL, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SK_CANCEL)), WidthSpecification = 300, HeightSpecification = 80, }; @@ -283,7 +284,7 @@ namespace SettingWiFi var forgetButton = new Button() { - Text = Resources.IDS_WIFI_SK_FORGET, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SK_FORGET)), WidthSpecification = 300, HeightSpecification = 80, }; @@ -293,7 +294,7 @@ namespace SettingWiFi { Content = new AlertDialog() { - Title = Resources.IDS_WIFI_OPT_FORGET_NETWORK, + Title = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_OPT_FORGET_NETWORK)), Content = forgetView, Actions = new View[] { cancelButton, forgetButton }, }, diff --git a/SettingWiFi/SettingWiFi/view/MainPage.cs b/SettingWiFi/SettingWiFi/view/MainPage.cs index 51f2ea8..2be8c39 100755 --- a/SettingWiFi/SettingWiFi/view/MainPage.cs +++ b/SettingWiFi/SettingWiFi/view/MainPage.cs @@ -9,6 +9,8 @@ using static SettingWiFi.Logger; using System; using System.Linq; using ElmSharp.Accessible; +using SettingWiFi.TextResources; +using Tizen.Network.WiFi; namespace SettingWiFi { @@ -24,7 +26,7 @@ namespace SettingWiFi public override string ProvideIconPath() => GetResourcePath("main-menu-wifi-icon.svg"); public override Color ProvideIconColor() => new Color(ThemeManager.PlatformThemeId == "org.tizen.default-light-theme" ? "#FF6200" : "#FF8A00"); - public override string ProvideTitle() => Resources.IDS_WIFI_BODY_WI_FI; + public override string ProvideTitle() => NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_WI_FI)); private static bool isLightTheme => ThemeManager.PlatformThemeId == "org.tizen.default-light-theme"; public MainPage() @@ -36,7 +38,14 @@ namespace SettingWiFi bool? active = GetWifiState(); if (active.HasValue && active.Value) { - mApSource.UpdateGroupTitle(Resources.IDS_ST_HEADER_AVAILABLE_NETWORKS); + try + { + mApSource.UpdateGroupTitle(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_HEADER_AVAILABLE_NETWORKS))); + } + catch (Exception e) + { + Debug("Fail to activate WiFi " + e.ToString()); + } } ScanAP(); @@ -69,7 +78,7 @@ namespace SettingWiFi { mHiddenMenuItem = new MoreMenuItem { - Text = Resources.IDS_WIFI_BUTTON_FIND_HIDDEN_NETWORK, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BUTTON_FIND_HIDDEN_NETWORK)), Action = () => { OnHiddenNetworkClicked(); @@ -79,7 +88,7 @@ namespace SettingWiFi mMenus.Add(new MoreMenuItem { - Text = Resources.IDS_ST_BODY_ADVANCED, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_ADVANCED)), Action = () => { OnAdvancedPageClicked(); @@ -88,7 +97,7 @@ namespace SettingWiFi mWifiDirectMenuItem = new MoreMenuItem { - Text = Resources.IDS_WIFI_BODY_WI_FI_DIRECT_ABB, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_WI_FI_DIRECT_ABB)), Action = () => { }, }; mMenus.Add(mWifiDirectMenuItem); @@ -97,7 +106,7 @@ namespace SettingWiFi { mMenus.Add(new MoreMenuItem { - Text = Resources.IDS_ST_BODY_ADVANCED, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_ADVANCED)), Action = () => { }, }); } @@ -113,7 +122,7 @@ namespace SettingWiFi mScanButton = new Button() { - Text = Resources.IDS_WIFI_BUTTON_SCAN, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BUTTON_SCAN)), IsEnabled = wifiState, }; mScanButton.Clicked += OnScanClicked; @@ -147,7 +156,7 @@ namespace SettingWiFi protected override View OnCreate() { base.OnCreate(); - + ResourceManager.TextResourceManager = this; return CreateComponents(); } @@ -335,7 +344,7 @@ namespace SettingWiFi { bool? active = GetWifiState(); - var row = new SettingCore.Views.SwitchListItem(Resources.IDS_WIFI_BODY_WI_FI); + var row = new SettingCore.Views.SwitchListItem(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_WI_FI))); row.IsEnabled = active.HasValue; if (active.HasValue) { @@ -432,7 +441,7 @@ namespace SettingWiFi if (mWifi.GetConnectedAP().Equals(ap.Essid)) { - ap.StateInfo = Resources.IDS_WIFI_SBODY_CONNECTED_M_STATUS; + ap.StateInfo = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SBODY_CONNECTED_M_STATUS)); } } @@ -448,7 +457,7 @@ namespace SettingWiFi } /* TODO: auto connect */ UpdateMainPageButtonState(true); - mApSource.UpdateGroupTitle(Resources.IDS_ST_HEADER_AVAILABLE_NETWORKS); + mApSource.UpdateGroupTitle(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_HEADER_AVAILABLE_NETWORKS))); ScanAP(); UpdateMoreMenuItems(true); } @@ -555,7 +564,7 @@ namespace SettingWiFi if (item == null) break; if (item is AP ap) { - if (ap.StateInfo.Equals(Resources.IDS_WIFI_SBODY_CONNECTED_M_STATUS)) + if (ap.StateInfo.Equals(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SBODY_CONNECTED_M_STATUS)))) { Debug("Already connected " + ap.Essid); break; diff --git a/SettingWiFi/SettingWiFi/view/ResourceManager.cs b/SettingWiFi/SettingWiFi/view/ResourceManager.cs new file mode 100644 index 0000000..cb2f734 --- /dev/null +++ b/SettingWiFi/SettingWiFi/view/ResourceManager.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using SettingWiFi; + + +namespace SettingWiFi +{ + internal class ResourceManager + { + public static MainPage TextResourceManager; + } +} diff --git a/SettingWiFi/SettingWiFi/view/Resources.cs b/SettingWiFi/SettingWiFi/view/Resources.cs deleted file mode 100755 index 1c86d46..0000000 --- a/SettingWiFi/SettingWiFi/view/Resources.cs +++ /dev/null @@ -1,145 +0,0 @@ -namespace SettingWiFi -{ - static class Resources - { - static private string mResourcePath = ""; - - static public void SetPath(string path) - { - mResourcePath = path; - } - static public string GetPath() - { - return mResourcePath; - } - - /* - * IDS_*_* will be removed later. - */ - static public string IDS_BT_BODY_CONNECT_TO_DEVICE = "Connect to device"; - static public string IDS_BR_POP_INVALID_CERTIFICATE = "Invalid certificate"; - static public string IDS_COM_BODY_PHASE_2_AUTHENTICATION = "Phase 2 authentication"; - static public string IDS_COM_BODY_FIND = "Find"; - static public string IDS_EMAIL_POP_ALPHABETICAL = "Alphabetical"; - static public string IDS_ST_SBODY_INCREASES_DATA_USAGE_ABB = "Increases data usage."; - static public string IDS_ST_POP_WRONG_PASSWORD = "Wrong password."; - static public string IDS_ST_POP_TURNING_ON_WI_FI_WILL_DISABLE_WI_FI_TETHERING = "Turning on Wi-Fi will disable Wi-Fi tethering."; - static public string IDS_ST_HEADER_DOUBLE_TAP = "Double tap"; - static public string IDS_ST_HEADER_AVAILABLE_NETWORKS = "Available networks"; - static public string IDS_ST_BODY_WPS_AVAILABLE = "WPS available"; - static public string IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY = "Secured"; - static public string IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING = "Obtaining IP address..."; - static public string IDS_ST_BODY_NETWORK_SSID = "Network SSID"; - static public string IDS_ST_BODY_NETWORK_NOTIFICATION = "Network notification"; - static public string IDS_ST_BODY_KEEP_WI_FI_ON_DURING_SLEEP = "Keep Wi-Fi on during sleep"; - static public string IDS_ST_BODY_GOOD_M_BATTERY = "Good"; - static public string IDS_ST_BODY_EXCELLENT = "Excellent"; - static public string IDS_ST_BODY_ENTER_THE_P1SS_PIN_ON_YOUR_WI_FI_ROUTER_THE_SETUP_CAN_TAKE_UP_TO_P2SD_MINUTES_TO_COMPLETE - = "Enter the {0} PIN on your Wi-Fi router. The setup can take up to {1} minutes to complete."; - static public string IDS_ST_BODY_ADVANCED = "Advanced"; - static public string IDS_WIFI_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_PD_REACHED = "Maximum number of characters %d reached."; - static public string IDS_WIFI_TPOP_FAILED_TO_OBTAIN_IP_ADDRESS = "Failed to obtain IP address."; - static public string IDS_WIFI_TPOP_CONNECTED_TO_WI_FI_NETWORK_PS = "Connected to Wi-Fi network %s."; - static public string IDS_WIFI_TMBODY_NEVER_M_ALWAYS_OFF = "Never"; - static public string IDS_WIFI_SK_WPS_PIN = "WPS PIN"; - static public string IDS_WIFI_SK_FORGET = "Forget"; - static public string IDS_WIFI_SK2_OK = "OK"; - static public string IDS_WIFI_SK_OK = "Ok"; - static public string IDS_WIFI_SBODY_CONNECTED_M_STATUS = "Connected"; - static public string IDS_WIFI_SBODY_AUTOMATICALLY_SWITCH_BETWEEN_WI_FI_AND_MOBILE_NETWORKS_TO_MAINTAIN_A_STABLE_INTERNET_CONNECTION - = "Automatically switch between Wi-Fi and mobile networks to maintain a stable Internet connection."; - static public string IDS_WIFI_SBODY_AUTHENTICATION_ERROR_OCCURRED_M_STATUS = "Authentication error occurred"; - static public string IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES = "Press WPS on your Wi-Fi access point within {0} minutes."; - static public string IDS_WIFI_POP_OPEN = "Open"; - static public string IDS_WIFI_POP_NO_WI_FI_AP_FOUND = "No Wi-Fi AP found."; - static public string IDS_WIFI_POP_CURRENT_NETWORK_WILL_BE_DISCONNECTED = "Current network will be disconnected."; - static public string IDS_WIFI_OPT_WPS = "WPS"; - static public string IDS_WIFI_OPT_SHOW_PASSWORD = "Show password"; - static public string IDS_WIFI_OPT_FORGET_NETWORK = "Forget network"; - static public string IDS_WIFI_MBODY_SIGNAL_STRENGTH_KOR_SKT = "Signal strength"; - static public string IDS_WIFI_HEADER_WI_FI_NETWORK_INFO_ABB = "Wi-Fi network info"; - static public string IDS_WIFI_HEADER_SELECT_WPS_METHOD_ABB = "Select WPS method"; - static public string IDS_WIFI_HEADER_ENTER_PASSWORD = "Enter password."; - static public string IDS_WIFI_BUTTON_WPS_BUTTON = "WPS button"; - static public string IDS_WIFI_BUTTON_SCAN = "Scan"; - static public string IDS_WIFI_BUTTON_ADD = "Add"; - static public string IDS_WIFI_BUTTON_FIND_HIDDEN_NETWORK = "Find hidden network"; - static public string IDS_WIFI_BODY_WI_FI_DIRECT_ABB = "Wi-Fi Direct"; - static public string IDS_WIFI_BODY_WHILE_CHARGING_ONLY_ABB = "While charging only"; - static public string IDS_WIFI_BODY_WEAK_M_STRENGTH = "Weak"; - static public string IDS_WIFI_BODY_USER_CERTIFICATE_ABB = "User certificate"; - static public string IDS_WIFI_BODY_UNSPECIFIED = "Unspecified"; - static public string IDS_WIFI_BODY_SUBNET_MASK = "Subnet mask"; - static public string IDS_WIFI_BODY_STATIC_IP = "Static IP"; - static public string IDS_WIFI_BODY_RECEIVE_NOTIFICATIONS_WHEN_NETWORKS_ARE_AVAILABLE = "Receive notifications when networks are available."; - static public string IDS_WIFI_BODY_MAC_ADDRESS = "MAC address"; - static public string IDS_WIFI_BODY_IP_ADDRESS = "IP address"; - static public string IDS_WIFI_BODY_IDENTITY = "Identity"; - static public string IDS_WIFI_BODY_GATEWAY_ADDRESS = "Gateway address"; - static public string IDS_WIFI_BODY_ENTER_IDENTITY = "Enter identity."; - static public string IDS_WIFI_BODY_EAP_METHOD = "EAP method"; - static public string IDS_WIFI_BODY_EAP = "EAP"; - static public string IDS_WIFI_BODY_DNS_2 = "DNS 2"; - static public string IDS_WIFI_BODY_DNS_1 = "DNS 1"; - static public string IDS_WIFI_BODY_CONNECTING_ING = "Connecting..."; - static public string IDS_WIFI_BODY_CONFIGURATION_SAVED_M_STATUS = "Saved"; - static public string IDS_WIFI_BODY_A_WI_FI_NETWORK_HAS_BEEN_DETECTED_YOU_WILL_BE_CONNECTED = "A Wi-Fi network has been detected. You will be connected."; - static public string IDS_WIFI_BODY_ADVANCED_SETTINGS = "Advanced settings"; - static public string IDS_ST_BODY_NONE = "None"; - static public string IDS_BR_BODY_BUTTON_T_TTS = "Button"; - static public string IDS_CLD_OPT_ALWAYS_ABB = "Always"; - static public string IDS_STU_BUTTON_PREVIOUS = "Previous"; - static public string IDS_STU_BUTTON_NEXT = "Next"; - static public string IDS_MOBILEAP_POP_DO_NOT_SHOW_AGAIN = "Do not show again."; - static public string IDS_ST_BODY_TURNING_ON_ING = "Turning on..."; - static public string IDS_GC_POP_INVALID_PIN = "Invalid PIN."; - static public string IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN = "Invalid action. Try again."; - static public string IDS_WIFI_SK_CANCEL = "Cancel"; - static public string IDS_WIFI_OPT_MOBILEACCESSSERVICEATCIVATION_ON = "On"; - static public string IDS_WIFI_OPT_MOBILEACCESSSERVICEATCIVATION_OFF = "Off"; - static public string IDS_WIFI_HEADER_PASSWORD = "Password"; - static public string IDS_WIFI_BODY_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED = "Maximum number of characters reached."; - static public string IDS_WIFI_BODY_WI_FI = "Wi-Fi"; - static public string IDS_WIFI_BODY_UNKNOWN = "Unknown"; - static public string IDS_WIFI_BODY_SORT_BY = "Sort by"; - static public string IDS_WIFI_BODY_ALPHABETICAL = "Alphabetical"; - static public string IDS_WIFI_BODY_SIGNAL_STRENGTH = "Signal Strength"; - static public string IDS_WIFI_BODY_SCANNING_ING = "Scanning..."; - static public string IDS_WIFI_BODY_NAME = "Name"; - static public string IDS_WIFI_BODY_CONNECT = "Connect"; - static public string IDS_ST_BODY_INSTALL_CERTIFICATE = "Install certificate"; - static public string IDS_WIFI_HEADER_PASSPOINT = "Passpoint"; - static public string IDS_ST_OPT_SKIP = "Skip"; - static public string IDS_ST_MBODY_ALWAYS_ALLOW_SCANNING = "Always allow scanning"; - static public string IDS_WIFI_POP_SELECT_SIM_CARD_OR_AKA_OPTION_ON_EAP_METHOD_GUIDE_MSG = "%s is selected.\n\nIf you are unable to connect to an AP, change the SIM card used for verification by going to SIM card manager. Then select the SIM card you want to use for Mobile data. Alternatively, you can unmount the SIM card you do not want to use."; - static public string IDS_HELP_BODY_TAP_THE_NETWORK_YOU_WANT_TO_CONNECT_TO = "Tap the network you want to connect to."; - static public string IDS_HELP_BODY_YOU_HAVE_BEEN_AUTOMATICALLY_CONNECTED_TO_THE_REMEMBERED_NETWORK_TO_SEE_THE_NETWORK_DETAILS_TAP_THE_PS_ICON = "You have been automatically connected to the remembered network. To see the network details, tap the %s icon."; - static public string IDS_HELP_BODY_YOU_HAVE_BEEN_CONNECTED_TO_THE_NETWORK_TO_SEE_THE_NETWORK_DETAILS_TAP_THE_PS_ICON = "You have been connected to the network. To see the network details, tap the %s icon."; - static public string IDS_HELP_POP_NO_WI_FI_NETWORKS_FOUND_CHANGE_YOUR_LOCATION_OR_TRY_LATER = "No Wi-Fi networks found. Change your location or try later."; - static public string IDS_HELP_POP_TAP_TO_SCAN_FOR_WI_FI_NETWORKS = "Tap to scan for Wi-Fi networks."; - static public string IDS_HELP_POP_TO_CONNECT_TO_A_SECURED_NETWORK_YOU_MAY_NEED_TO_ENTER_A_PASSWORD_OR_OTHER_CREDENTIALS = "To connect to a secured network, You may need to enter a password or other credentials."; - static public string IDS_ST_SBODY_PROXY_ADDRESS = "Proxy address"; - static public string IDS_ST_SBODY_PROXY_PORT = "Proxy port"; - static public string IDS_WIFI_BODY_TURN_ON_WI_FI_TO_VIEW_A_LIST_OF_AVAILABLE_NETWORKS = "Turn on Wi-Fi to view a list of available networks."; - static public string IDS_ST_BODY_ADD_WI_FI_NETWORK = "Add Wi-Fi network"; - static public string IDS_ST_BODY_IPV4 = "IPv4"; - static public string IDS_ST_BODY_IPV6 = "IPv6"; - static public string IDS_ST_BODY_NETWORK_PREFIX_LENGTH = "Network prefix length"; - static public string IDS_ST_BUTTON_SECURITY_ABB = "Security"; - static public string IDS_ST_BUTTON_EAP_METHOD = "EAP method"; - static public string IDS_ST_BUTTON_PHASE_AUTHENTICATION = "Phase 2 authentication"; - static public string IDS_ST_BUTTON_USER_CERTIFICATE = "User certificate"; - static public string IDS_WIFI_CERTIFICATE_SEARCH_RESULTS = "Certificate Search Results"; - static public string IDS_WIFI_NO_CERTIFICATE_FOUND = "No certificate found."; - static public string IDS_WIFI_AFTER_YOU_INSTALL_THEY_WILL_BE_SHOWN_HERE = "After you install, they will be shown here."; - static public string IDS_ST_BODY_ADD_NETWORK = "Add network"; - static public string IDS_WIFI_BODY_ENTER_NETWORK_NAME = "Enter network name"; - static public string IDS_WIFI_BODY_SHOW_ADVANCED_OPTIONS = "Show advanced options"; - static public string IDS_WIFI_BODY_NETWORK_NAME = "Network name"; - static public string IDS_WIFI_BODY_IP_SETTINGS = "IP settings"; - static public string IDS_WIFI_BODY_PROXY = "Proxy"; - static public string IDS_WIFI_BODY_DONE = "Done"; - static public string IDS_WIFI_BODY_GATEWAY = "Gateway"; - static public string IDS_WIFI_BODY_TYPE_PASSWORD = "Type password"; - } -} diff --git a/SettingWiFi/SettingWiFi/view/SortBy.cs b/SettingWiFi/SettingWiFi/view/SortBy.cs index 25f2026..59e46d4 100644 --- a/SettingWiFi/SettingWiFi/view/SortBy.cs +++ b/SettingWiFi/SettingWiFi/view/SortBy.cs @@ -10,6 +10,7 @@ using Tizen.NUI.Binding; using SettingCore.Views; using Interop; using System.Diagnostics; +using SettingWiFi.TextResources; namespace SettingWiFi { @@ -38,7 +39,7 @@ namespace SettingWiFi var sortByAlphabet = new DefaultLinearItem() { WidthSpecification = LayoutParamPolicies.MatchParent, - Text = Resources.IDS_WIFI_BODY_ALPHABETICAL, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_ALPHABETICAL)), IsSelectable = false, }; sortByAlphabet.Clicked += OnSortByAlphabetClicked; @@ -48,14 +49,14 @@ namespace SettingWiFi var sortByStrength = new DefaultLinearItem() { WidthSpecification = LayoutParamPolicies.MatchParent, - Text = Resources.IDS_WIFI_BODY_SIGNAL_STRENGTH, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_SIGNAL_STRENGTH)), IsSelectable = false, }; sortByStrength.Clicked += OnSortByStrengthClicked; sortView.Add(sortByAlphabet); sortView.Add(sortByStrength); - AppBar = CreateAppBar(Resources.IDS_WIFI_BODY_SORT_BY); + AppBar = CreateAppBar(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_SORT_BY))); Content = sortView; } protected virtual AppBar CreateAppBar(string title) diff --git a/SettingWiFi/SettingWiFi/view/WPSConnectPage.cs b/SettingWiFi/SettingWiFi/view/WPSConnectPage.cs index 0db4cb9..e40def9 100755 --- a/SettingWiFi/SettingWiFi/view/WPSConnectPage.cs +++ b/SettingWiFi/SettingWiFi/view/WPSConnectPage.cs @@ -1,3 +1,4 @@ +using SettingWiFi.TextResources; using System; using Tizen.NUI; using Tizen.NUI.BaseComponents; @@ -35,7 +36,7 @@ namespace SettingWiFi string timeout = "2"; string message = string.Format( - Resources.IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES, timeout); + ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES)), timeout); var messageItem = new TextLabel(message); var progress = new Progress() @@ -75,7 +76,7 @@ namespace SettingWiFi var cancelButton = new Button() { - Text = Resources.IDS_WIFI_SK_CANCEL, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SK_CANCEL)), WidthSpecification = 100, HeightSpecification = 60, }; @@ -87,7 +88,7 @@ namespace SettingWiFi Content = new AlertDialog() { - Title = Resources.IDS_WIFI_BUTTON_WPS_BUTTON, + Title = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BUTTON_WPS_BUTTON)), Content = view, Actions = new View[] { cancelButton }, }; @@ -95,7 +96,7 @@ namespace SettingWiFi private async void checkConnection() { - if (mWifi.GetConnectionState().Equals(Resources.IDS_WIFI_SBODY_CONNECTED_M_STATUS)) + if (mWifi.GetConnectionState().Equals(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SBODY_CONNECTED_M_STATUS)))) { isConnected = true; } @@ -129,7 +130,7 @@ namespace SettingWiFi string timeout = "2"; string message = string.Format( - Resources.IDS_ST_BODY_ENTER_THE_P1SS_PIN_ON_YOUR_WI_FI_ROUTER_THE_SETUP_CAN_TAKE_UP_TO_P2SD_MINUTES_TO_COMPLETE, pin, timeout); + ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_ENTER_THE_P1SS_PIN_ON_YOUR_WI_FI_ROUTER_THE_SETUP_CAN_TAKE_UP_TO_P2SD_MINUTES_TO_COMPLETE)), pin, timeout); var messageItem = new TextLabel(message); var progress = new Progress() @@ -169,7 +170,7 @@ namespace SettingWiFi var cancelButton = new Button() { - Text = Resources.IDS_WIFI_SK_CANCEL, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SK_CANCEL)), WidthSpecification = 100, HeightSpecification = 60, }; @@ -181,7 +182,7 @@ namespace SettingWiFi Content = new AlertDialog() { - Title = Resources.IDS_WIFI_SK_WPS_PIN, + Title = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SK_WPS_PIN)), Content = view, Actions = new View[] { cancelButton }, }; @@ -189,7 +190,7 @@ namespace SettingWiFi private async void checkConnection() { - if (mWifi.GetConnectionState().Equals(Resources.IDS_WIFI_SBODY_CONNECTED_M_STATUS)) + if (mWifi.GetConnectionState().Equals(ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SBODY_CONNECTED_M_STATUS)))) { isConnected = true; } @@ -234,7 +235,7 @@ namespace SettingWiFi var pbsButton = new Button() { - Text = Resources.IDS_WIFI_BUTTON_WPS_BUTTON, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BUTTON_WPS_BUTTON)), BackgroundColor = Color.Silver, WidthSpecification = 600, }; @@ -242,7 +243,7 @@ namespace SettingWiFi var pinButton = new Button() { - Text = Resources.IDS_WIFI_SK_WPS_PIN, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SK_WPS_PIN)), BackgroundColor = Color.Silver, WidthSpecification = 600, }; @@ -250,7 +251,7 @@ namespace SettingWiFi var cancelButton = new Button() { - Text = Resources.IDS_WIFI_SK_CANCEL, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SK_CANCEL)), }; cancelButton.Clicked += OnCancelClicked; @@ -262,7 +263,7 @@ namespace SettingWiFi Content = new AlertDialog() { - Title = Resources.IDS_WIFI_HEADER_SELECT_WPS_METHOD_ABB, + Title = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_HEADER_SELECT_WPS_METHOD_ABB)), Content = view, Actions = new View[] { cancelButton }, }; diff --git a/SettingWiFi/SettingWiFi/view/WiFiDirectPage.cs b/SettingWiFi/SettingWiFi/view/WiFiDirectPage.cs index 24338be..54e4e0c 100755 --- a/SettingWiFi/SettingWiFi/view/WiFiDirectPage.cs +++ b/SettingWiFi/SettingWiFi/view/WiFiDirectPage.cs @@ -1,3 +1,4 @@ +using SettingWiFi.TextResources; using System.Collections.Generic; using Tizen.NUI; using Tizen.NUI.BaseComponents; @@ -34,7 +35,7 @@ namespace SettingWiFi var cancelButton = new Button() { - Text = Resources.IDS_WIFI_SK_CANCEL, + Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SK_CANCEL)), WidthSpecification = 300, HeightSpecification = 80, }; @@ -45,7 +46,7 @@ namespace SettingWiFi Content = new AlertDialog() { - Title = Resources.IDS_WIFI_BODY_WI_FI_DIRECT_ABB, + Title = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_WI_FI_DIRECT_ABB)), Content = findView, Actions = new View[] { cancelButton, }, }; diff --git a/packaging/org.tizen.cssetting-wifi-1.1.6.rpk b/packaging/org.tizen.cssetting-wifi-1.1.6.rpk index 65e40ff3a1b5834587f9db45ac02de1577afaa2f..7063c3289a7bf7e901dedd8691d05c1aca2ace4c 100644 GIT binary patch delta 93616 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 z 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

4TtXY?_1q34_VCPAG=dXy3afAgOP-uX8^_J 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 delta 91033 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

rTefxAy?*q5N@R+Z0B)IVTUP$?9BFjZFy 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 -- 2.34.1