diff options
Diffstat (limited to 'gui')
27 files changed, 3501 insertions, 1690 deletions
diff --git a/gui/Android.mk b/gui/Android.mk index 66883a4fa..84f890ca7 100644 --- a/gui/Android.mk +++ b/gui/Android.mk @@ -28,7 +28,8 @@ LOCAL_SRC_FILES := \ mousecursor.cpp \ scrolllist.cpp \ patternpassword.cpp \ - textbox.cpp + textbox.cpp \ + twmsg.cpp ifneq ($(TWRP_CUSTOM_KEYBOARD),) LOCAL_SRC_FILES += $(TWRP_CUSTOM_KEYBOARD) @@ -107,6 +108,7 @@ ifeq ($(TW_CUSTOM_THEME),) ifeq ($(TWRP_NEW_THEME),true) TWRP_THEME_LOC := $(commands_recovery_local_path)/gui/theme/$(TW_THEME) TWRP_RES := $(commands_recovery_local_path)/gui/theme/common/fonts + TWRP_RES += $(commands_recovery_local_path)/gui/theme/common/languages TWRP_RES += $(commands_recovery_local_path)/gui/theme/common/$(word 1,$(subst _, ,$(TW_THEME))).xml # for future copying of used include xmls and fonts: # UI_XML := $(TWRP_THEME_LOC)/ui.xml diff --git a/gui/action.cpp b/gui/action.cpp index 46f4575d7..3e27dbb44 100644 --- a/gui/action.cpp +++ b/gui/action.cpp @@ -197,6 +197,7 @@ GUIAction::GUIAction(xml_node<>* node) ADD_ACTION(cancelbackup); ADD_ACTION(checkpartitionlifetimewrites); ADD_ACTION(mountsystemtoggle); + ADD_ACTION(setlanguage); // remember actions that run in the caller thread for (mapFunc::const_iterator it = mf.begin(); it != mf.end(); ++it) @@ -340,12 +341,12 @@ int GUIAction::NotifyVarChange(const std::string& varName, const std::string& va void GUIAction::simulate_progress_bar(void) { - gui_print("Simulating actions...\n"); + gui_msg("simulating=Simulating actions..."); for (int i = 0; i < 5; i++) { if (PartitionManager.stop_backup.get_value()) { DataManager::SetValue("tw_cancel_backup", 1); - gui_print("Backup Canceled.\n"); + gui_msg("backup_cancel=Backup Canceled."); DataManager::SetValue("ui_progress", 0); PartitionManager.stop_backup.set_value(0); return; @@ -381,10 +382,10 @@ int GUIAction::flash_zip(std::string filename, int* wipe_cache) { DataManager::SetValue("tw_operation", "Configuring TWRP"); DataManager::SetValue("tw_partition", ""); - gui_print("Configuring TWRP...\n"); + gui_msg("config_twrp=Configuring TWRP..."); if (TWFunc::Exec_Cmd("/sbin/installTwrp reinstall") < 0) { - gui_print("Unable to configure TWRP with this kernel.\n"); + gui_msg("config_twrp_err=Unable to configure TWRP with this kernel."); } } } @@ -587,12 +588,12 @@ int GUIAction::mount(std::string arg) if (!simulate) PartitionManager.usb_storage_enable(); else - gui_print("Simulating actions...\n"); + gui_msg("simulating=Simulating actions..."); } else if (!simulate) { PartitionManager.Mount_By_Path(arg, true); PartitionManager.Add_MTP_Storage(arg); } else - gui_print("Simulating actions...\n"); + gui_msg("simulating=Simulating actions..."); return 0; } @@ -602,12 +603,12 @@ int GUIAction::unmount(std::string arg) if (!simulate) PartitionManager.usb_storage_disable(); else - gui_print("Simulating actions...\n"); + gui_msg("simulating=Simulating actions..."); DataManager::SetValue(TW_ACTION_BUSY, 0); } else if (!simulate) { PartitionManager.UnMount_By_Path(arg, true); } else - gui_print("Simulating actions...\n"); + gui_msg("simulating=Simulating actions..."); return 0; } @@ -615,7 +616,7 @@ int GUIAction::restoredefaultsettings(std::string arg __unused) { operation_start("Restore Defaults"); if (simulate) // Simulated so that people don't accidently wipe out the "simulation is on" setting - gui_print("Simulating actions...\n"); + gui_msg("simulating=Simulating actions..."); else { DataManager::ResetDefaults(); PartitionManager.Update_System_Details(); @@ -636,7 +637,7 @@ int GUIAction::copylog(std::string arg __unused) TWFunc::copy_file("/tmp/recovery.log", dst.c_str(), 0755); tw_set_default_metadata(dst.c_str()); sync(); - gui_print("Copied recovery log to %s.\n", DataManager::GetCurrentStoragePath().c_str()); + gui_msg(Msg("copy_log=Copied recovery log to {1}.")(DataManager::GetCurrentStoragePath())); } else simulate_progress_bar(); operation_end(0); @@ -733,7 +734,7 @@ int GUIAction::overlay(std::string arg) int GUIAction::queuezip(std::string arg __unused) { if (zip_queue_index >= 10) { - gui_print("Maximum zip queue reached!\n"); + gui_msg("max_queue=Maximum zip queue reached!"); return 0; } DataManager::GetValue("tw_filename", zip_queue[zip_queue_index]); @@ -747,7 +748,7 @@ int GUIAction::queuezip(std::string arg __unused) int GUIAction::cancelzip(std::string arg __unused) { if (zip_queue_index <= 0) { - gui_print("Minimum zip queue reached!\n"); + gui_msg("min_queue=Minimum zip queue reached!"); return 0; } else { zip_queue_index--; @@ -925,7 +926,7 @@ int GUIAction::screenshot(std::string arg __unused) chmod(path, 0666); chown(path, uid, gid); - gui_print("Screenshot was saved to %s\n", path); + gui_msg(Msg("screenshot_saved=Screenshot was saved to %s")(path)); // blink to notify that the screenshow was taken gr_color(255, 255, 255, 255); @@ -933,7 +934,7 @@ int GUIAction::screenshot(std::string arg __unused) gr_flip(); gui_forceRender(); } else { - LOGERR("Failed to take a screenshot!\n"); + gui_err("screenshot_err=Failed to take a screenshot!"); } return 0; } @@ -959,7 +960,7 @@ int GUIAction::fileexists(std::string arg) void GUIAction::reinject_after_flash() { if (DataManager::GetIntValue(TW_HAS_INJECTTWRP) == 1 && DataManager::GetIntValue(TW_INJECT_AFTER_ZIP) == 1) { - gui_print("Injecting TWRP into boot image...\n"); + gui_msg("injecttwrp=Injecting TWRP into boot image..."); if (simulate) { simulate_progress_bar(); } else { @@ -970,7 +971,7 @@ void GUIAction::reinject_after_flash() string injectcmd = "injecttwrp --dump /tmp/backup_recovery_ramdisk.img /tmp/injected_boot.img --flash bd=" + Boot->Actual_Block_Device; TWFunc::Exec_Cmd(injectcmd); } - gui_print("TWRP injection complete.\n"); + gui_msg("done=Done."); } } } @@ -993,7 +994,7 @@ int GUIAction::flash(std::string arg) ret_val = flash_zip(zip_path, &wipe_cache); TWFunc::SetPerformanceMode(false); if (ret_val != 0) { - gui_print("Error flashing zip '%s'\n", zip_path.c_str()); + gui_msg(Msg(msg::kError, "zip_err=Error installing zip file '{1}'")(zip_path)); ret_val = 1; break; } @@ -1001,7 +1002,7 @@ int GUIAction::flash(std::string arg) zip_queue_index = 0; if (wipe_cache) { - gui_print("One or more zip requested a cache wipe\nWiping cache now.\n"); + gui_msg("zip_wipe_cache=One or more zip requested a cache wipe -- Wiping cache now."); PartitionManager.Wipe_By_Path("/cache"); } @@ -1063,7 +1064,7 @@ int GUIAction::wipe(std::string arg) LOGINFO("wipe_path '%s'\n", wipe_path.c_str()); if (wipe_path == "/and-sec") { if (!PartitionManager.Wipe_Android_Secure()) { - LOGERR("Unable to wipe android secure\n"); + gui_msg("and_sec_wipe_err=Unable to wipe android secure"); ret_val = false; break; } else { @@ -1071,7 +1072,7 @@ int GUIAction::wipe(std::string arg) } } else if (wipe_path == "DALVIK") { if (!PartitionManager.Wipe_Dalvik_Cache()) { - LOGERR("Failed to wipe dalvik\n"); + gui_err("dalvik_wipe_err=Failed to wipe dalvik"); ret_val = false; break; } else { @@ -1087,7 +1088,7 @@ int GUIAction::wipe(std::string arg) } if (!skip) { if (!PartitionManager.Wipe_By_Path(wipe_path)) { - LOGERR("Unable to wipe '%s'\n", wipe_path.c_str()); + gui_msg(Msg(msg::kError, "unable_to_wipe=Unable to wipe {1}.")(wipe_path)); ret_val = false; break; } else if (wipe_path == DataManager::GetSettingsStoragePath()) { @@ -1152,6 +1153,8 @@ int GUIAction::nandroid(std::string arg) if (arg == "backup") { string Backup_Name; DataManager::GetValue(TW_BACKUP_NAME, Backup_Name); + string auto_gen = gui_lookup("auto_gen", "(Auto Generate)"); + string curr_date = gui_lookup("curr_date", "(Current Date)"); if (Backup_Name == "(Auto Generate)" || Backup_Name == "(Current Date)" || Backup_Name == "0" || Backup_Name == "(" || PartitionManager.Check_Backup_Name(true) == 0) { ret = PartitionManager.Run_Backup(); } @@ -1159,7 +1162,7 @@ int GUIAction::nandroid(std::string arg) operation_end(1); return -1; } - DataManager::SetValue(TW_BACKUP_NAME, "(Auto Generate)"); + DataManager::SetValue(TW_BACKUP_NAME, auto_gen); } else if (arg == "restore") { string Restore_Name; DataManager::GetValue("tw_restore", Restore_Name); @@ -1178,7 +1181,7 @@ int GUIAction::nandroid(std::string arg) } else { DataManager::SetValue("tw_cancel_backup", 1); - gui_print("Backup Canceled.\n"); + gui_msg("backup_cancel=Backup Canceled."); ret = 0; } operation_end(ret); @@ -1242,7 +1245,7 @@ int GUIAction::partitionsd(std::string arg __unused) int allow_partition; DataManager::GetValue(TW_ALLOW_PARTITION_SDCARD, allow_partition); if (allow_partition == 0) { - gui_print("This device does not have a real SD Card!\nAborting!\n"); + gui_err("no_real_sdcard=This device does not have a real SD Card! Aborting!"); } else { if (!PartitionManager.Partition_SDCard()) ret_val = 1; // failed @@ -1332,7 +1335,7 @@ int GUIAction::terminalcommand(std::string arg) fp = popen(command.c_str(), "r"); if (fp == NULL) { - LOGERR("Error opening command to run.\n"); + LOGERR("Error opening command to run (%s).\n", strerror(errno)); } else { int fd = fileno(fp), has_data = 0, check = 0, keep_going = -1, bytes_read = 0; struct timeval timeout; @@ -1391,12 +1394,12 @@ int GUIAction::reinjecttwrp(std::string arg __unused) { int op_status = 0; operation_start("ReinjectTWRP"); - gui_print("Injecting TWRP into boot image...\n"); + gui_msg("injecttwrp=Injecting TWRP into boot image..."); if (simulate) { simulate_progress_bar(); } else { TWFunc::Exec_Cmd("injecttwrp --dump /tmp/backup_recovery_ramdisk.img /tmp/injected_boot.img --flash"); - gui_print("TWRP injection complete.\n"); + gui_msg("done=Done."); } operation_end(op_status); @@ -1462,7 +1465,7 @@ int GUIAction::adbsideload(std::string arg __unused) simulate_progress_bar(); operation_end(0); } else { - gui_print("Starting ADB sideload feature...\n"); + gui_msg("start_sideload=Starting ADB sideload feature..."); bool mtp_was_enabled = TWFunc::Toggle_MTP(false); // wait for the adb connection @@ -1471,7 +1474,7 @@ int GUIAction::adbsideload(std::string arg __unused) if (ret != 0) { if (ret == -2) - gui_print("You need adb 1.0.32 or newer to sideload to this device.\n"); + gui_msg("need_new_adb=You need adb 1.0.32 or newer to sideload to this device."); ret = 1; // failure } else { int wipe_cache = 0; @@ -1509,7 +1512,7 @@ int GUIAction::adbsideloadcancel(std::string arg __unused) { struct stat st; DataManager::SetValue("tw_has_cancel", 0); // Remove cancel button from gui - gui_print("Cancelling ADB sideload...\n"); + gui_msg("cancel_sideload=Cancelling ADB sideload..."); LOGINFO("Signaling child sideload process to exit.\n"); // Calling stat() on this magic filename signals the minadbd // subprocess to shut down. @@ -1543,7 +1546,7 @@ int GUIAction::openrecoveryscript(std::string arg __unused) // Run those first. int reboot = 0; if (TWFunc::Path_Exists(SCRIPT_FILE_TMP)) { - gui_print("Processing AOSP recovery commands...\n"); + gui_msg("running_recovery_commands=Running Recovery Commands"); if (OpenRecoveryScript::run_script_file() == 0) { reboot = 1; op_status = 0; @@ -1551,7 +1554,7 @@ int GUIAction::openrecoveryscript(std::string arg __unused) } // Check for the ORS file in /cache and attempt to run those commands. if (OpenRecoveryScript::check_for_script_file()) { - gui_print("Processing OpenRecoveryScript file...\n"); + gui_msg("running_ors=Running OpenRecoveryScript"); if (OpenRecoveryScript::run_script_file() == 0) { reboot = 1; op_status = 0; @@ -1640,7 +1643,6 @@ int GUIAction::repair(std::string arg __unused) if (PartitionManager.Repair_By_Path(part_path, true)) { op_status = 0; // success } else { - LOGERR("Error repairing file system.\n"); op_status = 1; // fail } } @@ -1662,7 +1664,6 @@ int GUIAction::resize(std::string arg __unused) if (PartitionManager.Resize_By_Path(part_path, true)) { op_status = 0; // success } else { - LOGERR("Error resizing file system.\n"); op_status = 1; // fail } } @@ -1685,7 +1686,7 @@ int GUIAction::changefilesystem(std::string arg __unused) if (PartitionManager.Wipe_By_Path(part_path, file_system)) { op_status = 0; // success } else { - LOGERR("Error changing file system.\n"); + gui_err("change_fs_err=Error changing file system."); op_status = 1; // fail } } @@ -1826,3 +1827,16 @@ int GUIAction::mountsystemtoggle(std::string arg) operation_end(op_status); return 0; } + +int GUIAction::setlanguage(std::string arg __unused) +{ + int op_status = 0; + + operation_start("Set Language"); + PageManager::LoadLanguage(DataManager::GetStrValue("tw_language")); + PageManager::RequestReload(); + op_status = 0; // success + + operation_end(op_status); + return 0; +} diff --git a/gui/console.cpp b/gui/console.cpp index 6b38d6137..b5204fb7c 100644 --- a/gui/console.cpp +++ b/gui/console.cpp @@ -1,3 +1,21 @@ +/* + Copyright 2015 bigbiff/Dees_Troy TeamWin + This file is part of TWRP/TeamWin Recovery Project. + + TWRP is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + TWRP is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with TWRP. If not, see <http://www.gnu.org/licenses/>. +*/ + // console.cpp - GUIConsole object #include <stdarg.h> @@ -24,10 +42,16 @@ extern "C" { #include "rapidxml.hpp" #include "objects.hpp" +#include "gui.hpp" +#include "twmsg.h" + +#define GUI_CONSOLE_BUFFER_SIZE 512 +size_t last_message_count = 0; +std::vector<Message> gMessages; -static std::vector<std::string> gConsole; -static std::vector<std::string> gConsoleColor; +std::vector<std::string> gConsole; +std::vector<std::string> gConsoleColor; static FILE* ors_file; extern "C" void __gui_print(const char *color, char *buf) @@ -58,22 +82,22 @@ extern "C" void __gui_print(const char *color, char *buf) gConsole.push_back(start); gConsoleColor.push_back(color); } - if (ors_file) { - fprintf(ors_file, "%s\n", buf); - fflush(ors_file); - } } extern "C" void gui_print(const char *fmt, ...) { - char buf[512]; // We're going to limit a single request to 512 bytes + char buf[GUI_CONSOLE_BUFFER_SIZE]; // We're going to limit a single request to 512 bytes va_list ap; va_start(ap, fmt); - vsnprintf(buf, 512, fmt, ap); + vsnprintf(buf, GUI_CONSOLE_BUFFER_SIZE, fmt, ap); va_end(ap); fputs(buf, stdout); + if (ors_file) { + fprintf(ors_file, "%s", buf); + fflush(ors_file); + } __gui_print("normal", buf); return; @@ -81,14 +105,18 @@ extern "C" void gui_print(const char *fmt, ...) extern "C" void gui_print_color(const char *color, const char *fmt, ...) { - char buf[512]; // We're going to limit a single request to 512 bytes + char buf[GUI_CONSOLE_BUFFER_SIZE]; // We're going to limit a single request to 512 bytes va_list ap; va_start(ap, fmt); - vsnprintf(buf, 512, fmt, ap); + vsnprintf(buf, GUI_CONSOLE_BUFFER_SIZE, fmt, ap); va_end(ap); fputs(buf, stdout); + if (ors_file) { + fprintf(ors_file, "%s", buf); + fflush(ors_file); + } __gui_print(color, buf); return; @@ -99,6 +127,70 @@ extern "C" void gui_set_FILE(FILE* f) ors_file = f; } +void gui_msg(const char* text) +{ + if (text) { + Message msg = Msg(text); + gui_msg(msg); + } +} + +void gui_warn(const char* text) +{ + if (text) { + Message msg = Msg(msg::kWarning, text); + gui_msg(msg); + } +} + +void gui_err(const char* text) +{ + if (text) { + Message msg = Msg(msg::kError, text); + gui_msg(msg); + } +} + +void gui_highlight(const char* text) +{ + if (text) { + Message msg = Msg(msg::kHighlight, text); + gui_msg(msg); + } +} + +void gui_msg(Message msg) +{ + std::string output = msg; + output += "\n"; + fputs(output.c_str(), stdout); + if (ors_file) { + fprintf(ors_file, "%s", output.c_str()); + fflush(ors_file); + } + gMessages.push_back(msg); +} + +void GUIConsole::Translate_Now() { + size_t message_count = gMessages.size(); + if (message_count <= last_message_count) + return; + + for (size_t m = last_message_count; m < message_count; m++) { + std::string message = gMessages[m]; + std::string color = "normal"; + if (gMessages[m].GetKind() == msg::kError) + color = "error"; + else if (gMessages[m].GetKind() == msg::kHighlight) + color = "highlight"; + else if (gMessages[m].GetKind() == msg::kWarning) + color = "warning"; + gConsole.push_back(message); + gConsoleColor.push_back(color); + } + last_message_count = message_count; +} + GUIConsole::GUIConsole(xml_node<>* node) : GUIScrollList(node) { xml_node<>* child; @@ -160,6 +252,7 @@ int GUIConsole::RenderSlideout(void) int GUIConsole::RenderConsole(void) { + Translate_Now(); AddLines(&gConsole, &gConsoleColor, &mLastCount, &rConsole, &rConsoleColor); GUIScrollList::Render(); diff --git a/gui/devices/common/res/languages/en.xml b/gui/devices/common/res/languages/en.xml new file mode 100644 index 000000000..c11176a71 --- /dev/null +++ b/gui/devices/common/res/languages/en.xml @@ -0,0 +1,226 @@ +<?xml version="1.0"?> + +<language> + <display>English</display> + + <resources> + <!-- Font overrides - only change these if your language requires special characters --> + <resource name="font" type="fontoverride" filename="RobotoCondensed-Regular.ttf" scale="100" /> + <resource name="mediumfont" type="fontoverride" filename="RobotoCondensed-Regular.ttf" scale="100" /> + <resource name="filelist" type="fontoverride" filename="RobotoCondensed-Regular.ttf" scale="100" /> + <resource name="fixed" type="fontoverride" filename="DroidSansMono.ttf" scale="100" /> + + <!-- Partition display names --> + <string name="system">System</string> + <string name="system_image">System Image</string> + <string name="vendor">Vendor</string> + <string name="vendor_image">Vendor Image</string> + <string name="boot">Boot</string> + <string name="recovery">Recovery</string> + <string name="cache">Cache</string> + <string name="data">Data</string> + <string name="sdcard">SDCard</string> + <string name="internal">Internal Storage</string> + <string name="microsd">Micro SDCard</string> + <string name="usbotg">USB OTG</string> + <string name="android_secure">Android Secure</string> + <string name="dalvik">Dalvik / ART Cache</string> + <!-- This is a rarely used partition on a Micro SD card for a very old app2sd system --> + <string name="sdext">SD-EXT</string> + + <!-- GUI XML strings --> + <string name="install_button_text">Install</string> + + <!-- Various console messages - these consist of user displayed messages, oftentimes errors --> + <string name="no_kernel_selinux">Kernel does not have support for reading SELinux contexts.</string> + <string name="full_selinux">Full SELinux support is present.</string> + <string name="no_selinux">No SELinux support (no libselinux).</string> + <string name="mtp_enabled">MTP Enabled</string> + <string name="mtp_crash">MTP Crashed, not starting MTP on boot.</string> + <string name="rebooting">Rebooting...</string> + <string name="decrypt_success">Successfully decrypted with default password.</string> + <string name="unable_to_decrypt">Unable to decrypt with default password. You may need to perform a Format Data.</string> + <string name="generating_md51">Generating MD5</string> + <!-- Message displayed during a backup if we are generating an MD5, ideally, leave the leading " * " to help align and separate this text from other console text --> + <string name="generating_md52"> * Generating md5...</string> + <string name="md5_created"> * MD5 Created.</string> + <string name="md5_error"> * MD5 Error!</string> + <string name="md5_compute_error"> * Error computing MD5.</string> + <string name="md5_created"> * MD5 Created.</string> + <string name="current_date">(Current Date)</string> + <string name="auto_generate">(Auto Generate)</string> + <string name="unable_to_locate_partition">Unable to locate '{1}' partition for backup calculations.</string> + <string name="no_partition_selected">No partitions selected for backup.</string> + <string name="total_partitions_backup"> * Total number of partitions to back up: {1}</string> + <string name="total_backup_size"> * Total size of all data: {1}MB</string> + <string name="available_space"> * Available space: {1}MB</string> + <string name="unable_locate_storage">Unable to locate storage device.</string> + <string name="Not enough free space on storage.">Not enough free space on storage.</string> + <string name="backup_started">[BACKUP STARTED]</string> + <string name="backup_folder"> * Backup Folder: {1}</string> + <string name="fail_backup_folder">Failed to make backup folder.</string> + <string name="avg_backup_fs">Average backup rate for file systems: {1} MB/sec</string> + <string name="avg_backup_img">Average backup rate for imaged drives: {1} MB/sec</string> + <string name="total_backed_size">[{1} MB TOTAL BACKED UP]</string> + <string name="backup_completed">[BACKUP COMPLETED IN {1} SECONDS]</string> + <string name="restore_started">[RESTORE STARTED]</string> + <string name="restore_folder">Restore folder: '%s'</string> + <!-- {1} is the partition display name and {2} is the number of seconds --> + <string name="restort_part_done">[{1} done ({2} seconds)]</string> + <string name="verifying_md5">Verifying MD5</string> + <string name="skip_md5">Skipping MD5 check based on user setting.</string> + <string name="calc_restore">Calculating restore details...</string> + <string name="restore_read_only">Cannot restore %s -- mounted read only.</string> + <string name="restore_unable_locate">Unable to locate '{1}' partition for restoring.</string> + <string name="no_part_restore">No partitions selected for restore.</string> + <string name="restore_part_count">Restoring {1} partitions...</string> + <string name="total_restore_size">Total restore size is {1}MB</string> + <string name="updating_system_details">Updating System Details</string> + <string name="restore_complete">[RESTORE COMPLETED IN {1} SECONDS]</string> + <!-- {1} is the path we could not open, {2} is strerror output --> + <string name="error_opening_strerr">Error opening: '{1}' ({2})</string> + <string name="unable_locate_part_backup_name">Unable to locate partition by backup name: '{1}'</string> + <string name="unable_find_part_path">Unable to find partition for path '{1}'</string> + <string name="update_part_details">Updating partition details...</string> + <string name="update_part_details_done">...done</string> + <string name="wiping_dalvik">Wiping Dalvik Cache Directories...</string> + <string name="cleaned">Cleaned: {1}...</string> + <string name="dalvik_done">-- Dalvik Cache Directories Wipe Complete!</string> + <string name="no_andsec">No android secure partitions found.</string> + <string name="unable_to_locate">Unable to locate {1}.</string> + <string name="wiping_datamedia">Wiping internal storage -- /data/media...</string> + <string name="unable_to_mount">Unable to mount {1}</string> + <string name="unable_to_mount_internal">Unable to mount internal_storage</string> + <string name="unable_to_mount_storage">Unable to mount storage</string> + <string name="fail_decrypt">Failed to decrypt data.</string> + <string name="no_crypto_support">No crypto support was compiled into this build.</string> + <string name="decrypt_success">Data successfully decrypted, new block device: '{1}'</string> + <string name="done">Done.</string> + <string name="start_partition_sd">Partitioning SD Card...</string> + <string name="partition_sd_locate">Unable to locate device to partition.</string> + <string name="ext_swap_size">EXT + Swap size is larger than sdcard size.</string> + <string name="remove_part_table">Removing partition table...</string> + <string name="unable_rm_part">Unable to remove partition table.</string> + <string name="create_part">Creating {1} partition...</string> + <string name="unable_to_create_part">Unable to create {1} partition.</string> + <string name="format_sdext_as">Formatting sd-ext as {1}...</string> + <string name="part_complete">Partitioning complete.</string> + <string name="unable_to_open">Unable to open '{1}'.</string> + <string name="mtp_already_enabled">MTP already enabled</string> + <string name="mtp_fail">Failed to enable MTP</string> + <string name="no_mtp">MTP support not included</string> + <string name="image_flash_start">[IMAGE FLASH STARTED]</string> + <string name="img_to_flash">Image to flash: '{1}'</string> + <string name="flash_unable_locate">Unable to locate '{1}' partition for flashing.</string> + <string name="no_part_flash">No partitions selected for flashing.</string> + <string name="too_many_flash">Too many partitions selected for flashing.</string> + <string name="invalid_flash">Invalid flash partition specified.</string> + <string name="flash_done">IMAGE FLASH COMPLETED]</string> + <string name="wiping">Wiping {1}</string> + <string name="repair_not_exist">{1} does not exist! Cannot repair!</string> + <string name="unable_repair">Unable to repair {1}.</string> + <string name="mount_data_footer">Could not mount /data and unable to find crypto footer.</string> + <!-- {1} is the folder name that we could not create, {2} is strerror output --> + <string name="create_folder_strerr">Can not create '{1}' folder ({2}).</string> + <!-- {1} is the folder name that we could not mount, {2} is strerror output --> + <string name="fail_mount">Failed to mount '{1}' ({2})</string> + <!-- {1} is the folder name that we could not unmount, {2} is strerror output --> + <string name="fail_mount">Failed to unmount '{1}' ({2})</string> + <string name="cannot_resize">Cannot resize {1}.</string> + <string name="repair_resize">Repairing {1} before resizing.</string> + <string name="unable_resize">Unable to resize {1}.</string> + <string name="no_md5_found">No md5 file found for '{1}'. Please unselect Enable MD5 verification to restore.</string> + <string name="md5_fail_match">MD5 failed to match on '{1}'.</string> + <string name="restoring">Restoring</string> + <string name="format_data_msg">You may need to reboot recovery to be able to use /data again.</string> + <string name="format_data_err">Unable to format to remove encryption.</string> + <string name="formating_using">Formatting {1} using {2}...</string> + <string name="unable_to_wipe">Unable to wipe {1}.</string> + <string name="remove_all">Removing all files under '{1}'</string> + <string name="wiping_data">Wiping data without wiping /data/media ...</string> + <string name="backing_up">Backing up {1}...</string> + <string name="backing">Backing Up</string> + <string name="backup_size">Backup file size for '%s' is 0 bytes.</string> + <string name="datamedia_fs_restore">WARNING: This /data backup was made with {1} file system! The backup may not boot unless you change back to {1}.</string> + <string name="restoring">Restoring {1}...</string> + <string name="restore">Restoring</string> + <string name="recreate_folder_err">Unable to recreate {1} folder.</string> + <string name="img_size_err">Size of image is larger than target device</string> + <string name="flashing">Flashing {1}...</string> + <string name="backup_folder">Backup folder set to '{1}'</string> + <string name="locate_backup_err">Unable to locate backup '{1}'</string> + <string name="set_restore_opt">Setting restore options: '{1}':</string> + <string name="md5_check_skip">MD5 check skip is on</string> + <string name="ors_encrypt_restore_err">Unable to use OpenRecoveryScript to restore an encrypted backup.</string> + <string name="mounting">Mounting</string> + <string name="unmounting">Unmounting</string> + <string name="mounted">Mounted '{1}'</string> + <string name="unmounted">Unmounted '{1}'</string> + <string name="setting">Setting '{1}' to '{2}'</string> + <string name="setting_empty">Setting '{1}' to empty</string> + <string name="making_dir1">Making Directory</string> + <string name="making_dir2">Making directory: '{1}'</string> + <string name="running_command">Running Command</string> + <string name="sideload">ADB Sideload</string> + <string name="start_sideload">Starting ADB sideload feature...</string> + <string name="need_new_adb">You need adb 1.0.32 or newer to sideload to this device.</string> + <string name="no_pwd">No password provided.</string> + <string name="done_ors">Done processing script file</string> + <string name="injecttwrp">Injecting TWRP into boot image...</string> + <string name="zip_err">Error installing zip file '{1}'</string> + <string name="installing_zip">Installing zip file '{1}'</string> + <string name="select_backup_opt">Setting backup options:</string> + <string name="compression_on">Compression is on</string> + <string name="md5_off">MD5 Generation is off</string> + <string name="backup_fail">Backup Failed</string> + <string name="backup_complete">Backup complete!</string> + <string name="running_recovery_commands">Running Recovery Commands</string> + <string name="recovery_commands_complete">Recovery Commands Complete</string> + <string name="running_ors">Running OpenRecoveryScript</string> + <string name="ors_complete">OpenRecoveryScript Complete</string> + <string name="no_updater_binary">Could not find '{1}' in the zip file.</string> + <string name="check_for_md5">Checking for MD5 file...</string> + <string name="fail_sysmap">Failed to map file '{1}'</string> + <string name="verify_zip_sig">Verifying zip signature...</string> + <string name="verify_zip_fail">Zip signature verification failed!</string> + <string name="verify_zip_done">Zip signature verified successfully.</string> + <string name="zip_corrupt">Zip file is corrupt!</string> + <string name="no_md5">Skipping MD5 check: no MD5 file found</string> + <string name="md5_fail">MD5 does not match</string> + <string name="md5_match">MD5 matched</string> + <string name="pid_signal">{1} process ended with signal: {2}</string> + <string name="pid_error">{1} process ended with ERROR: {2}</string> + <string name="install_dumlock">Installing HTC Dumlock to system...</string> + <string name="dumlock_restore">Restoring original boot...</string> + <string name="dumlock_reflash">Reflashing recovery to boot...</string> + <string name="run_script">Running {1} script...</string> + <string name="rename_stock">Renamed stock recovery file in /system to prevent the stock ROM from replacing TWRP.</string> + <string name="split_backup">Breaking backup file into multiple archives...</string> + <string name="backup_error">Error creating backup.</string> + <string name="restore_error">Error during restore process.</string> + <string name="split_thread">Splitting thread ID {1} into archive {2}</string> + <string name="file_progress">%llu of %llu files, %i%%</string> + <string name="size_progress">%lluMB of %lluMB, %i%%</string> + <string name="decrypt_cmd">Attempting to decrypt data partition via command line.</string> + <string name="base_pkg_err">Failed to load base packages.</string> + <string name="simulating">Simulating actions...</string> + <string name="backup_cancel">Backup Canceled.</string> + <string name="config_twrp">Configuring TWRP...</string> + <string name="config_twrp_err">Unable to configure TWRP with this kernel.</string> + <string name="copy_log">Copied recovery log to {1}.</string> + <string name="max_queue">Maximum zip queue reached!</string> + <string name="min_queue">Minimum zip queue reached!</string> + <string name="screenshot_err">Failed to take a screenshot!</string> + <string name="zip_wipe_cache">One or more zip requested a cache wipe -- Wiping cache now.</string> + <string name="and_sec_wipe_err">Unable to wipe android secure</string> + <string name="dalvik_wipe_err">Failed to wipe dalvik</string> + <string name="auto_gen">(Auto Generate)</string> + <string name="curr_date">(Current Date)</string> + <string name="backup_name_len">Backup name is too long.</string> + <string name="backup_name_invalid">Backup name '{1}' contains invalid character: '{1}'</string> + <string name="backup_name_exists">A backup with this name already exists.</string> + <string name="no_real_sdcard">This device does not have a real SD Card! Aborting!</string> + <string name="cancel_sideload">Cancelling ADB sideload...</string> + <string name="change_fs_err">Error changing file system.</string> + </resources> +</language> diff --git a/gui/devices/common/res/languages/es.xml b/gui/devices/common/res/languages/es.xml new file mode 100644 index 000000000..ad5c54a7b --- /dev/null +++ b/gui/devices/common/res/languages/es.xml @@ -0,0 +1,13 @@ +<?xml version="1.0"?> + +<language> + <display>Español</display> + + <resources> + <resource name="font" type="fontoverride" filename="RobotoCondensed-Regular.ttf" scale="100" /> + <resource name="mediumfont" type="fontoverride" filename="RobotoCondensed-Regular.ttf" scale="100" /> + <resource name="filelist" type="fontoverride" filename="RobotoCondensed-Regular.ttf" scale="100" /> + <resource name="fixed" type="fontoverride" filename="DroidSansMono.ttf" scale="100" /> + <string name="install_button_text">Instalar</string> + </resources> +</language> diff --git a/gui/devices/common/res/languages/fi.xml b/gui/devices/common/res/languages/fi.xml new file mode 100644 index 000000000..0c4f5bc87 --- /dev/null +++ b/gui/devices/common/res/languages/fi.xml @@ -0,0 +1,13 @@ +<?xml version="1.0"?> + +<language> + <display>Suomi</display> + + <resources> + <resource name="font" type="fontoverride" filename="RobotoCondensed-Regular.ttf" scale="100" /> + <resource name="mediumfont" type="fontoverride" filename="RobotoCondensed-Regular.ttf" scale="100" /> + <resource name="filelist" type="fontoverride" filename="RobotoCondensed-Regular.ttf" scale="100" /> + <resource name="fixed" type="fontoverride" filename="DroidSansMono.ttf" scale="100" /> + <string name="install_button_text">Asenna</string> + </resources> +</language> diff --git a/gui/gui.cpp b/gui/gui.cpp index 31b61be6d..78e8a7e0c 100644 --- a/gui/gui.cpp +++ b/gui/gui.cpp @@ -517,13 +517,19 @@ static void ors_command_read() fprintf(orsout, "%s", result); LOGINFO("Command cannot be performed, operation in progress.\n"); } else { - if (gui_console_only() == 0) { + if (strlen(command) == 11 && strncmp(command, "dumpstrings", 11) == 0) { + // This cannot be done safely with gui_console_only because gui_console_only updates mCurrentSet + // which makes the resources that we are trying to read unreachable. + gui_set_FILE(orsout); + PageManager::GetResources()->DumpStrings(); + gui_set_FILE(NULL); + } else if (gui_console_only() == 0) { LOGINFO("Console started successfully\n"); gui_set_FILE(orsout); if (strlen(command) > 11 && strncmp(command, "runscript", 9) == 0) { char* filename = command + 11; if (OpenRecoveryScript::copy_script_file(filename) == 0) { - LOGERR("Unable to copy script file\n"); + LOGINFO("Unable to copy script file\n"); } else { OpenRecoveryScript::run_script_file(); } @@ -534,7 +540,7 @@ static void ors_command_read() gui_print("%s = %s\n", varname, temp.c_str()); } else if (strlen(command) > 9 && strncmp(command, "decrypt", 7) == 0) { char* pass = command + 8; - gui_print("Attempting to decrypt data partition via command line.\n"); + gui_msg("decrypt_cmd=Attempting to decrypt data partition via command line."); if (PartitionManager.Decrypt_Device(pass) == 0) { set_page_done = 1; } @@ -753,15 +759,39 @@ std::string gui_parse_text(std::string str) { // This function parses text for DataManager values encompassed by %value% in the XML // and string resources (%@resource_name%) - size_t pos = 0; + size_t pos = 0, next, end; while (1) { - size_t next = str.find('%', pos); + next = str.find("{@", pos); + if (next == std::string::npos) + break; + + end = str.find('}', next + 1); + if (end == std::string::npos) + break; + + std::string var = str.substr(next + 2, (end - next) - 2); + str.erase(next, (end - next) + 1); + + size_t default_loc = var.find('=', 0); + std::string lookup; + if (default_loc == std::string::npos) { + str.insert(next, PageManager::GetResources()->FindString(var)); + } else { + lookup = var.substr(0, default_loc); + std::string default_string = var.substr(default_loc + 1, var.size() - default_loc - 1); + str.insert(next, PageManager::GetResources()->FindString(lookup, default_string)); + } + } + pos = 0; + while (1) + { + next = str.find('%', pos); if (next == std::string::npos) return str; - size_t end = str.find('%', next + 1); + end = str.find('%', next + 1); if (end == std::string::npos) return str; @@ -787,6 +817,10 @@ std::string gui_parse_text(std::string str) } } +std::string gui_lookup(const std::string& resource_name, const std::string& default_value) { + return PageManager::GetResources()->FindString(resource_name, default_value); +} + extern "C" int gui_init(void) { gr_init(); @@ -828,7 +862,7 @@ extern "C" int gui_loadResources(void) { if (PageManager::LoadPackage("TWRP", TWRES "ui.xml", "decrypt")) { - LOGERR("Failed to load base packages.\n"); + gui_err("base_pkg_err=Failed to load base packages."); goto error; } else @@ -849,10 +883,9 @@ extern "C" int gui_loadResources(void) retry_count--; } - if (!PartitionManager.Mount_Settings_Storage(false)) + if (!PartitionManager.Mount_Settings_Storage(true)) { - LOGERR("Unable to mount %s during GUI startup.\n", - theme_path.c_str()); + LOGINFO("Unable to mount %s during GUI startup.\n", theme_path.c_str()); check = 1; } } @@ -863,7 +896,7 @@ extern "C" int gui_loadResources(void) #endif // ifndef TW_OEM_BUILD if (PageManager::LoadPackage("TWRP", TWRES "ui.xml", "main")) { - LOGERR("Failed to load base packages.\n"); + gui_err("base_pkg_err=Failed to load base packages."); goto error; } #ifndef TW_OEM_BUILD @@ -886,7 +919,7 @@ extern "C" int gui_loadCustomResources(void) { #ifndef TW_OEM_BUILD if (!PartitionManager.Mount_Settings_Storage(false)) { - LOGERR("Unable to mount settings storage during GUI startup.\n"); + LOGINFO("Unable to mount settings storage during GUI startup.\n"); return -1; } @@ -898,7 +931,7 @@ extern "C" int gui_loadCustomResources(void) if (PageManager::ReloadPackage("TWRP", theme_path)) { // Custom theme failed to load, try to load stock theme if (PageManager::ReloadPackage("TWRP", TWRES "ui.xml")) { - LOGERR("Failed to load base packages.\n"); + gui_err("base_pkg_err=Failed to load base packages."); goto error; } } diff --git a/gui/gui.hpp b/gui/gui.hpp new file mode 100644 index 000000000..afcd9b0a9 --- /dev/null +++ b/gui/gui.hpp @@ -0,0 +1,33 @@ +/* + Copyright 2015 bigbiff/Dees_Troy TeamWin + This file is part of TWRP/TeamWin Recovery Project. + + TWRP is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + TWRP is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with TWRP. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef _GUI_HPP_HEADER +#define _GUI_HPP_HEADER + +#include "twmsg.h" + +void gui_msg(const char* text); +void gui_warn(const char* text); +void gui_err(const char* text); +void gui_highlight(const char* text); +void gui_msg(Message msg); + +std::string gui_parse_text(std::string inText); +std::string gui_lookup(const std::string& resource_name, const std::string& default_value); + +#endif //_GUI_HPP_HEADER diff --git a/gui/listbox.cpp b/gui/listbox.cpp index d2973bb6e..eeddff954 100644 --- a/gui/listbox.cpp +++ b/gui/listbox.cpp @@ -26,6 +26,9 @@ extern "C" { #include "rapidxml.hpp" #include "objects.hpp" #include "../data.hpp" +#include "pages.hpp" + +extern std::vector<language_struct> Language_List; GUIListBox::GUIListBox(xml_node<>* node) : GUIScrollList(node) { @@ -56,6 +59,21 @@ GUIListBox::GUIListBox(xml_node<>* node) : GUIScrollList(node) DataManager::SetValue(mVariable, attr->value()); // Get the currently selected value for the list DataManager::GetValue(mVariable, currentValue); + if (mVariable == "tw_language") { + std::vector<language_struct>::iterator iter; + for (iter = Language_List.begin(); iter != Language_List.end(); iter++) { + ListItem data; + data.displayName = (*iter).displayvalue; + data.variableValue = (*iter).filename; + data.action = NULL; + if (currentValue == (*iter).filename) { + data.selected = 1; + DataManager::SetValue("tw_language_display", (*iter).displayvalue); + } else + data.selected = 0; + mListItems.push_back(data); + } + } } else allowSelection = false; // allows using listbox as a read-only list or menu diff --git a/gui/objects.hpp b/gui/objects.hpp index 3d217c45f..438905b96 100644 --- a/gui/objects.hpp +++ b/gui/objects.hpp @@ -43,6 +43,15 @@ using namespace rapidxml; #define TW_Y_OFFSET 0 #endif +struct translate_later_struct { + std::string resource_name; // Name of the string resource for looking up + std::string default_value; // Default in case we don't find the string resource + std::string color; // Color for the console... normal, highlight, warning, error + std::string format; // Formatted extra variables like %i, %s + std::string text; // Final, translated, formatted text + bool inline_format; // Indicates if the final text includes an inlined format variable +}; + class RenderObject { public: @@ -356,6 +365,7 @@ protected: int cancelbackup(std::string arg); int checkpartitionlifetimewrites(std::string arg); int mountsystemtoggle(std::string arg); + int setlanguage(std::string arg); int simulate; }; @@ -734,6 +744,7 @@ public: virtual size_t GetItemCount(); virtual void RenderItem(size_t itemindex, int yPos, bool selected); virtual void NotifySelect(size_t item_selected); + static void Translate_Now(); protected: enum SlideoutState { diff --git a/gui/pages.cpp b/gui/pages.cpp index 0511b1ab5..13f3bd7b5 100644 --- a/gui/pages.cpp +++ b/gui/pages.cpp @@ -33,6 +33,7 @@ #include <unistd.h> #include <stdlib.h> #include "../twrp-functions.hpp" +#include "../partitions.hpp" #include <string> @@ -50,6 +51,14 @@ extern "C" { extern int gGuiRunning; +// From ../twrp.cpp +extern bool datamedia; + +// From console.cpp +extern size_t last_message_count; +extern std::vector<std::string> gConsole; +extern std::vector<std::string> gConsoleColor; + std::map<std::string, PageSet*> PageManager::mPageSets; PageSet* PageManager::mCurrentSet; PageSet* PageManager::mBaseSet = NULL; @@ -57,6 +66,7 @@ MouseCursor *PageManager::mMouseCursor = NULL; HardwareKeyboard *PageManager::mHardwareKeyboard = NULL; bool PageManager::mReloadTheme = false; std::string PageManager::mStartPage = "main"; +std::vector<language_struct> Language_List; int tw_x_offset = 0; int tw_y_offset = 0; @@ -670,7 +680,48 @@ PageSet::~PageSet() delete mResources; } -int PageSet::Load(ZipArchive* package, char* xmlFile) +int PageSet::LoadLanguage(char* languageFile, ZipArchive* package) +{ + xml_document<> lang; + xml_node<>* parent; + xml_node<>* child; + std::string resource_source; + + if (languageFile) { + printf("parsing languageFile\n"); + lang.parse<0>(languageFile); + printf("parsing languageFile done\n"); + } else { + return -1; + } + + parent = lang.first_node("language"); + if (!parent) { + LOGERR("Unable to locate language node in language file.\n"); + lang.clear(); + return -1; + } + + child = parent->first_node("display"); + if (child) { + DataManager::SetValue("tw_language_display", child->value()); + resource_source = child->value(); + } else { + LOGERR("language file does not have a display value set\n"); + DataManager::SetValue("tw_language_display", "Not Set"); + resource_source = languageFile; + } + + child = parent->first_node("resources"); + if (child) + mResources->LoadResources(child, package, resource_source); + else + return -1; + lang.clear(); + return 0; +} + +int PageSet::Load(ZipArchive* package, char* xmlFile, char* languageFile) { xml_document<> mDoc; xml_node<>* parent; @@ -735,10 +786,14 @@ int PageSet::Load(ZipArchive* package, char* xmlFile) } else { LOGINFO("XML contains no details tag, no scaling will be applied.\n"); } + + if (languageFile) + LoadLanguage(languageFile, package); + LOGINFO("Loading resources...\n"); child = parent->first_node("resources"); if (child) - mResources->LoadResources(child, package); + mResources->LoadResources(child, package, "theme"); LOGINFO("Loading variables...\n"); child = parent->first_node("variables"); @@ -831,7 +886,7 @@ int PageSet::CheckInclude(ZipArchive* package, xml_document<> *parentDoc) LOGINFO("Loading included resources...\n"); child = parent->first_node("resources"); if (child) - mResources->LoadResources(child, package); + mResources->LoadResources(child, package, "theme"); LOGINFO("Loading included variables...\n"); child = parent->first_node("variables"); @@ -1121,6 +1176,11 @@ int PageSet::NotifyVarChange(std::string varName, std::string value) return (mCurrentPage ? mCurrentPage->NotifyVarChange(varName, value) : -1); } +void PageSet::AddStringResource(std::string resource_source, std::string resource_name, std::string value) +{ + mResources->AddStringResource(resource_source, resource_name, value); +} + char* PageManager::LoadFileToBuffer(std::string filename, ZipArchive* package) { size_t len; char* buffer = NULL; @@ -1181,12 +1241,96 @@ char* PageManager::LoadFileToBuffer(std::string filename, ZipArchive* package) { return buffer; } +void PageManager::LoadLanguageListDir(string dir) { + if (!TWFunc::Path_Exists(dir)) { + LOGERR("LoadLanguageListDir '%s' path not found\n", dir.c_str()); + return; + } + + DIR *d = opendir(dir.c_str()); + struct dirent *p; + + if (d == NULL) { + LOGERR("LoadLanguageListDir error opening dir: '%s', %s\n", dir.c_str(), strerror(errno)); + return; + } + + while ((p = readdir(d))) { + if (!strcmp(p->d_name, ".") || !strcmp(p->d_name, "..") || strlen(p->d_name) < 5) + continue; + + string file = p->d_name; + if (file.substr(strlen(p->d_name) - 4) != ".xml") + continue; + string path = dir + p->d_name; + string file_no_extn = file.substr(0, strlen(p->d_name) - 4); + struct language_struct language_entry; + language_entry.filename = file_no_extn; + char* xmlFile = PageManager::LoadFileToBuffer(dir + p->d_name, NULL); + if (xmlFile == NULL) { + LOGERR("LoadLanguageListDir unable to load '%s'\n", language_entry.filename.c_str()); + continue; + } + xml_document<> *doc = new xml_document<>(); + doc->parse<0>(xmlFile); + + xml_node<>* parent = doc->first_node("language"); + if (!parent) { + LOGERR("Invalid language XML file '%s'\n", language_entry.filename.c_str()); + } else { + xml_node<>* child = parent->first_node("display"); + if (child) { + language_entry.displayvalue = child->value(); + } else { + LOGERR("No display value for '%s'\n", language_entry.filename.c_str()); + language_entry.displayvalue = language_entry.filename; + } + Language_List.push_back(language_entry); + } + doc->clear(); + delete doc; + free(xmlFile); + } + closedir(d); +} + +void PageManager::LoadLanguageList(ZipArchive* package) { + Language_List.clear(); + if (TWFunc::Path_Exists(TWRES "customlanguages")) + TWFunc::removeDir(TWRES "customlanguages", true); + if (package) { + TWFunc::Recursive_Mkdir(TWRES "customlanguages"); + struct utimbuf timestamp = { 1217592000, 1217592000 }; // 8/1/2008 default + mzExtractRecursive(package, "languages", TWRES "customlanguages/", ×tamp, NULL, NULL, NULL); + LoadLanguageListDir(TWRES "customlanguages/"); + } else { + LoadLanguageListDir(TWRES "languages/"); + } +} + +void PageManager::LoadLanguage(string filename) { + string actual_filename; + if (TWFunc::Path_Exists(TWRES "customlanguages/" + filename + ".xml")) + actual_filename = TWRES "customlanguages/" + filename + ".xml"; + else + actual_filename = TWRES "languages/" + filename + ".xml"; + char* xmlFile = PageManager::LoadFileToBuffer(actual_filename, NULL); + if (xmlFile == NULL) + LOGERR("Unable to load '%s'\n", actual_filename.c_str()); + else { + mCurrentSet->LoadLanguage(xmlFile, NULL); + free(xmlFile); + } + PartitionManager.Translate_Partition_Display_Names(); +} + int PageManager::LoadPackage(std::string name, std::string package, std::string startpage) { int fd; ZipArchive zip, *pZip = NULL; long len; char* xmlFile = NULL; + char* languageFile = NULL; PageSet* pageSet = NULL; int ret; MemMapping map; @@ -1201,6 +1345,8 @@ int PageManager::LoadPackage(std::string name, std::string package, std::string LOGINFO("Load XML directly\n"); tw_x_offset = TW_X_OFFSET; tw_y_offset = TW_Y_OFFSET; + LoadLanguageList(NULL); + languageFile = LoadFileToBuffer(TWRES "languages/en.xml", NULL); } else { @@ -1220,6 +1366,8 @@ int PageManager::LoadPackage(std::string name, std::string package, std::string } pZip = &zip; package = "ui.xml"; + LoadLanguageList(pZip); + languageFile = LoadFileToBuffer("languages/en.xml", pZip); } xmlFile = LoadFileToBuffer(package, pZip); @@ -1230,8 +1378,11 @@ int PageManager::LoadPackage(std::string name, std::string package, std::string // Before loading, mCurrentSet must be the loading package so we can find resources pageSet = mCurrentSet; mCurrentSet = new PageSet(xmlFile); - - ret = mCurrentSet->Load(pZip, xmlFile); + ret = mCurrentSet->Load(pZip, xmlFile, languageFile); + if (languageFile) { + free(languageFile); + languageFile = NULL; + } if (ret == 0) { mCurrentSet->SetPage(startpage); @@ -1253,6 +1404,8 @@ int PageManager::LoadPackage(std::string name, std::string package, std::string sysReleaseMap(&map); } free(xmlFile); + if (languageFile) + free(languageFile); return ret; error: @@ -1313,7 +1466,7 @@ int PageManager::ReloadPackage(std::string name, std::string package) if (LoadPackage(name, package, mStartPage) != 0) { - LOGERR("Failed to load package '%s'.\n", package.c_str()); + LOGINFO("Failed to load package '%s'.\n", package.c_str()); mPageSets.insert(std::pair<std::string, PageSet*>(name, set)); return -1; } @@ -1322,6 +1475,7 @@ int PageManager::ReloadPackage(std::string name, std::string package) if (mBaseSet == set) mBaseSet = mCurrentSet; delete set; + GUIConsole::Translate_Now(); return 0; } @@ -1364,6 +1518,18 @@ int PageManager::RunReload() { ret_val = 1; } } + if (ret_val == 0) { + if (DataManager::GetStrValue("tw_language") != "en.xml") { + LOGINFO("Loading language '%s'\n", DataManager::GetStrValue("tw_language").c_str()); + LoadLanguage(DataManager::GetStrValue("tw_language")); + } + } + + // This makes the console re-translate + last_message_count = 0; + gConsole.clear(); + gConsoleColor.clear(); + return ret_val; } @@ -1511,6 +1677,12 @@ int PageManager::NotifyVarChange(std::string varName, std::string value) return (mCurrentSet ? mCurrentSet->NotifyVarChange(varName, value) : -1); } +void PageManager::AddStringResource(std::string resource_source, std::string resource_name, std::string value) +{ + if (mCurrentSet) + mCurrentSet->AddStringResource(resource_source, resource_name, value); +} + extern "C" void gui_notifyVarChange(const char *name, const char* value) { if (!gGuiRunning) diff --git a/gui/pages.hpp b/gui/pages.hpp index 018c2cab2..5dcc9e0b5 100644 --- a/gui/pages.hpp +++ b/gui/pages.hpp @@ -6,7 +6,9 @@ #include "../minzip/Zip.h" #include <vector> #include <map> +#include <string> #include "rapidxml.hpp" +#include "gui.hpp" using namespace rapidxml; enum TOUCH_STATE { @@ -27,12 +29,18 @@ struct COLOR { : red(r), green(g), blue(b), alpha(a) {} }; +struct language_struct { + std::string filename; + std::string displayvalue; +}; + +extern std::vector<language_struct> Language_List; + // Utility Functions int ConvertStrToColor(std::string str, COLOR* color); int gui_forceRender(void); int gui_changePage(std::string newPage); int gui_changeOverlay(std::string newPage); -std::string gui_parse_text(string inText); class Resource; class ResourceManager; @@ -82,7 +90,8 @@ public: virtual ~PageSet(); public: - int Load(ZipArchive* package, char* xmlFile); + int LoadLanguage(char* languageFile, ZipArchive* package); + int Load(ZipArchive* package, char* xmlFile, char* languageFile); int CheckInclude(ZipArchive* package, xml_document<> *parentDoc); Page* FindPage(std::string name); @@ -103,6 +112,7 @@ public: int NotifyVarChange(std::string varName, std::string value); std::vector<xml_node<>*> styles; + void AddStringResource(std::string resource_source, std::string resource_name, std::string value); protected: int LoadPages(xml_node<>* pages); @@ -121,6 +131,8 @@ class PageManager public: // Used by GUI static char* LoadFileToBuffer(std::string filename, ZipArchive* package); + static void LoadLanguageList(ZipArchive* package); + static void LoadLanguage(std::string filename); static int LoadPackage(std::string name, std::string package, std::string startpage); static PageSet* SelectPackage(std::string name); static int ReloadPackage(std::string name, std::string package); @@ -155,9 +167,14 @@ public: static HardwareKeyboard *GetHardwareKeyboard(); static xml_node<>* FindStyle(std::string name); + static void AddStringResource(std::string resource_source, std::string resource_name, std::string value); protected: static PageSet* FindPackage(std::string name); + static void LoadLanguageListDir(std::string dir); + static void Translate_Partition(const char* path, const char* resource_name, const char* default_value); + static void Translate_Partition(const char* path, const char* resource_name, const char* default_value, const char* storage_resource_name, const char* storage_default_value); + static void Translate_Partition_Display_Names(); protected: static std::map<std::string, PageSet*> mPageSets; diff --git a/gui/resources.cpp b/gui/resources.cpp index 253d438f4..a8f41991b 100644 --- a/gui/resources.cpp +++ b/gui/resources.cpp @@ -100,6 +100,13 @@ void Resource::CheckAndScaleImage(gr_surface source, gr_surface* destination, in FontResource::FontResource(xml_node<>* node, ZipArchive* pZip) : Resource(node, pZip) { + origFontSize = 0; + origFont = NULL; + LoadFont(node, pZip); +} + +void FontResource::LoadFont(xml_node<>* node, ZipArchive* pZip) +{ std::string file; xml_attribute<>* attr; @@ -116,12 +123,21 @@ FontResource::FontResource(xml_node<>* node, ZipArchive* pZip) if(file.size() >= 4 && file.compare(file.size()-4, 4, ".ttf") == 0) { m_type = TYPE_TTF; + int font_size = 0; + + if (origFontSize != 0) { + attr = node->first_attribute("scale"); + if (attr == NULL) + return; + font_size = origFontSize * atoi(attr->value()) / 100; + } else { + attr = node->first_attribute("size"); + if (attr == NULL) + return; + font_size = scale_theme_min(atoi(attr->value())); + origFontSize = font_size; + } - attr = node->first_attribute("size"); - if(!attr) - return; - - int size = scale_theme_min(atoi(attr->value())); int dpi = 300; attr = node->first_attribute("dpi"); @@ -130,13 +146,13 @@ FontResource::FontResource(xml_node<>* node, ZipArchive* pZip) if (ExtractResource(pZip, "fonts", file, "", TMP_RESOURCE_NAME) == 0) { - mFont = gr_ttf_loadFont(TMP_RESOURCE_NAME, size, dpi); + mFont = gr_ttf_loadFont(TMP_RESOURCE_NAME, font_size, dpi); unlink(TMP_RESOURCE_NAME); } else { file = std::string(TWRES "fonts/") + file; - mFont = gr_ttf_loadFont(file.c_str(), size, dpi); + mFont = gr_ttf_loadFont(file.c_str(), font_size, dpi); } } else @@ -145,13 +161,28 @@ FontResource::FontResource(xml_node<>* node, ZipArchive* pZip) } } -FontResource::~FontResource() -{ +void FontResource::DeleteFont() { if(mFont) - { - if(m_type == TYPE_TTF) - gr_ttf_freeFont(mFont); + gr_ttf_freeFont(mFont); + mFont = NULL; + if(origFont) + gr_ttf_freeFont(origFont); + origFont = NULL; +} + +void FontResource::Override(xml_node<>* node, ZipArchive* pZip) { + if (!origFont) { + origFont = mFont; + } else if (mFont) { + gr_ttf_freeFont(mFont); + mFont = NULL; } + LoadFont(node, pZip); +} + +FontResource::~FontResource() +{ + DeleteFont(); } ImageResource::ImageResource(xml_node<>* node, ZipArchive* pZip) @@ -255,17 +286,58 @@ AnimationResource* ResourceManager::FindAnimation(const std::string& name) const std::string ResourceManager::FindString(const std::string& name) const { - std::map<std::string, std::string>::const_iterator it = mStrings.find(name); - if (it != mStrings.end()) - return it->second; + if (this != NULL) { + std::map<std::string, string_resource_struct>::const_iterator it = mStrings.find(name); + if (it != mStrings.end()) + return it->second.value; + LOGERR("String resource '%s' not found. No default value.\n", name.c_str()); + PageManager::AddStringResource("NO DEFAULT", name, "[" + name + ("]")); + } else { + LOGINFO("String resources not loaded when looking for '%s'. No default value.\n", name.c_str()); + } return "[" + name + ("]"); } +std::string ResourceManager::FindString(const std::string& name, const std::string& default_string) const +{ + if (this != NULL) { + std::map<std::string, string_resource_struct>::const_iterator it = mStrings.find(name); + if (it != mStrings.end()) + return it->second.value; + LOGERR("String resource '%s' not found. Using default value.\n", name.c_str()); + PageManager::AddStringResource("DEFAULT", name, default_string); + } else { + LOGINFO("String resources not loaded when looking for '%s'. Using default value.\n", name.c_str()); + } + return default_string; +} + +void ResourceManager::DumpStrings() const +{ + if (this == NULL) { + gui_print("No string resources\n"); + return; + } + std::map<std::string, string_resource_struct>::const_iterator it; + gui_print("Dumping all strings:\n"); + for (it = mStrings.begin(); it != mStrings.end(); it++) + gui_print("source: %s: '%s' = '%s'\n", it->second.source.c_str(), it->first.c_str(), it->second.value.c_str()); + gui_print("Done dumping strings\n"); +} + ResourceManager::ResourceManager() { } -void ResourceManager::LoadResources(xml_node<>* resList, ZipArchive* pZip) +void ResourceManager::AddStringResource(std::string resource_source, std::string resource_name, std::string value) +{ + string_resource_struct res; + res.source = resource_source; + res.value = value; + mStrings[resource_name] = res; +} + +void ResourceManager::LoadResources(xml_node<>* resList, ZipArchive* pZip, std::string resource_source) { if (!resList) return; @@ -290,6 +362,26 @@ void ResourceManager::LoadResources(xml_node<>* resList, ZipArchive* pZip) delete res; } } + else if (type == "fontoverride") + { + if (mFonts.size() != 0 && child && child->first_attribute("name")) { + string FontName = child->first_attribute("name")->value(); + size_t font_count = mFonts.size(), i; + bool found = false; + + for (i = 0; i < font_count; i++) { + if (mFonts[i]->GetName() == FontName) { + mFonts[i]->Override(child, pZip); + found = true; + break; + } + } + if (!found) { + LOGERR("Unable to locate font '%s' for override.\n", FontName.c_str()); + } + } else if (mFonts.size() != 0) + LOGERR("Unable to locate font name for type fontoverride.\n"); + } else if (type == "image") { ImageResource* res = new ImageResource(child, pZip); @@ -312,9 +404,12 @@ void ResourceManager::LoadResources(xml_node<>* resList, ZipArchive* pZip) } else if (type == "string") { - if (xml_attribute<>* attr = child->first_attribute("name")) - mStrings[attr->value()] = child->value(); - else + if (xml_attribute<>* attr = child->first_attribute("name")) { + string_resource_struct res; + res.source = resource_source; + res.value = child->value(); + mStrings[attr->value()] = res; + } else error = true; } else diff --git a/gui/resources.hpp b/gui/resources.hpp index 0eb32674d..ce06d9679 100644 --- a/gui/resources.hpp +++ b/gui/resources.hpp @@ -6,6 +6,7 @@ #include <string> #include <vector> #include <map> +#include "rapidxml.hpp" struct ZipArchive; @@ -49,10 +50,19 @@ public: public: void* GetResource() { return this ? mFont : NULL; } int GetHeight() { return gr_getMaxFontHeight(this ? mFont : NULL); } + void Override(xml_node<>* node, ZipArchive* pZip); protected: void* mFont; Type m_type; + +private: + void LoadFont(xml_node<>* node, ZipArchive* pZip); + void DeleteFont(); + +private: + int origFontSize; + void* origFont; }; class ImageResource : public Resource @@ -92,19 +102,26 @@ class ResourceManager public: ResourceManager(); virtual ~ResourceManager(); - void LoadResources(xml_node<>* resList, ZipArchive* pZip); + void AddStringResource(std::string resource_source, std::string resource_name, std::string value); + void LoadResources(xml_node<>* resList, ZipArchive* pZip, std::string resource_source); public: FontResource* FindFont(const std::string& name) const; ImageResource* FindImage(const std::string& name) const; AnimationResource* FindAnimation(const std::string& name) const; std::string FindString(const std::string& name) const; + std::string FindString(const std::string& name, const std::string& default_string) const; + void DumpStrings() const; private: + struct string_resource_struct { + std::string value; + std::string source; + }; std::vector<FontResource*> mFonts; std::vector<ImageResource*> mImages; std::vector<AnimationResource*> mAnimations; - std::map<std::string, std::string> mStrings; + std::map<std::string, string_resource_struct> mStrings; }; #endif // _RESOURCE_HEADER diff --git a/gui/theme/common/landscape.xml b/gui/theme/common/landscape.xml index a6b38a25f..938c8548d 100644..100755 --- a/gui/theme/common/landscape.xml +++ b/gui/theme/common/landscape.xml @@ -193,7 +193,7 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Team Win Recovery Project</text> + <text>{@twrp_header=Team Win Recovery Project}</text> </text> <text style="text_m"> @@ -204,7 +204,7 @@ <button style="main_button"> <placement x="%col1_x_left%" y="%row2_y%"/> - <text>Install</text> + <text>{@install_btn=Install}</text> <actions> <action function="queueclear"/> <action function="set">tw_selectimage=0</action> @@ -214,43 +214,43 @@ <button style="main_button"> <placement x="%center_x%" y="%row2_y%"/> - <text>Wipe</text> + <text>{@wipe_btn=Wipe}</text> <action function="page">wipe</action> </button> <button style="main_button"> <placement x="%col1_x_left%" y="%row6a_y%"/> - <text>Backup</text> + <text>{@backup_btn=Backup}</text> <action function="page">backup</action> </button> <button style="main_button"> <placement x="%center_x%" y="%row6a_y%"/> - <text>Restore</text> + <text>{@restore_btn=Restore}</text> <action function="page">restore</action> </button> <button style="main_button"> <placement x="%col1_x_left%" y="%row11_y%"/> - <text>Mount</text> + <text>{@mount_btn=Mount}</text> <action function="page">mount</action> </button> <button style="main_button"> <placement x="%center_x%" y="%row11_y%"/> - <text>Settings</text> + <text>{@settings_btn=Settings}</text> <action function="page">settings</action> </button> <button style="main_button"> <placement x="%col1_x_left%" y="%row15a_y%"/> - <text>Advanced</text> + <text>{@advanced_btn=Advanced}</text> <action function="page">advanced</action> </button> <button style="main_button"> <placement x="%center_x%" y="%row15a_y%"/> - <text>Reboot</text> + <text>{@reboot_btn=Reboot}</text> <action function="page">reboot</action> </button> </page> @@ -261,25 +261,25 @@ <text style="text_l"> <condition var1="tw_selectimage" var2="0"/> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Install Zip</text> + <text>{@install_zip_hdr=Install Zip}</text> </text> <text style="text_l"> <condition var1="tw_selectimage" var2="1"/> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Install Image</text> + <text>{@install_image_hdr=Install Image}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Select File from %tw_storage_display_name% (%tw_storage_free_size% MB)</text> + <text>{@select_file_from_storage=Select File from %tw_storage_display_name% (%tw_storage_free_size% MB)}</text> </text> <template name="sort_options"/> <fileselector> <placement x="%col1_x_left%" y="%row1a_y%" w="%fileselector_install_folder_width%" h="%fileselector_install_height%"/> - <text>Folders</text> + <text>{@file_selector_folders_hdr=Folders}</text> <filter folders="1" files="0"/> <path name="tw_zip_location" default="/sdcard"/> <data name="select"/> @@ -308,7 +308,7 @@ <button style="main_button_half_width_low"> <condition var1="tw_selectimage" var2="0"/> <placement x="%col_button_right%" y="%row13a_y%"/> - <text>Install Image</text> + <text>{@install_image_btn=Install Image}</text> <actions> <action function="set">tw_selectimage=1</action> <action function="page">install</action> @@ -318,7 +318,7 @@ <button style="main_button_half_width_low"> <condition var1="tw_selectimage" var2="1"/> <placement x="%col_button_right%" y="%row13a_y%"/> - <text>Install Zip</text> + <text>{@install_zip_btn=Install Zip}</text> <actions> <action function="set">tw_selectimage=0</action> <action function="page">install</action> @@ -327,7 +327,7 @@ <button style="main_button_half_width_low"> <placement x="%col_button_right%" y="%row16a_y%"/> - <text>Select Storage</text> + <text>{@select_storage_btn=Select Storage}</text> <actions> <action function="set">tw_back=install</action> <action function="overlay">select_storage</action> @@ -369,32 +369,32 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Install Zip</text> + <text>{@install_zip_hdr=Install Zip}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>%tw_zip_queue_count% of max of 10 Files queued</text> + <text>{@zip_queue_count=%tw_zip_queue_count% of max of 10 Files queued}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>This operation may install incompatible</text> + <text>{@zip_warn1=This operation may install incompatible}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row3_y%" placement="5"/> - <text>software and render your device unusable.</text> + <text>{@zip_warn2=software and render your device unusable.}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row5_y%" placement="5"/> - <text>Press back to cancel adding this zip.</text> + <text>{@zip_back_cancel=Press back to cancel adding this zip.}</text> </text> <text style="text_m_accent"> <placement x="%col1_x_left%" y="%row8_y%"/> - <text>Folder:</text> + <text>{@folder=Folder:}</text> </text> <text style="text_m"> @@ -404,7 +404,7 @@ <text style="text_m_accent"> <placement x="%col1_x_left%" y="%row11_y%"/> - <text>File:</text> + <text>{@file=File:}</text> </text> <text style="text_m"> @@ -414,31 +414,31 @@ <text style="text_m_accent"> <placement x="%col1_x_right%" y="%row8_y%"/> - <text>Options:</text> + <text>{@options=Options:}</text> </text> <checkbox> <placement x="%col1_x_right%" y="%row9_y%"/> - <text>Zip file signature verification</text> + <text>{@zip_sig_chk=Zip signature verification}</text> <data variable="tw_signed_zip_verify"/> </checkbox> <checkbox> <condition var1="tw_has_injecttwrp" var2="1"/> <placement x="%col1_x_right%" y="%row10a_y%"/> - <text>Inject TWRP after install</text> + <text>{@inject_twrp_chk=Inject TWRP after install}</text> <data variable="tw_inject_after_zip"/> </checkbox> <button style="main_button_half_width"> <placement x="%col1_x_left%" y="%row15a_y%"/> - <text>Add more Zips</text> + <text>{@zip_add_btn=Add more Zips}</text> <action function="page">install</action> </button> <button style="main_button_half_width"> <placement x="%col2_x_left%" y="%row15a_y%"/> - <text>Clear Zip Queue</text> + <text>{@zip_clear_btn=Clear Zip Queue}</text> <actions> <action function="queueclear"/> <action function="page">install</action> @@ -446,7 +446,7 @@ </button> <slider> - <text>Swipe to confirm Flash</text> + <text>{@swipe_flash=Swipe to confirm Flash}</text> <action function="flash">flash_zip</action> </slider> @@ -469,7 +469,7 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Install Zip %tw_zip_index% of %tw_zip_queue_count%</text> + <text>{@install_zip_count_hdr=Install Zip %tw_zip_index% of %tw_zip_queue_count%}</text> </text> <text style="text_m"> @@ -492,26 +492,26 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Install Zip</text> + <text>{@install_zip_hdr=Install Zip}</text> </text> <text style="text_m_fail"> <condition var1="tw_operation_status" op="!=" var2="0"/> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Failed</text> + <text>{@failed=Failed}</text> </text> <text style="text_m"> <condition var1="tw_operation_status" var2="0"/> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Successful</text> + <text>{@successful=Successful}</text> </text> <template name="console"/> <button style="main_button_half_width"> <placement x="%col2_x_left%" y="%row15a_y%"/> - <text>Wipe cache/dalvik</text> + <text>{@wipe_cache_dalvik_btn=Wipe cache/dalvik}</text> <actions> <action function="set">tw_back=flash_done</action> <action function="set">tw_action=wipe</action> @@ -519,30 +519,30 @@ <action function="set">tw_has_action2=1</action> <action function="set">tw_action2=wipe</action> <action function="set">tw_action2_param=dalvik</action> - <action function="set">tw_text1=Wipe Cache & Dalvik?</action> - <action function="set">tw_action_text1=Wiping Cache & Dalvik...</action> - <action function="set">tw_complete_text1=Cache & Dalvik Wipe Complete</action> - <action function="set">tw_slider_text=Swipe to Wipe</action> + <action function="set">tw_text1={@wipe_cache_dalvik_confirm=Wipe Cache & Dalvik?}</action> + <action function="set">tw_action_text1={@wiping_cache_dalvik=Wiping Cache & Dalvik...}</action> + <action function="set">tw_complete_text1={@wipe_cache_dalvik_complete=Cache & Dalvik Wipe Complete}</action> + <action function="set">tw_slider_text={@swipe_wipe=Swipe to Wipe}</action> <action function="page">confirm_action</action> </actions> </button> <button style="main_button_half_width"> <placement x="%center_x%" y="%row15a_y%"/> - <text>Reboot System</text> + <text>{@reboot_system_btn=Reboot System}</text> <actions> <action function="set">tw_back=main2</action> <action function="set">tw_action=reboot</action> <action function="set">tw_action_param=system</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=No OS Installed! Are you</action> - <action function="set">tw_text2=sure you wish to reboot?</action> + <action function="set">tw_text1={@no_os1=No OS Installed! Are you}</action> + <action function="set">tw_text2={@no_osrb=sure you wish to reboot?}</action> <action function="set">tw_text3=</action> <action function="set">tw_text4=</action> - <action function="set">tw_action_text1=Rebooting...</action> + <action function="set">tw_action_text1={@rebooting=Rebooting...}</action> <action function="set">tw_action_text2=</action> - <action function="set">tw_complete_text1=Rebooting...</action> - <action function="set">tw_slider_text=Swipe to Reboot</action> + <action function="set">tw_complete_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_slider_text={@swipe_reboot=Swipe to Reboot}</action> <action function="page">rebootcheck</action> </actions> </button> @@ -569,32 +569,17 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Install Image</text> + <text>{@install_image_hdr=Install Image}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Select Target Partition</text> - </text> - - <text style="text_m_accent"> - <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>This operation may install incompatible</text> - </text> - - <text style="text_m_accent"> - <placement x="%center_x%" y="%row3_y%" placement="5"/> - <text>software and render your device unusable.</text> - </text> - - <text style="text_m"> - <placement x="%center_x%" y="%row5_y%" placement="5"/> - <text>Press back to cancel adding this image.</text> + <text>{@install_sel_target=Select Target Partition}</text> </text> <text style="text_m_accent"> <placement x="%col1_x_left%" y="%row8_y%"/> - <text>Folder:</text> + <text>{@folder=Folder:}</text> </text> <text style="text_m"> @@ -604,7 +589,7 @@ <text style="text_m_accent"> <placement x="%col1_x_left%" y="%row11_y%"/> - <text>File:</text> + <text>{@file=File:}</text> </text> <text style="text_m"> @@ -615,20 +600,20 @@ <partitionlist> <placement x="%col1_x_right%" y="%row7a_y%" w="%content_half_width%" h="%partitionlist_flashimage_height%"/> <icon selected="radio_true" unselected="radio_false"/> - <text>Select Partition to Flash Image:</text> + <text>{@flash_image_select=Select Partition to Flash Image:}</text> <data name="tw_flash_partition"/> <listtype name="flashimg"/> </partitionlist> <slider> - <text>Swipe to confirm Flash</text> + <text>{@swipe_flash=Swipe to confirm Flash}</text> <actions> <action function="set">tw_back=flashimage_confirm</action> <action function="set">tw_action=flashimage</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_action_text1=Flashing Image...</action> + <action function="set">tw_action_text1={@flashing_image=Flashing Image...}</action> <action function="set">tw_action_text2=</action> - <action function="set">tw_complete_text1=Image Flashed</action> + <action function="set">tw_complete_text1={@image_flashed=Image Flashed}</action> <action function="page">action_page</action> </actions> <action function="flashimage"/> @@ -678,7 +663,7 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Confirm Action</text> + <text>{@confirm_action=Confirm Action}</text> </text> <text style="text_m"> @@ -708,7 +693,7 @@ <text style="text_m"> <placement x="%center_x%" y="%row7_y%" placement="5"/> - <text>Press back button to cancel.</text> + <text>{@back_cancel=Press back button to cancel.}</text> </text> <slider style="slider_centered"> @@ -750,7 +735,7 @@ <button style="main_button_half_width"> <condition var1="tw_has_cancel" var2="1"/> <placement x="%col2_x_right%" y="%row15a_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <action function="%tw_cancel_action%">%tw_cancel_param%</action> </button> @@ -828,20 +813,20 @@ <text style="text_m_fail"> <condition var1="tw_operation_status" op="!=" var2="0"/> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Failed</text> + <text>{@failed=Failed}</text> </text> <text style="text_m"> <condition var1="tw_operation_status" var2="0"/> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Successful</text> + <text>{@successful=Successful}</text> </text> <template name="console"/> <button style="main_button_half_width"> <placement x="%col2_x_left%" y="%row15a_y%"/> - <text>Back</text> + <text>{@back_btn=Back}</text> <actions> <action function="set">tw_clear_destination=%tw_back%</action> <action function="page">clear_vars</action> @@ -850,20 +835,20 @@ <button style="main_button_half_width"> <placement x="%center_x%" y="%row15a_y%"/> - <text>Reboot System</text> + <text>{@reboot_system_btn=Reboot System}</text> <actions> <action function="set">tw_back=main2</action> <action function="set">tw_action=reboot</action> <action function="set">tw_action_param=system</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=No OS Installed! Are you</action> - <action function="set">tw_text2=sure you wish to reboot?</action> + <action function="set">tw_text1={@no_os1=No OS Installed! Are you}</action> + <action function="set">tw_text2={@no_osrb=sure you wish to reboot?}</action> <action function="set">tw_text3=</action> <action function="set">tw_text4=</action> - <action function="set">tw_action_text1=Rebooting...</action> + <action function="set">tw_action_text1={@rebooting=Rebooting...}</action> <action function="set">tw_action_text2=</action> - <action function="set">tw_complete_text1=Rebooting...</action> - <action function="set">tw_slider_text=Swipe to Reboot</action> + <action function="set">tw_complete_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_slider_text={@swipe_reboot=Swipe to Reboot}</action> <action function="page">rebootcheck</action> </actions> </button> @@ -930,23 +915,23 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Wipe</text> + <text>{@wipe_hdr=Wipe}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Factory Reset</text> + <text>{@factory_reset_hdr=Factory Reset}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>Wipes Data, Cache, and Dalvik</text> + <text>{@factory_reset1=Wipes Data, Cache, and Dalvik}</text> </text> <text style="text_m_accent"> <condition var1="tw_has_data_media" var2="1"/> <placement x="%center_x%" y="%row3_y%" placement="5"/> - <text>(not including internal storage)</text> + <text>{@factory_reset2=(not including internal storage)}</text> </text> <text style="text_m_accent"> @@ -955,33 +940,33 @@ <condition var1="fileexists" var2="/and-sec"/> </conditions> <placement x="%center_x%" y="%row4_y%" placement="5"/> - <text>Android Secure</text> + <text>{@android_secure=Android Secure}</text> </text> <text style="text_m_accent"> <condition var1="tw_has_sdext_partition" var2="1"/> <placement x="%center_x%" y="%row5_y%" placement="5"/> - <text>SD-EXT</text> + <text>{@sdext=SD-EXT}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row7_y%" placement="5"/> - <text>Most of the time this is</text> + <text>{@factory_reset3=Most of the time this is}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row8_y%" placement="5"/> - <text>the only wipe that you need.</text> + <text>{@factory_reset4=the only wipe that you need.}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row10_y%" placement="5"/> - <text>Press back button to cancel.</text> + <text>{@back_cancel=Press back button to cancel.}</text> </text> <button style="main_button_half_width"> <placement x="%col1_x_left%" y="%row15a_y%"/> - <text>Advanced Wipe</text> + <text>{@advanced_wipe_btn=Advanced Wipe}</text> <actions> <action function="set">partitionlisterror=0</action> <action function="page">advancedwipe</action> @@ -991,7 +976,7 @@ <button style="main_button_half_width"> <condition var1="tw_has_data_media" var2="1"/> <placement x="%col2_x_left%" y="%row15a_y%"/> - <text>Format Data</text> + <text>{@format_data_btn=Format Data}</text> <action function="page">formatdata</action> </button> @@ -1001,29 +986,29 @@ <condition var1="tw_has_data_media" var2="0"/> </conditions> <placement x="%col2_x_left%" y="%row15a_y%"/> - <text>Wipe Encryption</text> + <text>{@wipe_enc_btn=Wipe Encryption}</text> <actions> <action function="set">tw_back=wipe</action> <action function="set">tw_action=wipe</action> <action function="set">tw_action_param=DATAMEDIA</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=Wipe Encryption from Data?</action> + <action function="set">tw_text1={@wipe_enc_confirm=Wipe Encryption from Data?}</action> <action function="set">tw_text2=</action> - <action function="set">tw_action_text1=Formatting Data...</action> - <action function="set">tw_complete_text1=Data Format Complete</action> - <action function="set">tw_slider_text=Swipe to Format Data</action> + <action function="set">tw_action_text1={@formatting_data=Formatting Data...}</action> + <action function="set">tw_complete_text1={@format_data_complete=Data Format Complete}</action> + <action function="set">tw_slider_text={@swipe_format_data=Swipe to Format Data}</action> <action function="page">confirm_action</action> </actions> </button> <slider> - <text>Swipe to Factory Reset</text> + <text>{@swipe_factory_reset=Swipe to Factory Reset}</text> <actions> <action function="set">tw_back=wipe</action> <action function="set">tw_action=wipe</action> <action function="set">tw_action_param=data</action> - <action function="set">tw_action_text1=Factory Reset...</action> - <action function="set">tw_complete_text1=Factory Reset Complete</action> + <action function="set">tw_action_text1={@factory_resetting=Factory Reset...}</action> + <action function="set">tw_complete_text1={@factory_reset_complete=Factory Reset Complete}</action> <action function="page">action_page</action> </actions> </slider> @@ -1048,17 +1033,17 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Wipe</text> + <text>{@wipe_hdr=Wipe}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Advanced Wipe</text> + <text>{@advanced_wipe_hdr=Advanced Wipe}</text> </text> <partitionlist> <placement x="%col1_x_left%" y="%row1a_y%" w="%content_width%" h="%partitionlist_wipe_height%"/> - <text>Select Partitions to Wipe:</text> + <text>{@sel_part_wipe=Select Partitions to Wipe:}</text> <data name="tw_wipe_list"/> <listtype name="wipe"/> </partitionlist> @@ -1066,12 +1051,12 @@ <text style="text_m_fail"> <condition var1="partitionlisterror" var2="1"/> <placement x="%col2_x_left%" y="%row14a_y%" placement="5"/> - <text>Invalid partition selection</text> + <text>{@invalid_part_sel=Invalid partition selection}</text> </text> <button style="main_button_m"> <placement x="%col1_x_left%" y="%row15a_y%"/> - <text>Repair or Change File System</text> + <text>{@repair_change_btn=Repair or Change File System}</text> <actions> <action function="checkpartitionlist"/> <action function="page">checkpartitionlist</action> @@ -1079,14 +1064,14 @@ </button> <slider> - <text>Swipe to Wipe</text> + <text>{@swipe_wipe=Swipe to Wipe}</text> <actions> <action function="set">tw_back=advancedwipe</action> <action function="set">tw_action=wipe</action> <action function="set">tw_action_param=LIST</action> - <action function="set">tw_text1=Wipe Selected Partition(s)?</action> - <action function="set">tw_action_text1=Wiping Partition(s)...</action> - <action function="set">tw_complete_text1=Wipe Complete</action> + <action function="set">tw_text1={@wipe_sel_confirm=Wipe Selected Partition(s)?}</action> + <action function="set">tw_action_text1={@wiping_part=Wiping Partition(s)...}</action> + <action function="set">tw_complete_text1={@wipe_complete=Wipe Complete}</action> <action function="page">action_page</action> </actions> </slider> @@ -1107,32 +1092,32 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Wipe</text> + <text>{@wipe_hdr=Wipe}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Format Data</text> + <text>{@format_data_hdr=Format Data}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>Format Data will wipe all of your apps, backups, pictures, videos, media, and</text> + <text>{@format_data_lcp1=Format Data will wipe all of your apps, backups, pictures, videos, media, and}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row3_y%" placement="5"/> - <text>removes encryption on internal storage.</text> + <text>{@format_data_lcp2=removes encryption on internal storage.}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row5_y%" placement="5"/> - <text>This cannot be undone. Press back to cancel.</text> + <text>{@format_data_undo=This cannot be undone.}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row6_y%" placement="5"/> - <text>Type yes to continue.</text> + <text>{@yes_continue=Type yes to continue. Press back to cancel.}</text> </text> <input> @@ -1167,8 +1152,8 @@ <action function="set">tw_back=formatdata</action> <action function="set">tw_action=wipe</action> <action function="set">tw_action_param=DATAMEDIA</action> - <action function="set">tw_action_text1=Formatting Data...</action> - <action function="set">tw_complete_text1=Data Format Complete</action> + <action function="set">tw_action_text1={@formatting_data=Formatting Data...}</action> + <action function="set">tw_complete_text1={@format_data_complete=Data Format Complete}</action> <action function="page">action_page</action> </actions> </action> @@ -1204,83 +1189,83 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Wipe</text> + <text>{@wipe_hdr=Wipe}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Partition Options for: %tw_partition_name%</text> + <text>{@part_opt_hdr=Partition Options for: %tw_partition_name%}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>Mount Point: %tw_partition_mount_point%</text> + <text>{@part_mount_point=Mount Point: %tw_partition_mount_point%}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row3_y%" placement="5"/> - <text>Current file system: %tw_partition_file_system%</text> + <text>{@part_curr_fs=File system: %tw_partition_file_system%}</text> </text> <text style="text_m"> <condition var1="tw_partition_is_present" var2="1"/> <placement x="%col2_x_left%" y="%row5_y%"/> - <text>Present: Yes</text> + <text>{@part_present_yes=Present: Yes}</text> </text> <text style="text_m"> <condition var1="tw_partition_is_present" var2="0"/> <placement x="%col2_x_left%" y="%row5_y%"/> - <text>Present: No</text> + <text>{@part_present_no=Present: No}</text> </text> <text style="text_m"> <condition var1="tw_partition_removable" var2="1"/> <placement x="%col1_x_right%" y="%row5_y%"/> - <text>Removable: Yes</text> + <text>{@part_removable_yes=Removable: Yes}</text> </text> <text style="text_m"> <condition var1="tw_partition_removable" var2="0"/> <placement x="%col1_x_right%" y="%row5_y%"/> - <text>Removable: No</text> + <text>{@part_removable_no=Removable: No}</text> </text> <text style="text_m"> <placement x="%col2_x_left%" y="%row7_y%"/> - <text>Size: %tw_partition_size%MB</text> + <text>{@part_size=Size: %tw_partition_size%MB}</text> </text> <text style="text_m"> <placement x="%col1_x_right%" y="%row7_y%"/> - <text>Used: %tw_partition_used%MB</text> + <text>{@part_used=Used: %tw_partition_used%MB}</text> </text> <text style="text_m"> <placement x="%col2_x_left%" y="%row9_y%"/> - <text>Free: %tw_partition_free%MB</text> + <text>{@part_free=Free: %tw_partition_free%MB}</text> </text> <text style="text_m"> <placement x="%col1_x_right%" y="%row9_y%"/> - <text>Backup Size: %tw_partition_backup_size%MB</text> + <text>{@part_backup_size=Backup Size: %tw_partition_backup_size%MB}</text> </text> <button style="main_button_half_width"> <condition var1="tw_partition_can_resize" op="=" var2="1"/> <placement x="%col1_x_left%" y="%row15a_y%"/> - <text>Resize File System</text> + <text>{@resize_btn=Resize File System}</text> <actions> <action function="set">tw_back=partitionoptions</action> <action function="set">tw_action=resize</action> <action function="set">tw_action_param=%tw_partition_mount_point%</action> <action function="set">tw_has_action2=1</action> <action function="set">tw_action2=getpartitiondetails</action> - <action function="set">tw_text1=Resize %tw_partition_name%?</action> + <action function="set">tw_text1={@resize_confirm=Resize %tw_partition_name%?}</action> <action function="set">tw_text2=</action> - <action function="set">tw_action_text1=Resizing...</action> - <action function="set">tw_complete_text1=Resize Complete</action> - <action function="set">tw_slider_text=Swipe to Resize</action> + <action function="set">tw_action_text1={@resizing=Resizing...}</action> + <action function="set">tw_complete_text1={@resize_complete=Resize Complete}</action> + <action function="set">tw_slider_text={@swipe_resize=Swipe to Resize}</action> <action function="page">confirm_action</action> </actions> </button> @@ -1288,24 +1273,24 @@ <button style="main_button_half_width"> <condition var1="tw_partition_can_repair" op="=" var2="1"/> <placement x="%col2_x_left%" y="%row15a_y%"/> - <text>Repair File System</text> + <text>{@repair_btn=Repair File System}</text> <actions> <action function="set">tw_back=partitionoptions</action> <action function="set">tw_action=repair</action> <action function="set">tw_action_param=%tw_partition_mount_point%</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=Repair %tw_partition_name%?</action> + <action function="set">tw_text1={@repair_confirm=Repair %tw_partition_name%?}</action> <action function="set">tw_text2=</action> - <action function="set">tw_action_text1=Repairing...</action> - <action function="set">tw_complete_text1=Repair Complete</action> - <action function="set">tw_slider_text=Swipe to Repair</action> + <action function="set">tw_action_text1={@repairing=Repairing...}</action> + <action function="set">tw_complete_text1={@repair_complete=Repair Complete}</action> + <action function="set">tw_slider_text={@swipe_repair=Swipe to Repair}</action> <action function="page">confirm_action</action> </actions> </button> <button style="main_button_half_width"> <placement x="%center_x%" y="%row15a_y%"/> - <text>Change File System</text> + <text>{@change_fs_btn=Change File System}</text> <action function="page">selectfilesystem</action> </button> @@ -1345,32 +1330,32 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Wipe</text> + <text>{@wipe_hdr=Wipe}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Change File System for: %tw_partition_name%</text> + <text>{@change_fs_for_hdr=Change File System for: %tw_partition_name%}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>Mount Point: %tw_partition_mount_point%</text> + <text>{@part_mount_point=Mount Point: %tw_partition_mount_point%}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row3_y%" placement="5"/> - <text>Current file system: %tw_partition_file_system%</text> + <text>{@part_curr_fs=File system: %tw_partition_file_system%}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row5_y%" placement="5"/> - <text>Some ROMs or kernels may not support some</text> + <text>{@change_fs_warn1=Some ROMs or kernels may not support some}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row6_y%" placement="5"/> - <text>file systems. Proceed with caution!</text> + <text>{@change_fs_warn2=file systems. Proceed with caution!}</text> </text> <button style="main_button_half_width"> @@ -1383,11 +1368,11 @@ <action function="set">tw_action_param=%tw_partition_mount_point%</action> <action function="set">tw_action_new_file_system=ext2</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=Change %tw_partition_name% to EXT2?</action> - <action function="set">tw_text2=</action> - <action function="set">tw_action_text1=Formatting...</action> - <action function="set">tw_complete_text1=Format Complete</action> - <action function="set">tw_slider_text=Swipe to Change</action> + <action function="set">tw_text1={@change_fs_confirm=Change %tw_partition_name%?}</action> + <action function="set">tw_text2=EXT2</action> + <action function="set">tw_action_text1={@formatting=Formatting...}</action> + <action function="set">tw_complete_text1={@format_complete=Format Complete}</action> + <action function="set">tw_slider_text={@swipe_change_fs=Swipe to Change}</action> <action function="page">confirm_action</action> </actions> </button> @@ -1402,11 +1387,11 @@ <action function="set">tw_action_param=%tw_partition_mount_point%</action> <action function="set">tw_action_new_file_system=ext3</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=Change %tw_partition_name% to EXT3?</action> - <action function="set">tw_text2=</action> - <action function="set">tw_action_text1=Formatting...</action> - <action function="set">tw_complete_text1=Format Complete</action> - <action function="set">tw_slider_text=Swipe to Change</action> + <action function="set">tw_text1={@change_fs_confirm=Change %tw_partition_name%?}</action> + <action function="set">tw_text2=EXT3</action> + <action function="set">tw_action_text1={@formatting=Formatting...}</action> + <action function="set">tw_complete_text1={@format_complete=Format Complete}</action> + <action function="set">tw_slider_text={@swipe_change_fs=Swipe to Change}</action> <action function="page">confirm_action</action> </actions> </button> @@ -1421,11 +1406,11 @@ <action function="set">tw_action_param=%tw_partition_mount_point%</action> <action function="set">tw_action_new_file_system=ext4</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=Change %tw_partition_name% to EXT4?</action> - <action function="set">tw_text2=</action> - <action function="set">tw_action_text1=Formatting...</action> - <action function="set">tw_complete_text1=Format Complete</action> - <action function="set">tw_slider_text=Swipe to Change</action> + <action function="set">tw_text1={@change_fs_confirm=Change %tw_partition_name%?}</action> + <action function="set">tw_text2=EXT4</action> + <action function="set">tw_action_text1={@formatting=Formatting...}</action> + <action function="set">tw_complete_text1={@format_complete=Format Complete}</action> + <action function="set">tw_slider_text={@swipe_change_fs=Swipe to Change}</action> <action function="page">confirm_action</action> </actions> </button> @@ -1440,11 +1425,11 @@ <action function="set">tw_action_param=%tw_partition_mount_point%</action> <action function="set">tw_action_new_file_system=vfat</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=Change %tw_partition_name% to FAT?</action> - <action function="set">tw_text2=</action> - <action function="set">tw_action_text1=Formatting...</action> - <action function="set">tw_complete_text1=Format Complete</action> - <action function="set">tw_slider_text=Swipe to Change</action> + <action function="set">tw_text1={@change_fs_confirm=Change %tw_partition_name%?}</action> + <action function="set">tw_text2=FAT</action> + <action function="set">tw_action_text1={@formatting=Formatting...}</action> + <action function="set">tw_complete_text1={@format_complete=Format Complete}</action> + <action function="set">tw_slider_text={@swipe_change_fs=Swipe to Change}</action> <action function="page">confirm_action</action> </actions> </button> @@ -1459,11 +1444,11 @@ <action function="set">tw_action_param=%tw_partition_mount_point%</action> <action function="set">tw_action_new_file_system=exfat</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=Change %tw_partition_name% to exFAT?</action> - <action function="set">tw_text2=</action> - <action function="set">tw_action_text1=Formatting...</action> - <action function="set">tw_complete_text1=Format Complete</action> - <action function="set">tw_slider_text=Swipe to Change</action> + <action function="set">tw_text1={@change_fs_confirm=Change %tw_partition_name%?}</action> + <action function="set">tw_text2=exFAT</action> + <action function="set">tw_action_text1={@formatting=Formatting...}</action> + <action function="set">tw_complete_text1={@format_complete=Format Complete}</action> + <action function="set">tw_slider_text={@swipe_change_fs=Swipe to Change}</action> <action function="page">confirm_action</action> </actions> </button> @@ -1478,11 +1463,11 @@ <action function="set">tw_action_param=%tw_partition_mount_point%</action> <action function="set">tw_action_new_file_system=f2fs</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=Change %tw_partition_name% to F2FS?</action> - <action function="set">tw_text2=</action> - <action function="set">tw_action_text1=Formatting...</action> - <action function="set">tw_complete_text1=Format Complete</action> - <action function="set">tw_slider_text=Swipe to Change</action> + <action function="set">tw_text1={@change_fs_confirm=Change %tw_partition_name%?}</action> + <action function="set">tw_text2=F2FS</action> + <action function="set">tw_action_text1={@formatting=Formatting...}</action> + <action function="set">tw_complete_text1={@format_complete=Format Complete}</action> + <action function="set">tw_slider_text={@swipe_change_fs=Swipe to Change}</action> <action function="page">confirm_action</action> </actions> </button> @@ -1503,17 +1488,17 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Backup</text> + <text>{@backup_hdr=Backup}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Storage: %tw_storage_display_name% (%tw_storage_free_size% MB)</text> + <text>{@storage_hdr=Storage: %tw_storage_display_name% (%tw_storage_free_size% MB)}</text> </text> <text style="text_m_accent"> <placement x="%col1_x_left%" y="%row2_y%"/> - <text>Name:</text> + <text>{@name=Name:}</text> </text> <text style="text_m"> @@ -1536,14 +1521,14 @@ <partitionlist> <placement x="%col1_x_left%" y="%row4a_y%" w="%content_half_width%" h="%partitionlist_backup_height%"/> - <text>Select Partitions to Backup:</text> + <text>{@sel_part_backup=Select Partitions to Backup:}</text> <data name="tw_backup_list"/> <listtype name="backup"/> </partitionlist> <text style="text_m_accent"> <placement x="%col1_x_right%" y="%row2_y%"/> - <text>Encryption:</text> + <text>{@encryption=Encryption:}</text> </text> <text style="text_m"> @@ -1552,7 +1537,7 @@ <condition var1="tw_encrypt_backup" var2="0"/> </conditions> <placement x="%col1_x_right%" y="%row3_y%"/> - <text>disabled - set a password to enable</text> + <text>{@enc_disabled=disabled - set a password to enable}</text> </text> <text style="text_m"> @@ -1561,7 +1546,7 @@ <condition var1="tw_encrypt_backup" var2="1"/> </conditions> <placement x="%col1_x_right%" y="%row3_y%"/> - <text>enabled</text> + <text>{@enc_enabled=enabled}</text> </text> <fill color="%fileselector_linecolor%"> @@ -1579,30 +1564,30 @@ <text style="text_m_accent"> <placement x="%col1_x_right%" y="%row5_y%"/> - <text>Options:</text> + <text>{@options=Options:}</text> </text> <checkbox> <placement x="%col1_x_right%" y="%row6_y%"/> - <text>Enable compression</text> + <text>{@enable_backup_comp_chk=Enable compression}</text> <data variable="tw_use_compression"/> </checkbox> <checkbox> <placement x="%col1_x_right%" y="%row7a_y%"/> - <text>Skip MD5 generation during backup</text> + <text>{@skip_md5_backup_chk=Skip MD5 generation during backup}</text> <data variable="tw_skip_md5_generate"/> </checkbox> <checkbox> <placement x="%col1_x_right%" y="%row9_y%"/> - <text>Disable Free Space Check</text> + <text>{@disable_backup_space_chk=Disable Free Space Check}</text> <data variable="tw_disable_free_space"/> </checkbox> <button style="main_button_half_width"> <placement x="%col1_x_left%" y="%row15a_y%"/> - <text>Select Storage</text> + <text>{@select_storage_btn=Select Storage}</text> <actions> <action function="set">tw_back=backup</action> <action function="overlay">select_storage</action> @@ -1611,7 +1596,7 @@ <button style="main_button_half_width"> <placement x="%col2_x_left%" y="%row15a_y%"/> - <text>Refresh Sizes</text> + <text>{@refresh_sizes_btn=Refresh Sizes}</text> <actions> <action function="refreshsizes"/> <action function="page">backup</action> @@ -1619,7 +1604,7 @@ </button> <slider> - <text>Swipe to Backup</text> + <text>{@swipe_backup=Swipe to Backup}</text> <action function="page">backup_run</action> </slider> @@ -1636,7 +1621,7 @@ <page name="backupname1"> <action> - <condition var1="tw_backup_name" op="=" var2="(Auto Generate)"/> + <condition var1="tw_backup_name" op="=" var2="{@auto_generate=(Auto Generate)}"/> <action function="generatebackupname"/> </action> @@ -1650,17 +1635,17 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Backup</text> + <text>{@backup_hdr=Backup}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Storage: %tw_storage_display_name% (%tw_storage_free_size% MB)</text> + <text>{@storage_hdr=Storage: %tw_storage_display_name% (%tw_storage_free_size% MB)}</text> </text> <text style="text_m_accent"> <placement x="%col1_x_left%" y="%row2_y%"/> - <text>Name:</text> + <text>{@name=Name:}</text> </text> <input> @@ -1688,21 +1673,21 @@ <text style="text_m_fail"> <condition var1="tw_fileexists" var2="1"/> <placement x="%col1_x_left%" y="%row4_y%"/> - <text>A backup with that name already exists!</text> + <text>{@backup_name_exists=A backup with that name already exists!}</text> </text> <button style="main_button_half_width_low"> <placement x="%indent%" y="%row5_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <actions> - <action function="set">tw_backup_name=(Auto Generate)</action> + <action function="set">tw_backup_name={@auto_generate=(Auto Generate)}</action> <action function="page">backup</action> </actions> </button> <button style="main_button_half_width_low"> <placement x="%date_button_x%" y="%row5_y%"/> - <text>Append Date</text> + <text>{@append_date_btn=Append Date}</text> <action function="appenddatetobackupname"/> </button> @@ -1711,7 +1696,7 @@ <action> <touch key="home"/> <actions> - <action function="set">tw_backup_name=(Auto Generate)</action> + <action function="set">tw_backup_name={@auto_generate=(Auto Generate)}</action> <action function="page">main</action> </actions> </action> @@ -1719,7 +1704,7 @@ <action> <touch key="back"/> <actions> - <action function="set">tw_backup_name=(Auto Generate)</action> + <action function="set">tw_backup_name={@auto_generate=(Auto Generate)}</action> <action function="page">backup</action> </actions> </action> @@ -1730,17 +1715,17 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Backup</text> + <text>{@backup_hdr=Backup}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Storage: %tw_storage_display_name% (%tw_storage_free_size% MB)</text> + <text>{@storage_hdr=Storage: %tw_storage_display_name% (%tw_storage_free_size% MB)}</text> </text> <text style="text_m_accent"> <placement x="%col1_x_right%" y="%row2_y%"/> - <text>Encryption Password:</text> + <text>{@enter_pass=Enter Password:}</text> </text> <input> @@ -1763,12 +1748,12 @@ <text style="text_m_fail"> <condition var1="tw_password_not_match" var2="1"/> <placement x="%col1_x_right%" y="%row4_y%"/> - <text>Passwords do not match!</text> + <text>{@pass_not_match=Passwords do not match!}</text> </text> <button style="main_button_half_width_low"> <placement x="%center_x%" y="%row5_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <actions> <action function="set">tw_encrypt_backup=0</action> <action function="set">tw_backup_password=</action> @@ -1797,17 +1782,17 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Backup</text> + <text>{@backup_hdr=Backup}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Storage: %tw_storage_display_name% (%tw_storage_free_size% MB)</text> + <text>{@storage_hdr=Storage: %tw_storage_display_name% (%tw_storage_free_size% MB)}</text> </text> <text style="text_m_accent"> <placement x="%col1_x_right%" y="%row2_y%"/> - <text>Encryption Password:</text> + <text>{@enter_pass=Enter Password:}</text> </text> <input> @@ -1824,12 +1809,12 @@ <text style="text_m"> <placement x="%col1_x_right%" y="%row4_y%"/> - <text>Enter Password again!</text> + <text>{@enter_pass2=Enter Password again:}</text> </text> <button style="main_button_half_width_low"> <placement x="%center_x%" y="%row5_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <actions> <action function="set">tw_encrypt_backup=0</action> <action function="set">tw_backup_password=</action> @@ -1895,7 +1880,7 @@ <text style="text_m_accent"> <placement x="%progress_text_x%" y="%progress_text_y%"/> - <text>Progress:</text> + <text>{@progress=Progress:}</text> </text> <text style="text_m"> @@ -1910,7 +1895,7 @@ <button style="main_button_half_width"> <placement x="%col2_x_right%" y="%row15a_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <action function="cancelbackup"/> </button> @@ -1923,7 +1908,7 @@ <condition var1="tw_cancel_backup" var2="0"/> <actions> <action function="set">tw_back=backup</action> - <action function="set">tw_complete_text1=Backup Complete</action> + <action function="set">tw_complete_text1={@backup_complete=Backup Complete}</action> <action function="set">tw_show_reboot=1</action> <action function="page">action_complete</action> </actions> @@ -1934,7 +1919,7 @@ <condition var1="tw_cancel_backup" var2="1"/> <actions> <action function="set">tw_back=backup</action> - <action function="set">tw_complete_text1=Backup Cancelled</action> + <action function="set">tw_complete_text1={@backup_cancel=Backup Cancelled}</action> <action function="set">tw_show_reboot=1</action> <action function="page">action_complete</action> </actions> @@ -1946,19 +1931,19 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Restore</text> + <text>{@restore_hdr=Restore}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Select Backup from %tw_storage_display_name% (%tw_storage_free_size% MB)</text> + <text>{@restore_sel_store_hdr=Select Backup from %tw_storage_display_name% (%tw_storage_free_size% MB)}</text> </text> <template name="sort_options"/> <fileselector> <placement x="%col1_x_left%" y="%row1a_y%" w="%content_quarter_width%" h="%fileselector_install_height%"/> - <text>Select Package to Restore:</text> + <text>{@restore_sel_pack_fs=Select Package to Restore:}</text> <filter folders="1" files="0" nav="0"/> <path name="tw_backups_folder"/> <data name="tw_restore" default=""/> @@ -1967,7 +1952,7 @@ <button style="main_button_half_width_low"> <placement x="%col_button_right%" y="%row16a_y%"/> - <text>Select Storage</text> + <text>{@select_storage_btn=Select Storage}</text> <actions> <action function="set">tw_back=restore</action> <action function="overlay">select_storage</action> @@ -2015,17 +2000,17 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Restore</text> + <text>{@restore_hdr=Restore}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Encrypted Backup</text> + <text>{@restore_enc_backup_hdr=Encrypted Backup}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>Enter Password:</text> + <text>{@enter_pass=Enter Password:}</text> </text> <input> @@ -2048,12 +2033,12 @@ <text style="text_m_fail"> <condition var1="tw_password_fail" var2="1"/> <placement x="%col1_x_left%" y="%row5_y%"/> - <text>Password failed, please try again!</text> + <text>{@restore_dec_fail=Password failed, please try again!}</text> </text> <button style="main_button_half_width_low"> <placement x="%indent%" y="%row6_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <actions> <action function="set">tw_page_done=1</action> <action function="page">restore</action> @@ -2062,16 +2047,17 @@ <button style="main_button_half_width_low"> <placement x="%col_button_right%" y="%row6_y%"/> - <text>Delete Backup</text> + <text>{@del_backup_btn=Delete Backup}</text> <actions> <action function="set">tw_back=restore</action> <action function="set">tw_action=cmd</action> <action function="set">tw_action_param=cd %tw_backups_folder% && rm -rf "%tw_restore_name%"</action> - <action function="set">tw_text1=Delete Backup? %tw_restore_name%</action> - <action function="set">tw_text2=This cannot be undone!</action> - <action function="set">tw_action_text1=Deleting Backup...</action> - <action function="set">tw_complete_text1=Backup Delete Complete</action> - <action function="set">tw_slider_text=Swipe to Delete</action> + <action function="set">tw_text1={@del_backup_confirm=Delete Backup?}</action> + <action function="set">tw_text2=%tw_restore_name%</action> + <action function="set">tw_text4={@del_backup_confirm2=This cannot be undone!}</action> + <action function="set">tw_action_text1={@deleting_backup=Deleting Backup...}</action> + <action function="set">tw_complete_text1={@backup_deleted=Backup Delete Complete}</action> + <action function="set">tw_slider_text={@swipe_delete=Swipe to Delete}</action> <action function="page">confirm_action</action> </actions> </button> @@ -2094,12 +2080,12 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Restore</text> + <text>{@restore_hdr=Restore}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Encrypted Backup - Trying Decryption</text> + <text>{@restore_try_decrypt=Encrypted Backup - Trying Decryption}</text> </text> <template name="console"/> @@ -2138,17 +2124,17 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Restore</text> + <text>{@restore_hdr=Restore}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Backup made on %tw_restore_file_date%</text> + <text>{@restore_backup_date=Backup made on %tw_restore_file_date%}</text> </text> <text style="text_m_accent"> <placement x="%col1_x_left%" y="%row2_y%"/> - <text>Name:</text> + <text>{@name=Name:}</text> </text> <text style="text_m"> @@ -2172,41 +2158,41 @@ <partitionlist> <placement x="%col1_x_left%" y="%row4a_y%" w="%content_half_width%" h="%partitionlist_backup_height%"/> - <text>Select Partitions to Restore:</text> + <text>{@restore_sel_part=Select Partitions to Restore:}</text> <data name="tw_restore_list" selectedlist="tw_restore_selected"/> <listtype name="restore"/> </partitionlist> <text style="text_m_accent"> <placement x="%col1_x_right%" y="%row5_y%"/> - <text>Options:</text> + <text>{@options=Options:}</text> </text> <checkbox> <placement x="%col1_x_right%" y="%row6_y%"/> - <text>Enable MD5 Verification of Backup Files</text> + <text>{@retore_enable_md5_chk=Enable MD5 Verification of Backup Files}</text> <data variable="tw_skip_md5_check"/> </checkbox> <button style="main_button_half_width"> <placement x="%col2_x_left%" y="%row15a_y%"/> - <text>Delete Backup</text> + <text>{@del_backup_btn=Delete Backup}</text> <actions> <action function="set">tw_back=restore</action> <action function="set">tw_action=cmd</action> <action function="set">tw_action_param=cd %tw_backups_folder% && rm -rf "%tw_restore_name%"</action> - <action function="set">tw_text1=Delete Backup?</action> + <action function="set">tw_text1={@del_backup_confirm=Delete Backup?}</action> <action function="set">tw_text2=%tw_restore_name%</action> - <action function="set">tw_text4=This cannot be undone!</action> - <action function="set">tw_action_text1=Deleting Backup...</action> - <action function="set">tw_complete_text1=Backup Delete Complete</action> - <action function="set">tw_slider_text=Swipe to Delete</action> + <action function="set">tw_text4={@del_backup_confirm2=This cannot be undone!}</action> + <action function="set">tw_action_text1={@deleting_backup=Deleting Backup...}</action> + <action function="set">tw_complete_text1={@backup_deleted=Backup Delete Complete}</action> + <action function="set">tw_slider_text={@swipe_delete=Swipe to Delete}</action> <action function="page">confirm_action</action> </actions> </button> <slider> - <text>Swipe to Restore</text> + <text>{@swipe_restore=Swipe to Restore}</text> <action function="page">restore_run</action> </slider> @@ -2226,17 +2212,17 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Restore</text> + <text>{@restore_hdr=Restore}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Rename Backup</text> + <text>{@rename_backup_hdr=Rename Backup}</text> </text> <text style="text_m_accent"> <placement x="%col1_x_left%" y="%row2_y%"/> - <text>Name:</text> + <text>{@name=Name:}</text> </text> <input> @@ -2248,11 +2234,11 @@ <action function="set">tw_back=restore</action> <action function="set">tw_action=cmd</action> <action function="set">tw_action_param=cd %tw_backups_folder% && mv "%tw_restore_name%" "%tw_backup_rename%"</action> - <action function="set">tw_text1=Rename Backup?</action> - <action function="set">tw_text2=This cannot be undone!</action> - <action function="set">tw_action_text1=Renaming Backup...</action> - <action function="set">tw_complete_text1=Backup Rename Complete</action> - <action function="set">tw_slider_text=Swipe to Rename</action> + <action function="set">tw_text1={@rename_backup_confirm=Rename Backup?}</action> + <action function="set">tw_text2={@rename_backup_confirm2=This cannot be undone!}</action> + <action function="set">tw_action_text1={@renaming_backup=Renaming Backup...}</action> + <action function="set">tw_complete_text1={@rename_backup_complete=Backup Rename Complete}</action> + <action function="set">tw_slider_text={@swipe_to_rename=Swipe to Rename}</action> <action function="set">tw_filecheck=%tw_backups_folder%/%tw_backup_rename%</action> <action function="set">tw_existpage=renamebackup</action> <action function="set">tw_notexistpage=confirm_action</action> @@ -2272,12 +2258,12 @@ <text style="text_m_fail"> <condition var1="tw_fileexists" var2="1"/> <placement x="%col1_x_left%" y="%row4_y%"/> - <text>A backup with that name already exists!</text> + <text>{@backup_name_exists=A backup with that name already exists!}</text> </text> <button style="main_button_half_width_low"> <placement x="%indent%" y="%row5_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <action function="page">restore_select</action> </button> @@ -2299,7 +2285,7 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Restore</text> + <text>{@restore_hdr=Restore}</text> </text> <text style="text_m"> @@ -2313,7 +2299,7 @@ <text style="text_m_accent"> <placement x="%progress_text_x%" y="%progress_text_y%"/> - <text>Progress:</text> + <text>{@progress=Progress:}</text> </text> <text style="text_m"> @@ -2325,7 +2311,7 @@ <condition var1="tw_operation_state" var2="1"/> <actions> <action function="set">tw_back=restore_select</action> - <action function="set">tw_complete_text1=Restore Complete</action> + <action function="set">tw_complete_text1={@restore_complete=Restore Complete}</action> <action function="set">tw_show_reboot=1</action> <action function="page">action_complete</action> </actions> @@ -2341,24 +2327,24 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Mount</text> + <text>{@mount_hdr=Mount}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Storage: %tw_storage_display_name% (%tw_storage_free_size% MB)</text> + <text>{@storage_hdr=Storage: %tw_storage_display_name% (%tw_storage_free_size% MB)}</text> </text> <partitionlist> <placement x="%col1_x_left%" y="%row1a_y%" w="%content_width%" h="%partitionlist_mount_height%"/> - <text>Select Partitions to Mount:</text> + <text>{@mount_sel_part=Select Partitions to Mount:}</text> <listtype name="mount"/> </partitionlist> <button style="checkbox"> <condition var1="tw_mount_system_ro" op="=" var2="0"/> <placement x="%col1_x_left%" y="%row14_y%" textplacement="6"/> - <text>Mount system partition read-only</text> + <text>{@mount_sys_ro_chk=Mount system partition read-only}</text> <image resource="checkbox_false"/> <action function="mountsystemtoggle">1</action> </button> @@ -2366,7 +2352,7 @@ <button style="checkbox"> <condition var1="tw_mount_system_ro" op="!=" var2="0"/> <placement x="%col1_x_left%" y="%row14_y%" textplacement="6"/> - <text>Mount system partition read-only</text> + <text>{@mount_sys_ro_chk=Mount system partition read-only}</text> <image resource="checkbox_true"/> <actions> <action function="set">tw_lifetime_writes=2</action> @@ -2377,7 +2363,7 @@ <button style="main_button_half_width"> <condition var1="tw_has_usb_storage" var2="1"/> <placement x="%col1_x_left%" y="%row15a_y%"/> - <text>Mount USB Storage</text> + <text>{@mount_usb_storage_btn=Mount USB Storage}</text> <action function="page">usb_mount</action> </button> @@ -2387,13 +2373,13 @@ <condition var1="tw_is_decrypted" var2="0"/> </conditions> <placement x="%col2_x_left%" y="%row15a_y%"/> - <text>Decrypt Data</text> + <text>{@decrypt_data_btn=Decrypt Data}</text> <action function="page">decrypt</action> </button> <button style="main_button_half_width"> <placement x="%center_x%" y="%row15a_y%"/> - <text>Select Storage</text> + <text>{@select_storage_btn=Select Storage}</text> <actions> <action function="set">tw_back=mount</action> <action function="overlay">select_storage</action> @@ -2406,7 +2392,7 @@ <condition var1="tw_mtp_enabled" var2="0"/> </conditions> <placement x="%col2_x_right%" y="%row15a_y%"/> - <text>Enable MTP</text> + <text>{@enable_mtp_btn=Enable MTP}</text> <action function="startmtp"/> </button> @@ -2416,7 +2402,7 @@ <condition var1="tw_mtp_enabled" var2="1"/> </conditions> <placement x="%col2_x_right%" y="%row15a_y%"/> - <text>Disable MTP</text> + <text>{@disable_mtp_btn=Disable MTP}</text> <action function="stopmtp"/> </button> @@ -2436,32 +2422,32 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Mount</text> + <text>{@mount_hdr=Mount}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>USB Storage</text> + <text>{usb_storage_hdr=USB Storage}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>USB Storage Mounted</text> + <text>{@usb_stor_mnt1=USB Storage Mounted}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row4_y%" placement="5"/> - <text>Be sure to safely remove your device</text> + <text>{@usb_stor_mnt2=Be sure to safely remove your device}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row5_y%" placement="5"/> - <text>from your computer before unmounting!</text> + <text>{@usb_stor_mnt3=from your computer before unmounting!}</text> </text> <button style="main_button_half_width"> <placement x="%col1_x_left%" y="%row15a_y%"/> - <text>Unmount USB-Storage</text> + <text>{@unmount_btn=Unmount}</text> <action function="page">usb_umount</action> </button> @@ -2509,23 +2495,24 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Reboot Menu</text> + <text>{@reboot_hdr=Reboot Menu}</text> </text> <button style="main_button"> <condition var1="tw_reboot_system" var2="1"/> <placement x="%col1_x_left%" y="%row2_y%"/> - <text>System</text> + <text>{@rb_system_btn=System}</text> <actions> <action function="set">tw_back=reboot</action> <action function="set">tw_action=reboot</action> <action function="set">tw_action_param=system</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=No OS Installed! Are you</action> - <action function="set">tw_text2=sure you wish to reboot?</action> - <action function="set">tw_action_text1=Rebooting...</action> - <action function="set">tw_complete_text1=Rebooting...</action> - <action function="set">tw_slider_text=Swipe to Reboot</action> + <action function="set">tw_text1={@no_os1=No OS Installed! Are you}</action> + <action function="set">tw_text2={@no_osrb=sure you wish to reboot?}</action> + <action function="set">tw_action_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_action_text2=</action> + <action function="set">tw_complete_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_slider_text={@swipe_reboot=Swipe to Reboot}</action> <action function="page">rebootcheck</action> </actions> </button> @@ -2533,17 +2520,17 @@ <button style="main_button"> <condition var1="tw_reboot_poweroff" var2="1"/> <placement x="%center_x%" y="%row2_y%"/> - <text>Power Off</text> + <text>{@rb_poweroff_btn=Power Off}</text> <actions> <action function="set">tw_back=reboot</action> <action function="set">tw_action=reboot</action> <action function="set">tw_action_param=poweroff</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=No OS Installed! Are you</action> - <action function="set">tw_text2=sure you wish to power off?</action> - <action function="set">tw_action_text1=Turning Off...</action> - <action function="set">tw_complete_text1=Turning Off...</action> - <action function="set">tw_slider_text=Swipe to Power Off</action> + <action function="set">tw_text1={@no_os1=No OS Installed! Are you}</action> + <action function="set">tw_text2={@no_ospo=sure you wish to power off?}</action> + <action function="set">tw_action_text1={@turning_off=Turning Off...}</action> + <action function="set">tw_complete_text1={@turning_off=Turning Off...}</action> + <action function="set">tw_slider_text={@swipe_power_off=Swipe to Power Off}</action> <action function="page">rebootcheck</action> </actions> </button> @@ -2551,17 +2538,17 @@ <button style="main_button"> <condition var1="tw_reboot_recovery" var2="1"/> <placement x="%col1_x_left%" y="%row6a_y%"/> - <text>Recovery</text> + <text>{@rb_recovery_btn=Recovery}</text> <actions> <action function="set">tw_back=reboot</action> <action function="set">tw_action=reboot</action> <action function="set">tw_action_param=recovery</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=No OS Installed! Are you</action> - <action function="set">tw_text2=sure you wish to reboot?</action> - <action function="set">tw_action_text1=Rebooting...</action> - <action function="set">tw_complete_text1=Rebooting...</action> - <action function="set">tw_slider_text=Swipe to Reboot</action> + <action function="set">tw_text1={@no_os1=No OS Installed! Are you}</action> + <action function="set">tw_text2={@no_osrb=sure you wish to reboot?}</action> + <action function="set">tw_action_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_complete_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_slider_text={@swipe_reboot=Swipe to Reboot}</action> <action function="page">rebootcheck</action> </actions> </button> @@ -2569,17 +2556,17 @@ <button style="main_button"> <condition var1="tw_reboot_bootloader" var2="1"/> <placement x="%center_x%" y="%row6a_y%"/> - <text>Bootloader</text> + <text>{@rb_bootloader_btn=Bootloader}</text> <actions> <action function="set">tw_back=reboot</action> <action function="set">tw_action=reboot</action> <action function="set">tw_action_param=bootloader</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=No OS Installed! Are you</action> - <action function="set">tw_text2=sure you wish to reboot?</action> - <action function="set">tw_action_text1=Rebooting...</action> - <action function="set">tw_complete_text1=Rebooting...</action> - <action function="set">tw_slider_text=Swipe to Reboot</action> + <action function="set">tw_text1={@no_os1=No OS Installed! Are you}</action> + <action function="set">tw_text2={@no_osrb=sure you wish to reboot?}</action> + <action function="set">tw_action_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_complete_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_slider_text={@swipe_reboot=Swipe to Reboot}</action> <action function="page">rebootcheck</action> </actions> </button> @@ -2587,17 +2574,17 @@ <button style="main_button"> <condition var1="tw_download_mode" var2="1"/> <placement x="%col1_x_left%" y="%row11_y%"/> - <text>Download</text> + <text>{@rb_download_btn=Download}</text> <actions> <action function="set">tw_back=reboot</action> <action function="set">tw_action=reboot</action> <action function="set">tw_action_param=download</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=No OS Installed! Are you</action> - <action function="set">tw_text2=sure you wish to reboot?</action> - <action function="set">tw_action_text1=Rebooting...</action> - <action function="set">tw_complete_text1=Rebooting...</action> - <action function="set">tw_slider_text=Swipe to Reboot</action> + <action function="set">tw_text1={@no_os1=No OS Installed! Are you}</action> + <action function="set">tw_text2={@no_osrb=sure you wish to reboot?}</action> + <action function="set">tw_action_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_complete_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_slider_text={@swipe_reboot=Swipe to Reboot}</action> <action function="page">rebootcheck</action> </actions> </button> @@ -2618,39 +2605,39 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Unmodified System Partition</text> + <text>{@sys_ro_hdr=Unmodified System Partition}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>Keep System Read only?</text> + <text>{@sys_ro_keep=Keep System Read only?}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row4_y%" placement="5"/> - <text>TWRP can leave your system partition unmodified to make it easier for you to take official updates.</text> + <text>{@sys_rol1=TWRP can leave your system partition unmodified to make it easier for you to take official updates.}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row5_y%" placement="5"/> - <text>TWRP will be unable to prevent the stock ROM from replacing TWRP and will not offer to root your device.</text> + <text>{@sys_rol2=TWRP will be unable to prevent the stock ROM from replacing TWRP and will not offer to root your device.}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row6_y%" placement="5"/> - <text>Installing zips or performing adb operations may still modify the system partition.</text> + <text>{@sys_rol3=Installing zips or performing adb operations may still modify the system partition.}</text> </text> <checkbox> <condition var1="tw_is_encrypted" var2="0"/> <placement x="%col1_x_left%" y="%row14_y%"/> - <text>Never show this screen during boot again</text> + <text>{@sys_ro_never_show_chk=Never show this screen during boot again}</text> <data variable="tw_never_show_system_ro_page"/> </checkbox> <button style="main_button_half_width"> <placement x="%col1_x_left%" y="%row15a_y%"/> - <text>Keep Read Only</text> + <text>{@sys_ro_keep_ro_btn=Keep Read Only}</text> <actions> <action function="mountsystemtoggle">1</action> <action function="set">tw_page_done=1</action> @@ -2659,7 +2646,7 @@ </button> <slider> - <text>Swipe to Allow Modifications</text> + <text>{@swipe_allow_mod=Swipe to Allow Modifications}</text> <actions> <action function="mountsystemtoggle">0</action> <action function="set">tw_page_done=1</action> @@ -2673,42 +2660,42 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Settings</text> + <text>{@settings_hdr=Settings}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>General Settings</text> + <text>{@settings_gen_hdr=General Settings}</text> </text> <template name="tabs_settings"/> <fill color="%text_color%"> - <placement x="0" y="%row_tab_y%" w="%tab4_width%" h="%tab_indicator_height%"/> + <placement x="0" y="%row_tab_y%" w="%tab5_width%" h="%tab_indicator_height%"/> </fill> <listbox style="scrolllist"> <placement x="%col1_x_left%" y="%row3a_y%" w="%content_half_width%" h="%listbox_settings_height%"/> <icon selected="checkbox_true" unselected="checkbox_false"/> - <listitem name="Zip file signature verification"> + <listitem name="{@zip_sig_chk=Zip signature verification}"> <data variable="tw_signed_zip_verify"/> </listitem> - <listitem name="Use rm -rf instead of formatting"> + <listitem name="{@use_rmrf_chk=Use rm -rf instead of formatting}"> <data variable="tw_rm_rf"/> </listitem> - <listitem name="Skip MD5 generation during backup"> + <listitem name="{@skip_md5_backup_chk=Skip MD5 generation during backup}"> <data variable="tw_skip_md5_generate"/> </listitem> - <listitem name="Enable MD5 verification of backup files"> + <listitem name="{@retore_enable_md5_chk=Enable MD5 verification of backup files}"> <data variable="tw_skip_md5_check"/> </listitem> - <listitem name="Use 24-hour clock"> + <listitem name="{@use24clock_chk=Use 24-hour clock}"> <data variable="tw_military_time"/> </listitem> - <listitem name="Simulate actions for theme testing"> + <listitem name="{@simact_chk=Simulate actions for theme testing}"> <data variable="tw_simulate_actions"/> </listitem> - <listitem name="Simulate failure for actions"> + <listitem name="{@simfail_chk=Simulate failure for actions}"> <condition var1="tw_simulate_actions" var2="1"/> <data variable="tw_simulate_fail"/> </listitem> @@ -2716,14 +2703,14 @@ <checkbox> <placement x="%col1_x_right%" y="%row3a_y%"/> - <text>Reversed navbar layout</text> + <text>{@rev_navbar_chk=Reversed navbar layout}</text> <data variable="tw_samsung_navbar"/> </checkbox> <button style="radiobutton"> <condition var1="tw_navbar_button_position" op="!=" var2="0"/> <placement x="%col1_x_right%" y="%row5_y%" textplacement="6"/> - <text>Center navbar buttons</text> + <text>{@ctr_navbar_rdo=Center navbar buttons}</text> <image resource="radio_false"/> <action function="set">tw_navbar_button_position=0</action> </button> @@ -2731,7 +2718,7 @@ <button style="radiobutton"> <condition var1="tw_navbar_button_position" var2="0"/> <placement x="%col1_x_right%" y="%row5_y%" textplacement="6"/> - <text>Center navbar buttons</text> + <text>{@ctr_navbar_rdo=Center navbar buttons}</text> <image resource="radio_true"/> <action function="set">tw_navbar_button_position=0</action> </button> @@ -2739,7 +2726,7 @@ <button style="radiobutton"> <condition var1="tw_navbar_button_position" op="!=" var2="1"/> <placement x="%col1_x_right%" y="%row6a_y%" textplacement="6"/> - <text>Left align navbar buttons</text> + <text>{@lft_navbar_rdo=Left align navbar buttons}</text> <image resource="radio_false"/> <action function="set">tw_navbar_button_position=1</action> </button> @@ -2747,7 +2734,7 @@ <button style="radiobutton"> <condition var1="tw_navbar_button_position" var2="1"/> <placement x="%col1_x_right%" y="%row6a_y%" textplacement="6"/> - <text>Left align navbar buttons</text> + <text>{@lft_navbar_rdo=Left align navbar buttons}</text> <image resource="radio_true"/> <action function="set">tw_navbar_button_position=1</action> </button> @@ -2755,7 +2742,7 @@ <button style="radiobutton"> <condition var1="tw_navbar_button_position" op="!=" var2="2"/> <placement x="%col1_x_right%" y="%row8_y%" textplacement="6"/> - <text>Right align navbar buttons</text> + <text>{@rht_navbar_rdo=Right align navbar buttons}</text> <image resource="radio_false"/> <action function="set">tw_navbar_button_position=2</action> </button> @@ -2763,14 +2750,14 @@ <button style="radiobutton"> <condition var1="tw_navbar_button_position" var2="2"/> <placement x="%col1_x_right%" y="%row8_y%" textplacement="6"/> - <text>Right align navbar buttons</text> + <text>{@rht_navbar_rdo=Right align navbar buttons}</text> <image resource="radio_true"/> <action function="set">tw_navbar_button_position=2</action> </button> <button style="main_button_half_width"> <placement x="%col2_x_right%" y="%row15a_y%"/> - <text>Restore Defaults</text> + <text>{@restore_defaults_btn=Restore Defaults}</text> <action function="restoredefaultsettings"/> </button> @@ -2790,83 +2777,83 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Settings</text> + <text>{@settings_hdr=Settings}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Time Zone Settings</text> + <text>{@time_zone_hdr=Time Zone}</text> </text> <template name="tabs_settings"/> <fill color="%text_color%"> - <placement x="%tab4_col2_x%" y="%row_tab_y%" w="%tab4_width%" h="%tab_indicator_height%"/> + <placement x="%tab5_col2_x%" y="%row_tab_y%" w="%tab5_width%" h="%tab_indicator_height%"/> </fill> <listbox> <placement x="%col1_x_left%" y="%row3_y%" w="%content_half_width%" h="%listbox_timezone_height%"/> - <text>Select Time Zone:</text> + <text>{@sel_tz_list=Select Time Zone:}</text> <data name="tw_time_zone_guisel"/> - <listitem name="(UTC -11) Samoa, Midway Island">BST11;BDT</listitem> - <listitem name="(UTC -10) Hawaii">HST10;HDT</listitem> - <listitem name="(UTC -9) Alaska">AST9;ADT</listitem> - <listitem name="(UTC -8) Pacific Time">PST8;PDT,M3.2.0,M11.1.0</listitem> - <listitem name="(UTC -7) Mountain Time">MST7;MDT,M3.2.0,M11.1.0</listitem> - <listitem name="(UTC -6) Central Time">CST6;CDT,M3.2.0,M11.1.0</listitem> - <listitem name="(UTC -5) Eastern Time">EST5;EDT,M3.2.0,M11.1.0</listitem> - <listitem name="(UTC -4) Atlantic Time">AST4;ADT</listitem> - <listitem name="(UTC -3) Brazil, Buenos Aires">GRNLNDST3;GRNLNDDT</listitem> - <listitem name="(UTC -2) Mid-Atlantic">FALKST2;FALKDT</listitem> - <listitem name="(UTC -1) Azores, Cape Verde">AZOREST1;AZOREDT</listitem> - <listitem name="(UTC 0) London, Dublin, Lisbon">GMT0;BST,M3.5.0,M10.5.0</listitem> - <listitem name="(UTC +1) Berlin, Brussels, Paris">CET-1;CEST,M3.5.0,M10.5.0</listitem> - <listitem name="(UTC +2) Athens, Istanbul, South Africa">WET-2;WET,M3.5.0,M10.5.0</listitem> - <listitem name="(UTC +3) Moscow, Baghdad">SAUST-3;SAUDT</listitem> - <listitem name="(UTC +4) Abu Dhabi, Tbilisi, Muscat">WST-4;WDT</listitem> - <listitem name="(UTC +5) Yekaterinburg, Islamabad">PAKST-5;PAKDT</listitem> - <listitem name="(UTC +6) Almaty, Dhaka, Colombo">TASHST-6;TASHDT</listitem> - <listitem name="(UTC +7) Bangkok, Hanoi, Jakarta">THAIST-7;THAIDT</listitem> - <listitem name="(UTC +8) Beijing, Singapore, Hong Kong">TAIST-8;TAIDT</listitem> - <listitem name="(UTC +9) Tokyo, Seoul, Yakutsk">JST-9;JSTDT</listitem> - <listitem name="(UTC +10) Eastern Australia, Guam">EET-10;EETDT</listitem> - <listitem name="(UTC +11) Vladivostok, Solomon Islands">MET-11;METDT</listitem> - <listitem name="(UTC +12) Auckland, Wellington, Fiji">NZST-12;NZDT</listitem> + <listitem name="{@utcm11=(UTC -11) Samoa, Midway Island}">BST11;BDT</listitem> + <listitem name="{@utcm10=(UTC -10) Hawaii}">HST10;HDT</listitem> + <listitem name="{@utcm9=(UTC -9) Alaska}">AST9;ADT</listitem> + <listitem name="{@utcm8=(UTC -8) Pacific Time}">PST8;PDT,M3.2.0,M11.1.0</listitem> + <listitem name="{@utcm7=(UTC -7) Mountain Time}">MST7;MDT,M3.2.0,M11.1.0</listitem> + <listitem name="{@utcm6=(UTC -6) Central Time}">CST6;CDT,M3.2.0,M11.1.0</listitem> + <listitem name="{@utcm5=(UTC -5) Eastern Time}">EST5;EDT,M3.2.0,M11.1.0</listitem> + <listitem name="{@utcm4=(UTC -4) Atlantic Time}">AST4;ADT</listitem> + <listitem name="{@utcm3=(UTC -3) Brazil, Buenos Aires}">GRNLNDST3;GRNLNDDT</listitem> + <listitem name="{@utcm2=(UTC -2) Mid-Atlantic}">FALKST2;FALKDT</listitem> + <listitem name="{@utcm1=(UTC -1) Azores, Cape Verde}">AZOREST1;AZOREDT</listitem> + <listitem name="{@utc0=(UTC 0) London, Dublin, Lisbon}">GMT0;BST,M3.5.0,M10.5.0</listitem> + <listitem name="{@utcp1=(UTC +1) Berlin, Brussels, Paris}">CET-1;CEST,M3.5.0,M10.5.0</listitem> + <listitem name="{@utcp2=(UTC +2) Athens, Istanbul, South Africa}">WET-2;WET,M3.5.0,M10.5.0</listitem> + <listitem name="{@utcp3=(UTC +3) Moscow, Baghdad}">SAUST-3;SAUDT</listitem> + <listitem name="{@utcp4=(UTC +4) Abu Dhabi, Tbilisi, Muscat}">WST-4;WDT</listitem> + <listitem name="{@utcp5=(UTC +5) Yekaterinburg, Islamabad}">PAKST-5;PAKDT</listitem> + <listitem name="{@utcp6=(UTC +6) Almaty, Dhaka, Colombo}">TASHST-6;TASHDT</listitem> + <listitem name="{@utcp7=(UTC +7) Bangkok, Hanoi, Jakarta}">THAIST-7;THAIDT</listitem> + <listitem name="{@utcp8=(UTC +8) Beijing, Singapore, Hong Kong}">TAIST-8;TAIDT</listitem> + <listitem name="{@utcp9=(UTC +9) Tokyo, Seoul, Yakutsk}">JST-9;JSTDT</listitem> + <listitem name="{@utcp10=(UTC +10) Eastern Australia, Guam}">EET-10;EETDT</listitem> + <listitem name="{@utcp11=(UTC +11) Vladivostok, Solomon Islands}">MET-11;METDT</listitem> + <listitem name="{@utcp12=(UTC +12) Auckland, Wellington, Fiji}">NZST-12;NZDT</listitem> </listbox> <text style="text_m_accent"> <placement x="%col1_x_right%" y="%row3a_y%"/> - <text>Select Offset (usually 0): %tw_time_zone_guioffset%</text> + <text>{@sel_tz_offset=Select Offset (usually 0): %tw_time_zone_guioffset%}</text> </text> <button style="button_quarter_width"> <placement x="%col1_x_right%" y="%row5_y%"/> - <text>None</text> + <text>{@tz_offset_none=None}</text> <action function="set">tw_time_zone_guioffset=0</action> </button> <button style="button_quarter_width"> <placement x="%btn4_col2_x_right%" y="%row5_y%"/> - <text>15</text> + <text>{@tz_offset_15=15}</text> <action function="set">tw_time_zone_guioffset=15</action> </button> <button style="button_quarter_width"> <placement x="%btn4_col3_x_right%" y="%row5_y%"/> - <text>30</text> + <text>{@tz_offset_30=30}</text> <action function="set">tw_time_zone_guioffset=30</action> </button> <button style="button_quarter_width"> <placement x="%btn4_col4_x_right%" y="%row5_y%"/> - <text>45</text> + <text>{@tz_offset_45=45}</text> <action function="set">tw_time_zone_guioffset=45</action> </button> <checkbox> <placement x="%col1_x_right%" y="%row7_y%"/> <font resource="font_m" color="%text_color%"/> - <text>Use daylight savings time (DST)</text> + <text>{@use_dst_chk=Use daylight savings time (DST)}</text> <data variable="tw_time_zone_guidst"/> <image checked="checkbox_true" unchecked="checkbox_false"/> </checkbox> @@ -2874,14 +2861,14 @@ <text color="%text_color%"> <font resource="font_m"/> <placement x="%col1_x_right%" y="%row9_y%"/> - <text>Current Time Zone: %tw_time_zone%</text> + <text>{@curr_tz=Current Time Zone: %tw_time_zone%}</text> </text> <button> <highlight color="%highlight_color%"/> <placement x="%col2_x_right%" y="%row15a_y%"/> <font resource="font_m" color="%text_button_color%"/> - <text>Set Time Zone</text> + <text>{@set_tz_btn=Set Time Zone}</text> <image resource="main_button_half_width"/> <action function="setguitimezone"/> </button> @@ -2902,18 +2889,18 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Settings</text> + <text>{@settings_hdr=Settings}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Screen Settings</text> + <text>{@settings_screen_hdr=Screen Settings}</text> </text> <template name="tabs_settings"/> <fill color="%text_color%"> - <placement x="%center_x%" y="%row_tab_y%" w="%tab4_width%" h="%tab_indicator_height%"/> + <placement x="%tab5_col3_x%" y="%row_tab_y%" w="%tab5_width%" h="%tab_indicator_height%"/> </fill> <button> @@ -2921,7 +2908,7 @@ <font resource="font_m" color="%text_color%"/> <condition var1="tw_screen_timeout_secs" op="=" var2="0"/> <condition var1="tw_no_screen_timeout" op="!=" var2="1"/> - <text>Enable screen timeout.</text> + <text>{@enable_timeout_chk=Enable screen timeout}</text> <image resource="checkbox_false"/> <action function="set">tw_screen_timeout_secs=60</action> </button> @@ -2931,7 +2918,7 @@ <font resource="font_m" color="%text_color%"/> <condition var1="tw_screen_timeout_secs" op="!=" var2="0"/> <condition var1="tw_no_screen_timeout" op="!=" var2="1"/> - <text>Enable screen timeout.</text> + <text>{@enable_timeout_chk=Enable screen timeout}</text> <image resource="checkbox_true"/> <action function="set">tw_screen_timeout_secs=0</action> </button> @@ -2940,14 +2927,14 @@ <condition var1="tw_screen_timeout_secs" op="!=" var2="0"/> <condition var1="tw_no_screen_timeout" op="!=" var2="1"/> <placement x="col1_x_left" y="%row5_y%" w="%content_width%"/> - <text>Screen timeout in seconds:</text> + <text>{@screen_to_slider=Screen timeout in seconds:}</text> <data variable="tw_screen_timeout_secs" min="15" max="300"/> </slidervalue> <slidervalue> <condition var1="tw_has_brightnesss_file" var2="1"/> <placement x="col1_x_left" y="%row10_y%" w="%content_width%"/> - <text>Brightness: %tw_brightness_pct%%</text> + <text>{@screen_bright_slider=Brightness: %tw_brightness_pct%%}</text> <data variable="tw_brightness_pct" min="10" max="100"/> <actions> <action function="set">tw_brightness=%tw_brightness_max%</action> @@ -2973,35 +2960,35 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Settings</text> + <text>{@settings_hdr=Settings}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Vibration Settings</text> + <text>{@vibration_hdr=Vibration}</text> </text> <template name="tabs_settings"/> <fill color="%text_color%"> - <placement x="%tab4_col4_x%" y="%row_tab_y%" w="%tab4_width%" h="%tab_indicator_height%"/> + <placement x="%tab5_col4_x%" y="%row_tab_y%" w="%tab5_width%" h="%tab_indicator_height%"/> </fill> <slidervalue> <placement x="col1_x_left" y="%row4_y%" w="%content_width%"/> - <text>Button Vibration:</text> + <text>{@button_vibration=Button Vibration:}</text> <data variable="tw_button_vibrate" min="0" max="300"/> </slidervalue> <slidervalue> <placement x="col1_x_left" y="%row9_y%" w="%content_width%"/> - <text>Keyboard Vibration:</text> + <text>{@kb_vibration=Keyboard Vibration:}</text> <data variable="tw_keyboard_vibrate" min="0" max="300"/> </slidervalue> <slidervalue> <placement x="col1_x_left" y="%row14_y%" w="%content_width%"/> - <text>Action Vibration:</text> + <text>{@act_vibration=Action Vibration:}</text> <data variable="tw_action_vibrate" min="0" max="500"/> </slidervalue> @@ -3016,83 +3003,126 @@ </action> </page> + <page name="settings_language"> + <template name="page"/> + + <text style="text_l"> + <placement x="%col1_x_header%" y="%row3_header_y%"/> + <text>{@settings_hdr=Settings}</text> + </text> + + <text style="text_m"> + <placement x="%col1_x_header%" y="%row4_header_y%"/> + <text>{@language_hdr=Language - %tw_language_display%}</text> + </text> + + <template name="tabs_settings"/> + + <fill color="%text_color%"> + <placement x="%tab5_col5_x%" y="%row_tab_y%" w="%tab5_width%" h="%tab_indicator_height%"/> + </fill> + + <listbox> + <placement x="%indent%" y="%row3_y%" w="%fileselector_filemanager_height%" h="%listbox_settings_height%"/> + <text>{@select_language=Select Language:}</text> + <icon selected="radio_true" unselected="radio_false" /> + <data name="tw_language" /> + </listbox> + + <button style="main_button_half_width_low"> + <placement x="%col_button_right%" y="%row16a_y%"/> + <text>{@set_language_btn=Set Language}</text> + <action function="setlanguage"></action> + </button> + + <action> + <touch key="home" /> + <action function="page">main</action> + </action> + + <action> + <touch key="back" /> + <action function="page">settings</action> + </action> + </page> + <page name="advanced"> <template name="page"/> <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Advanced</text> + <text>{@advanced_hdr=Advanced}</text> </text> <button style="main_button"> <placement x="%col1_x_left%" y="%row2_y%"/> - <text>Copy Log to SD</text> + <text>{@copy_log_btn=Copy Log}</text> <actions> <action function="set">tw_back=advanced</action> <action function="set">tw_action=copylog</action> - <action function="set">tw_text1=Copy Log to SD Card?</action> - <action function="set">tw_action_text1=Copying Log to SD Card...</action> - <action function="set">tw_complete_text1=Log Copy Complete</action> - <action function="set">tw_slider_text=Swipe to Confirm</action> + <action function="set">tw_text1={@copy_log_confirm=Copy Log to SD Card?}</action> + <action function="set">tw_action_text1={@copying_log=Copying Log to SD Card...}</action> + <action function="set">tw_complete_text1={@copy_log_complete=Log Copy Complete}</action> + <action function="set">tw_slider_text={@swipe_to_confirm=Swipe to Confirm}</action> <action function="page">confirm_action</action> </actions> </button> <button style="main_button"> <placement x="%center_x%" y="%row2_y%"/> - <text>Fix Permissions</text> + <text>{@fix_perm_btn=Fix Permissions}</text> <action function="page">fixperms</action> </button> <button style="main_button"> <condition var1="tw_allow_partition_sdcard" var2="1"/> <placement x="%col1_x_left%" y="%row6a_y%"/> - <text>Partition SD Card</text> + <text>{@part_sd_btn=Partition SD Card}</text> <action function="page">partsdcard</action> </button> <button style="main_button"> <placement x="%center_x%" y="%row6a_y%"/> - <text>File Manager</text> + <text>{@file_manager_btn=File Manager}</text> <action function="page">filemanagerlist</action> </button> <button style="main_button"> <placement x="%col1_x_left%" y="%row11_y%"/> - <text>Terminal</text> + <text>{@terminal_btn=Terminal}</text> <action function="page">terminalfolder</action> </button> <button style="main_button"> <placement x="%center_x%" y="%row11_y%"/> - <text>Reload Theme</text> + <text>{@reload_theme_btn=Reload Theme}</text> <action function="reload"/> </button> <button style="main_button"> <placement x="%col1_x_left%" y="%row15a_y%"/> - <text>ADB Sideload</text> + <text>{@adb_sideload_btn=ADB Sideload}</text> <action function="page">sideload</action> </button> <button style="main_button"> <condition var1="tw_show_dumlock" var2="1"/> <placement x="%center_x%" y="%row15a_y%"/> - <text>HTC Dumlock</text> + <text>{@dumlock_btn=HTC Dumlock}</text> <action function="page">htcdumlock</action> </button> <button style="main_button"> <condition var1="tw_has_injecttwrp" var2="1"/> <placement x="%center_x%" y="%row15a_y%"/> - <text>Re-Inject TWRP</text> + <text>{@inject_twrp_btn=Inject TWRP}</text> <actions> <action function="set">tw_back=advanced</action> <action function="set">tw_action=reinjecttwrp</action> - <action function="set">tw_text1=Re-Inject TWRP?</action> - <action function="set">tw_action_text1=Re-Injecting TWRP...</action> - <action function="set">tw_complete_text1=TWRP Injection Complete</action> - <action function="set">tw_slider_text=Swipe to Confirm</action> + <action function="set">tw_text1={@inject_twrp_confirm=Re-Inject TWRP?}</action> + <action function="set">tw_action_text1={@injecting_twrp=Re-Injecting TWRP...}</action> + <action function="set">tw_complete_text1={@inject_twrp_complete=TWRP Injection Complete}</action> + <action function="set">tw_slider_text={@swipe_to_confirm=Swipe to Confirm}</action> <action function="page">confirm_action</action> </actions> </button> @@ -3113,27 +3143,27 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Advanced</text> + <text>{@advanced_hdr=Advanced}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Partition SD Card</text> + <text>{@part_sd_hdr=Partition SD Card}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>You will lose all files on your SD card!</text> + <text>{@part_sd_lose=You will lose all files on your SD card!}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row3_y%" placement="5"/> - <text>This action cannot be undone!</text> + <text>{@part_sd_undo=This action cannot be undone!}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row5_y%" placement="5"/> - <text>EXT Size:</text> + <text>{@part_sd_ext_sz=EXT Size:}</text> </text> <text style="text_m"> @@ -3143,19 +3173,19 @@ <button style="button_quarter_width"> <placement x="%btn4_col3_x_left%" y="%row5_y%"/> - <text>-</text> + <text>{@part_sd_m=-}</text> <action function="addsubtract">tw_sdext_size-128</action> </button> <button style="button_quarter_width"> <placement x="%btn4_col2_x_right%" y="%row5_y%"/> - <text>+</text> + <text>{@part_sd_p=+}</text> <action function="addsubtract">tw_sdext_size+128</action> </button> <text style="text_m_accent"> <placement x="%center_x%" y="%row9_y%" placement="5"/> - <text>Swap Size:</text> + <text>{@part_sd_swap_sz=Swap Size:}</text> </text> <text style="text_m"> @@ -3165,19 +3195,19 @@ <button style="button_quarter_width"> <placement x="%btn4_col3_x_left%" y="%row9_y%"/> - <text>-</text> + <text>{@part_sd_m=-}</text> <action function="addsubtract">tw_swap_size-32</action> </button> <button style="button_quarter_width"> <placement x="%btn4_col2_x_right%" y="%row9_y%"/> - <text>+</text> + <text>{@part_sd_p=+}</text> <action function="addsubtract">tw_swap_size+32</action> </button> <text style="text_m_accent"> <placement x="%center_x%" y="%row13_y%" placement="5"/> - <text>File System:</text> + <text>{@file_system=File System:}</text> </text> <text style="text_m"> @@ -3198,7 +3228,7 @@ </button> <slider style="slider_centered"> - <text>Swipe to Partition</text> + <text>{@swipe_part_sd=Swipe to Partition}</text> <action function="page">partsdcardaction</action> <actions> <action function="set">tw_back=partsdcard</action> @@ -3206,9 +3236,9 @@ <action function="set">tw_has_action2=1</action> <action function="set">tw_action2=set</action> <action function="set">tw_action2_param=tw_zip_location=/sdcard</action> - <action function="set">tw_action_text1=Partitioning SD Card...</action> - <action function="set">tw_action_text2=This will take a few minutes.</action> - <action function="set">tw_complete_text1=Partitioning Complete</action> + <action function="set">tw_action_text1={@partitioning_sd=Partitioning SD Card...}</action> + <action function="set">tw_action_text2={@partitioning_sd2=This will take a few minutes.}</action> + <action function="set">tw_complete_text1={@part_sd_complete=Partitioning Complete}</action> <action function="page">action_page</action> </actions> </slider> @@ -3229,52 +3259,52 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Advanced</text> + <text>{@advanced_hdr=Advanced}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>HTC Dumlock</text> + <text>{@dumlock_hdr=HTC Dumlock}</text> </text> <button style="main_button_m"> <placement x="%col2_x_left%" y="%row2_y%"/> - <text>Restore Original Boot</text> + <text>{@dumlock_restore_btn=Restore Original Boot}</text> <actions> <action function="set">tw_back=htcdumlock</action> <action function="set">tw_action=htcdumlockrestoreboot</action> - <action function="set">tw_text1=Restore original boot image?</action> - <action function="set">tw_action_text1=Restoring Original Boot...</action> - <action function="set">tw_complete_text1=Restore Original Boot Complete</action> - <action function="set">tw_slider_text=Swipe to Confirm</action> + <action function="set">tw_text1={@dumlock_restore_confirm=Restore original boot image?}</action> + <action function="set">tw_action_text1={@dumlock_restoring=Restoring Original Boot...}</action> + <action function="set">tw_complete_text1={@dumlock_restore_complete=Restore Original Boot Complete}</action> + <action function="set">tw_slider_text={@swipe_to_confirm=Swipe to Confirm}</action> <action function="page">confirm_action</action> </actions> </button> <button style="main_button_m"> <placement x="%col2_x_left%" y="%row6a_y%"/> - <text>Reflash Recovery</text> + <text>{@dumlock_reflash_btn=Reflash Recovery}</text> <actions> <action function="set">tw_back=htcdumlock</action> <action function="set">tw_action=htcdumlockreflashrecovery</action> - <action function="set">tw_text1=Reflash recovery to boot?</action> - <action function="set">tw_action_text1=Flashing recovery to boot...</action> - <action function="set">tw_complete_text1=Recovery Flash to Boot Complete</action> - <action function="set">tw_slider_text=Swipe to Confirm</action> + <action function="set">tw_text1={@dumlock_reflash_confirm=Reflash recovery to boot?}</action> + <action function="set">tw_action_text1={@dumlock_reflashing=Flashing recovery to boot...}</action> + <action function="set">tw_complete_text1={@dumlock_reflash_complete=Recovery Flash to Boot Complete}</action> + <action function="set">tw_slider_text={@swipe_to_confirm=Swipe to Confirm}</action> <action function="page">confirm_action</action> </actions> </button> <button style="main_button_m"> <placement x="%col2_x_left%" y="%row11_y%"/> - <text>Install HTC Dumlock</text> + <text>{@dumlock_install_btn=Install HTC Dumlock}</text> <actions> <action function="set">tw_back=htcdumlock</action> <action function="set">tw_action=installhtcdumlock</action> - <action function="set">tw_text1=Install HTC dumlock files to ROM?</action> - <action function="set">tw_action_text1=Installing HTC Dumlock...</action> - <action function="set">tw_complete_text1=HTC Dumlock Install Complete</action> - <action function="set">tw_slider_text=Swipe to Confirm</action> + <action function="set">tw_text1={@dumlock_install_confirm=Install HTC dumlock files to ROM?}</action> + <action function="set">tw_action_text1={@dumlock_installing=Installing HTC Dumlock...}</action> + <action function="set">tw_complete_text1={@dumlock_install_complete=HTC Dumlock Install Complete}</action> + <action function="set">tw_slider_text={@swipe_to_confirm=Swipe to Confirm}</action> <action function="page">confirm_action</action> </actions> </button> @@ -3299,7 +3329,7 @@ </image> <slider style="slider_centered"> - <text>Swipe to Unlock</text> + <text>{@swipe_to_unlock=Swipe to Unlock}</text> <action function="overlay"/> </slider> </page> @@ -3309,12 +3339,12 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>File Manager</text> + <text>{@fm_hdr=File Manager}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Select a File or Folder</text> + <text>{@fm_sel_file=Select a File or Folder}</text> </text> <template name="sort_options"/> @@ -3330,18 +3360,18 @@ <button style="main_button_half_width_low"> <placement x="%col_button_right%" y="%row16a_y%"/> - <text>Select current Folder</text> + <text>{@fm_sel_curr_folder=Select Current Folder}</text> <actions> <action function="set">tw_filename1=tw_file_location1</action> <action function="set">tw_fm_isfolder=1</action> - <action function="set">tw_fm_type=Folder</action> + <action function="set">tw_fm_type={@fm_type_folder=Folder}</action> <action function="page">filemanageroptions</action> </actions> </button> <action> <actions> - <action function="set">tw_fm_type=File</action> + <action function="set">tw_fm_type={@fm_type_file=File}</action> <action function="set">tw_fm_isfolder=0</action> </actions> </action> @@ -3367,17 +3397,17 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>File Manager</text> + <text>{@fm_hdr=File Manager}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Choose Action</text> + <text>{@fm_choose_act=Choose Action}</text> </text> <text style="text_m_accent"> <placement x="%col1_x_left%" y="%row2_y%"/> - <text>%tw_fm_type% selected:</text> + <text>{@fm_selected=%tw_fm_type% selected:}</text> </text> <text style="text_m"> @@ -3388,10 +3418,10 @@ <button style="main_button_half_width"> <condition var1="tw_fm_isfolder" var2="0"/> <placement x="%col1_x_left%" y="%row11_y%"/> - <text>Copy File</text> + <text>{@fm_copy_file_btn=Copy File}</text> <actions> <action function="set">tw_filemanager_command=cp</action> - <action function="set">tw_fm_text1=Copying</action> + <action function="set">tw_fm_text1={@fm_copying=Copying}</action> <action function="page">choosedestinationfolder</action> </actions> </button> @@ -3399,30 +3429,30 @@ <button style="main_button_half_width"> <condition var1="tw_fm_isfolder" var2="1"/> <placement x="%col1_x_left%" y="%row11_y%"/> - <text>Copy Folder</text> + <text>{@fm_copy_folder_btn=Copy Folder}</text> <actions> <action function="set">tw_filemanager_command=cd "%tw_file_location1%" && cd .. && cp -R</action> - <action function="set">tw_fm_text1=Copying</action> + <action function="set">tw_fm_text1={@fm_copying=Copying}</action> <action function="page">choosedestinationfolder</action> </actions> </button> <button style="main_button_half_width"> <placement x="%col2_x_left%" y="%row11_y%"/> - <text>Move</text> + <text>{@fm_move_btn=Move}</text> <actions> <action function="set">tw_filemanager_command=mv</action> - <action function="set">tw_fm_text1=Moving</action> + <action function="set">tw_fm_text1={@fm_moving=Moving}</action> <action function="page">choosedestinationfolder</action> </actions> </button> <button style="main_button_half_width"> <placement x="%col2_x_left%" y="%row15a_y%"/> - <text>chmod 755</text> + <text>{@fm_chmod755_btn=chmod 755}</text> <actions> <action function="set">tw_filemanager_command=chmod 755</action> - <action function="set">tw_fm_text1=chmod 755</action> + <action function="set">tw_fm_text1={@fm_chmod755ing=chmod 755}</action> <action function="set">tw_fm_text2=</action> <action function="set">tw_fm_text3=</action> <action function="set">tw_include_text3=0</action> @@ -3433,7 +3463,7 @@ <button style="main_button_half_width"> <placement x="%center_x%" y="%row15a_y%"/> - <text>chmod</text> + <text>{@fm_chmod_btn=chmod}</text> <actions> <action function="set">tw_filemanager_rename=0000</action> <action function="set">tw_fm_text2=</action> @@ -3446,10 +3476,10 @@ <button style="main_button_half_width"> <placement x="%col2_x_right%" y="%row11_y%"/> - <text>Delete</text> + <text>{@fm_delete_btn=Delete}</text> <actions> <action function="set">tw_filemanager_command=rm -rf</action> - <action function="set">tw_fm_text1=Deleting</action> + <action function="set">tw_fm_text1={@fm_deleting=Deleting}</action> <action function="set">tw_fm_text2=</action> <action function="set">tw_fm_text3=</action> <action function="set">tw_include_text3=0</action> @@ -3461,10 +3491,10 @@ <button style="main_button_half_width"> <condition var1="tw_fm_isfolder" var2="0"/> <placement x="%center_x%" y="%row11_y%"/> - <text>Rename File</text> + <text>{@fm_rename_file_btn=Rename File}</text> <actions> <action function="set">tw_filemanager_rename=tw_selection1</action> - <action function="set">tw_fm_text1=Renaming</action> + <action function="set">tw_fm_text1={@fm_renaming=Renaming}</action> <action function="set">tw_filemanager_command=mv</action> <action function="page">filemanagerrenamefile</action> </actions> @@ -3473,10 +3503,10 @@ <button style="main_button_half_width"> <condition var1="tw_fm_isfolder" var2="1"/> <placement x="%center_x%" y="%row11_y%"/> - <text>Rename Folder</text> + <text>{@fm_rename_folder_btn=Rename Folder}</text> <actions> <action function="set">tw_filemanager_rename=tw_selection1</action> - <action function="set">tw_fm_text1=Renaming</action> + <action function="set">tw_fm_text1={@fm_renaming=Renaming}</action> <action function="set">tw_filemanager_command=cd "%tw_file_location1%" && cd .. && mv</action> <action function="page">filemanagerrenamefolder</action> </actions> @@ -3498,12 +3528,12 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>File Manager</text> + <text>{@fm_hdr=File Manager}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Select Destination Folder</text> + <text>{@fm_sel_dest=Select Destination Folder}</text> </text> <template name="sort_options"/> @@ -3519,7 +3549,7 @@ <button style="main_button_half_width_low"> <placement x="%col_button_right%" y="%row16a_y%"/> - <text>Select current Folder</text> + <text>{@fm_sel_curr_folder=Select Current Folder}</text> <actions> <action function="set">tw_fm_text2=to</action> <action function="set">tw_fm_text3=%tw_file_location2%</action> @@ -3545,17 +3575,17 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>File Manager</text> + <text>{@fm_hdr=File Manager}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Rename %tw_fm_type%</text> + <text>{@fm_rename_hdr=Rename} %tw_fm_type%</text> </text> <text style="text_m_accent"> <placement x="%col1_x_left%" y="%row2_y%"/> - <text>Name:</text> + <text>{@name=Name:}</text> </text> <input> @@ -3578,7 +3608,7 @@ <button style="main_button_half_width_low"> <placement x="%indent%" y="%row5_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <action function="page">filemanageroptions</action> </button> @@ -3600,17 +3630,17 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>File Manager</text> + <text>{@fm_hdr=File Manager}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Rename %tw_fm_type%</text> + <text>{@fm_rename_hdr=Rename} %tw_fm_type%</text> </text> <text style="text_m_accent"> <placement x="%col1_x_left%" y="%row2_y%"/> - <text>Name:</text> + <text>{@name=Name:}</text> </text> <input> @@ -3633,7 +3663,7 @@ <button style="main_button_half_width_low"> <placement x="%indent%" y="%row5_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <action function="page">filemanageroptions</action> </button> @@ -3655,17 +3685,17 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>File Manager</text> + <text>{@fm_hdr=File Manager}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Set Permissions</text> + <text>{@fm_set_perms_hdr=Set Permissions}</text> </text> <text style="text_m_accent"> <placement x="%col1_x_left%" y="%row2_y%"/> - <text>Permissions:</text> + <text>{@fm_perms=Permissions:}</text> </text> <input> @@ -3687,7 +3717,7 @@ <button style="main_button_half_width_low"> <placement x="%indent%" y="%row5_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <action function="page">filemanageroptions</action> </button> @@ -3709,12 +3739,12 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>File Manager</text> + <text>{@fm_hdr=File Manager}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Confirm Action</text> + <text>{@confirm_action=Confirm Action}</text> </text> <text style="text_m_accent"> @@ -3739,11 +3769,11 @@ <text style="text_m"> <placement x="%center_x%" y="%row8_y%" placement="5"/> - <text>Press back button to cancel.</text> + <text>{@back_cancel=Press back button to cancel.}</text> </text> <slider style="slider_centered"> - <text>Swipe to Confirm</text> + <text>{@swipe_to_confirm=Swipe to Confirm}</text> <action function="page">filemanageraction</action> </slider> @@ -3763,7 +3793,7 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>File Manager</text> + <text>{@fm_hdr=File Manager}</text> </text> <text style="text_m"> @@ -3782,7 +3812,7 @@ </conditions> <actions> <action function="set">tw_back=filemanagerlist</action> - <action function="set">tw_complete_text1=File Operation Complete</action> + <action function="set">tw_complete_text1={@fm_complete=File Operation Complete}</action> <action function="page">action_complete</action> </actions> </action> @@ -3793,7 +3823,7 @@ <condition var1="tw_operation_status" op="!=" var2="0"/> </conditions> <actions> - <action function="set">tw_complete_text1=File Operation Complete</action> + <action function="set">tw_complete_text1={@fm_complete=File Operation Complete}</action> <action function="page">action_complete</action> </actions> </action> @@ -3819,17 +3849,17 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Mount</text> + <text>{@mount_hdr=Mount}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Decrypt Data</text> + <text>{@decrypt_data_hdr=Decrypt Data}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>Enter Password:</text> + <text>{@decrypt_data_enter_pass=Enter Password:}</text> </text> <input> @@ -3852,12 +3882,12 @@ <text style="text_m_fail"> <condition var1="tw_password_fail" var2="1"/> <placement x="%col1_x_left%" y="%row5_y%"/> - <text>Password failed, please try again!</text> + <text>{@decryt_data_failed=Password failed, please try again!}</text> </text> <button style="main_button_half_width_low"> <placement x="%indent%" y="%row6_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <actions> <action function="set">tw_page_done=1</action> <action function="page">main</action> @@ -3872,17 +3902,17 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Mount</text> + <text>{@mount_hdr=Mount}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Decrypt Data</text> + <text>{@decrypt_data_hdr=Decrypt Data}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>Enter Pattern:</text> + <text>{@decrypt_data_enter_pattern=Enter Pattern.}</text> </text> <patternpassword> @@ -3896,7 +3926,7 @@ <button style="main_button_half_width"> <placement x="%col2_x_right%" y="%row15a_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <actions> <action function="set">tw_page_done=1</action> <action function="page">main</action> @@ -3909,12 +3939,12 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Mount</text> + <text>{@mount_hdr=Mount}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Decrypt Data - Trying Decryption</text> + <text>{@decrypt_data_trying=Trying Decryption}</text> </text> <template name="console"/> @@ -3953,12 +3983,12 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Terminal Command</text> + <text>{term_hdr=Terminal Command}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Browse to Starting Folder</text> + <text>{@term_sel_folder_hdr=Browse to Starting Folder}</text> </text> <template name="sort_options"/> @@ -3974,7 +4004,7 @@ <button style="main_button_half_width_low"> <placement x="%col_button_right%" y="%row16a_y%"/> - <text>Select current Folder</text> + <text>{@fm_sel_curr_folder=Select Current Folder}</text> <action function="page">terminalcommand</action> </button> @@ -4015,7 +4045,7 @@ <highlight color="%highlight_color%"/> <placement x="%btn4_col4_x_right%" y="%row7a_y%"/> <font resource="font_m" color="%text_button_color%"/> - <text>Kill</text> + <text>{@term_kill_btn=Kill}</text> <image resource="tab_4"/> <action function="killterminal"/> </button> @@ -4038,35 +4068,35 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Advanced</text> + <text>{@advanced_hdr=Advanced}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>ADB Sideload</text> + <text>{@adb_sideload_hdr=ADB Sideload}</text> </text> <checkbox> <placement x="%col1_x_left%" y="%row2_y%"/> - <text>Wipe Dalvik Cache</text> + <text>{@sideload_wipe_dalvik_chk=Wipe Dalvik Cache}</text> <data variable="tw_wipe_dalvik"/> </checkbox> <checkbox> <placement x="%col1_x_left%" y="%row3a_y%"/> - <text>Wipe Cache</text> + <text>{@sideload_wipe_cache_chk=Wipe Cache}</text> <data variable="tw_wipe_cache"/> </checkbox> <slider style="slider_centered"> - <text>Swipe to start Sideload</text> + <text>{@swipe_to_sideload=Swipe to Start Sideload}</text> <action function="page">partsdcardaction</action> <actions> <action function="set">tw_back=advanced</action> <action function="set">tw_action=adbsideload</action> - <action function="set">tw_action_text1=ADB Sideload</action> - <action function="set">tw_action_text2=Usage: adb sideload filename.zip</action> - <action function="set">tw_complete_text1=ADB Sideload Complete</action> + <action function="set">tw_action_text1={@sideload_confirm=ADB Sideload}</action> + <action function="set">tw_action_text2={@sideload_usage=Usage: adb sideload filename.zip}</action> + <action function="set">tw_complete_text1={@sideload_complete=ADB Sideload Complete}</action> <action function="set">tw_has_cancel=1</action> <action function="set">tw_show_reboot=1</action> <action function="set">tw_cancel_action=adbsideloadcancel</action> @@ -4090,43 +4120,43 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Advanced</text> + <text>{@advanced_hdr=Advanced}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Fix Permissions</text> + <text>{@fix_perms_hdr=Fix Permissions}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>Note: Fixing permissions is rarely needed.</text> + <text>{@fix_perms_note=Note: Fixing permissions is rarely needed.}</text> </text> <checkbox> <placement x="%col2_x_left%" y="%row4_y%"/> - <text>Also fix SELinux Contexts</text> + <text>{@fix_perms_selinux_chk=Also fix SELinux Contexts}</text> <data variable="tw_fixperms_restorecon"/> </checkbox> <text style="text_m_fail"> <placement x="%center_x%" y="%row6_y%" placement="5"/> - <text>Fixing SELinux Contexts may cause</text> + <text>{@fix_perms_sel_note1=Fixing SELinux Contexts may cause}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row7_y%" placement="5"/> - <text>your device to not boot properly.</text> + <text>{@fix_perms_sel_note2=your device to not boot properly.}</text> </text> <slider style="slider_centered"> - <text>Swipe to Fix Permissions</text> + <text>{@swipe_to_fix_perms=Swipe to Fix Permissions}</text> <actions> <action function="set">tw_back=advanced</action> <action function="set">tw_action=fixpermissions</action> - <action function="set">tw_action_text1=Fixing Permissions...</action> - <action function="set">tw_complete_text1=Fix Permissions Complete</action> - <action function="set">tw_slider_text=Swipe to Confirm</action> + <action function="set">tw_action_text1={@fixing_perms=Fixing Permissions...}</action> + <action function="set">tw_complete_text1={@fix_perms_complete=Fix Permissions Complete}</action> + <action function="set">tw_slider_text={@swipe_to_confirm=Swipe to Confirm}</action> <action function="set">tw_show_reboot=1</action> <action function="page">action_page</action> </actions> @@ -4148,40 +4178,40 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Reboot</text> + <text>{@reboot_hdr=Reboot}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>SuperSU Check</text> + <text>{@su_hdr=SuperSU Check}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>Your device does not appear to be rooted.</text> + <text>{@su_note1=Your device does not appear to be rooted.}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row4_y%" placement="5"/> - <text>Install SuperSU now?</text> + <text>{@su_note2=Install SuperSU now?}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row5_y%" placement="5"/> - <text>This will root your device.</text> + <text>{@su_note3=This will root your device.}</text> </text> <button style="main_button_half_width"> <placement x="%col2_x_left%" y="%row15a_y%"/> - <text>Do not Install</text> + <text>{@su_cancel=Do not Install}</text> <action function="set">tw_page_done=1</action> </button> <slider> - <text>Swipe to Install</text> + <text>{@swipe_su_to_install=Swipe to Install}</text> <actions> <action function="set">tw_action=installsu</action> - <action function="set">tw_action_text1=Installing SuperSU</action> + <action function="set">tw_action_text1={@su_installing=Installing SuperSU}</action> <action function="set">tw_action_text2=</action> <action function="page">singleaction_page</action> </actions> @@ -4219,14 +4249,14 @@ </fill> <partitionlist style="partitionlist_storage"> - <text>Select Storage</text> + <text>{@sel_storage_list=Select Storage}</text> <data name="tw_storage_path"/> <listtype name="storage"/> </partitionlist> <button style="button_third_width"> <placement x="%dialog_button_x%" y="%row13_y%"/> - <text>OK</text> + <text>{@ok_btn=OK}</text> <actions> <action function="set">tw_clear_destination=%tw_back%</action> <action function="overlay"/> diff --git a/gui/theme/common/languages/en.xml b/gui/theme/common/languages/en.xml new file mode 100755 index 000000000..62b5b3dd4 --- /dev/null +++ b/gui/theme/common/languages/en.xml @@ -0,0 +1,666 @@ +<?xml version="1.0"?> + +<language> + <display>English</display> + + <resources> + <!-- Font overrides - only change these if your language requires special characters --> + <resource name="font_l" type="fontoverride" filename="RobotoCondensed-Regular.ttf" scale="100" /> + <resource name="font_m" type="fontoverride" filename="RobotoCondensed-Regular.ttf" scale="100" /> + <resource name="font_s" type="fontoverride" filename="RobotoCondensed-Regular.ttf" scale="100" /> + <resource name="fixed" type="fontoverride" filename="DroidSansMono.ttf" scale="100" /> + + <!-- Partition display names --> + <string name="system">System</string> + <string name="system_image">System Image</string> + <string name="vendor">Vendor</string> + <string name="vendor_image">Vendor Image</string> + <string name="boot">Boot</string> + <string name="recovery">Recovery</string> + <string name="cache">Cache</string> + <string name="data">Data</string> + <string name="sdcard">SDCard</string> + <string name="internal">Internal Storage</string> + <string name="microsd">Micro SDCard</string> + <string name="usbotg">USB OTG</string> + <string name="android_secure">Android Secure</string> + <string name="dalvik">Dalvik / ART Cache</string> + <!-- This is a rarely used partition on a Micro SD card for a very old app2sd system --> + <string name="sdext">SD-EXT</string> + <string name="adopted_data">Adopted Data</string> + <string name="adopted_storage">Adopted Storage</string> + + <!-- GUI XML strings --> + <string name="twrp_header">Team Win Recovery Project</string> + <string name="twrp_watch_header">TWRP %tw_version%</string> + <string name="cpu_temp">CPU: %tw_cpu_temp% °C</string> + <string name="battery_pct">Battery: %tw_battery%</string> + <string name="sort_by_name">Sort by Name</string> + <string name="sort_by_date">Sort by Date</string> + <string name="sort_by_size">Sorty by Size</string> + <string name="sort_by_name_only">Name</string> + <string name="sort_by_date_only">Date</string> + <string name="sort_by_size_only">Size</string> + <string name="tab_general">GENERAL</string> + <string name="tab_options">OPTIONS</string> + <string name="tab_backup">BACKUP</string> + <string name="tab_time_zone">TIME ZONE</string> + <string name="tab_screen">SCREEN</string> + <string name="tab_vibration">VIBRATION</string> + <string name="tab_language">LANGUAGE</string> + + <string name="install_btn">Install</string> + <string name="wipe_btn">Wipe</string> + <string name="backup_btn">Backup</string> + <string name="restore_btn">Restore</string> + <string name="mount_btn">Mount</string> + <string name="settings_btn">Settings</string> + <string name="advanced_btn">Advanced</string> + <string name="reboot_btn">Reboot</string> + <string name="files_btn">Files</string> + <string name="copy_log_btn">Copy Log</string> + <string name="select_type_hdr">Select Type</string> + <string name="install_zip_hdr">Install Zip</string> + <string name="install_zip_btn">Install Zip</string> + <string name="install_image_hdr">Install Image</string> + <string name="install_image_btn">Install Image</string> + <string name="install_select_file_hdr">Select File</string> + <string name="file_selector_folders_hdr">Folders</string> + <string name="select_file_from_storage">Select File from %tw_storage_display_name% (%tw_storage_free_size% MB)</string> + <string name="adb_sideload_btn">ADB Sideload</string> + <string name="install_hdr">Install</string> + <string name="select_storage_hdr">Select Storage</string> + <string name="select_storage_btn">Select Storage</string> + <string name="queue_hdr">Queue</string> + <string name="zip_queue_count">%tw_zip_queue_count% of max of 10 Files queued</string> + <string name="zip_queue_count_s">File %tw_zip_queue_count% of 10:</string> + <string name="zip_warn1">This operation may install incompatible</string> + <string name="zip_warn2">software and render your device unusable.</string> + <string name="zip_back_cancel">Press back to cancel adding this zip.</string> + <string name="zip_back_clear">Press back button to clear the queue.</string> + <string name="folder">Folder:</string> + <string name="file">File:</string> + <string name="zip_sig_chk">Zip signature verification</string> + <string name="inject_twrp_chk">Inject TWRP after install</string> + <string name="options_hdr">Options</string> + <string name="confirm_flash_hdr">Confirm Flash</string> + <string name="zip_queue">Queue:</string> + <string name="options">Options:</string> + <string name="swipe_confirm"> Confirm</string> + <string name="zip_add_btn">Add more Zips</string> + <string name="zip_clear_btn">Clear Zip Queue</string> + <string name="install_zip_count_hdr">Install Zip %tw_zip_index% of %tw_zip_queue_count%</string> + <string name="installing_zip">Installing Zip: %tw_file%</string> + <string name="failed">Failed</string> + <string name="successful">Successful</string> + <string name="install_failed">Installation Failed</string> + <string name="install_successful">Installation Successful</string> + <string name="wipe_cache_dalvik_btn">Wipe cache/dalvik</string> + <string name="reboot_system_btn">Reboot System</string> + <string name="install_sel_target">Select Target Partition</string> + <string name="flash_image_select">Select Partition to Flash Image:</string> + <string name="target_partition">Target Partition:</string> + <string name="flashing_image">Flashing Image...</string> + <string name="image_flashed">Image Flashed</string> + <string name="wipe_cache_dalvik_confirm">Wipe Cache & Dalvik?</string> + <string name="wiping_cache_dalvik">Wiping Cache & Dalvik...</string> + <string name="wipe_cache_dalvik_complete">Cache & Dalvik Wipe Complete</string> + <string name="swipe_wipe">Swipe to Wipe</string> + <string name="swipe_wipe_s"> Wipe</string> + <string name="no_os1">No OS Installed! Are you</string> + <string name="no_osrb">sure you wish to reboot?</string> + <string name="no_ospo">sure you wish to power off?</string> + <string name="rebooting">Rebooting...</string> + <string name="swipe_reboot_s"> Reboot</string> + <string name="swipe_flash">Swipe to confirm Flash</string> + <string name="confirm_action">Confirm Action</string> + <string name="back_cancel">Press back button to cancel.</string> + <string name="cancel_btn">Cancel</string> + <string name="wipe_hdr">Wipe</string> + <string name="factory_reset_hdr">Factory Reset</string> + <string name="factory_reset_btn">Factory Reset</string> + <string name="factory_reset1">Wipes Data, Cache, and Dalvik</string> + <string name="factory_reset2">(not including internal storage)</string> + <string name="factory_reset3">Most of the time this is</string> + <string name="factory_reset4">the only wipe that you need.</string> + <string name="factory_resetting">Factory Reset...</string> + <string name="advanced_wipe_hdr">Advanced Wipe</string> + <string name="advanced_wipe_btn">Advanced Wipe</string> + <string name="wipe_enc_confirm">Wipe Encryption from Data?</string> + <string name="formatting_data">Formatting Data...</string> + <string name="swipe_format_data">Swipe to Format Data</string> + <string name="swipe_format_data_s"> Format Data</string> + <string name="factory_reset_complete">Factory Reset Complete</string> + <string name="sel_part_hdr">Select Partitions</string> + <string name="wipe_sel_confirm">Wipe Selected Partition(s)?</string> + <string name="wiping_part">Wiping Partition(s)...</string> + <string name="wipe_complete">Wipe Complete</string> + <string name="sel_part_wipe">Select Partitions to Wipe:</string> + <string name="invalid_part_sel">Invalid partition selection</string> + <string name="format_data_hdr">Format Data</string> + <string name="format_data_btn">Format Data</string> + <string name="format_data_ptr1">Format Data will wipe all of your apps,</string> + <string name="format_data_ptr2">backups, pictures, videos, media, and</string> + <string name="format_data_ptr3">removes encryption on internal storage.</string> + <string name="format_data_lcp1">Format Data will wipe all of your apps, backups, pictures, videos, media, and</string> + <string name="format_data_lcp2">removes encryption on internal storage.</string> + <string name="format_data_wtc1">Format Data will wipe all of your apps,</string> + <string name="format_data_wtc2">backups and media. This cannot be undone.</string> + <string name="format_data_undo">This cannot be undone.</string> + <string name="format_data_complete">Data Format Complete</string> + <string name="yes_continue">Type yes to continue. Press back to cancel.</string> + <string name="part_opt_hdr">Partition Options for: %tw_partition_name%</string> + <string name="sel_act_hdr">Select Action</string> + <string name="file_sys_opt">File System Options</string> + <string name="partition">Partition: %tw_partition_name%</string> + <string name="part_mount_point">Mount Point: %tw_partition_mount_point%</string> + <string name="part_curr_fs">File system: %tw_partition_file_system%</string> + <string name="part_present_yes">Present: Yes</string> + <string name="part_present_no">Present: No</string> + <string name="part_removable_yes">Removable: Yes</string> + <string name="part_removable_no">Removable: No</string> + <string name="part_size">Size: %tw_partition_size%MB</string> + <string name="part_used">Used: %tw_partition_used%MB</string> + <string name="part_free">Free: %tw_partition_free%MB</string> + <string name="part_backup_size">Backup Size: %tw_partition_backup_size%MB</string> + <string name="resize_btn">Resize File System</string> + <string name="resize_btn_s">Resize</string> + <string name="resize_confirm">Resize %tw_partition_name%?</string> + <string name="resizing">Resizing...</string> + <string name="resize_complete">Resize Complete</string> + <string name="swipe_resize">Swipe to Resize</string> + <string name="swipe_resize_s"> Resize</string> + <string name="repair_btn">Repair File System</string> + <string name="repair_btn_s">Repair</string> + <string name="repair_confirm">Repair %tw_partition_name%?</string> + <string name="repairing">Repairing...</string> + <string name="repair_complete">Repair Complete</string> + <string name="swipe_repair">Swipe to Repair</string> + <string name="swipe_repair_s"> Repair</string> + <string name="change_fs_btn">Change File System</string> + <string name="change_fs_btn_s">Change</string> + <string name="change_fs_for_hdr">Change File System for: %tw_partition_name%</string> + <string name="change_fs_for_hdr_s">Partition: %tw_partition_name% > Select File System</string> + <string name="change_fs_warn1">Some ROMs or kernels may not support some</string> + <string name="change_fs_warn2">file systems. Proceed with caution!</string> + <string name="change_fs_confirm">Change %tw_partition_name%?</string> + <string name="formatting">Formatting...</string> + <string name="format_complete">Format Complete</string> + <string name="swipe_change_fs">Swipe to Change</string> + <string name="swipe_change_s"> Change</string> + <string name="back_btn">Back</string> + <string name="wipe_enc_btn">Wipe Encryption</string> + <string name="swipe_factory_reset">Swipe to Factory Reset</string> + <string name="repair_change_btn">Repair or Change File System</string> + <string name="storage_hdr">Storage: %tw_storage_display_name% (%tw_storage_free_size% MB)</string> + <string name="backup_hdr">Backup</string> + <string name="backup_confirm_hdr">Confirm Backup</string> + <string name="encryption_tab">ENCRYPTION</string> + <string name="encryption">Encryption:</string> + <string name="name">Name:</string> + <string name="sel_part_backup">Select Partitions to Backup:</string> + <string name="storage">Storage:</string> + <string name="enc_disabled">disabled - set a password to enable</string> + <string name="enc_enabled">enabled</string> + <string name="enable_backup_comp_chk">Enable compression</string> + <string name="skip_md5_backup_chk">Skip MD5 generation during backup</string> + <string name="disable_backup_space_chk">Disable Free Space Check</string> + <string name="refresh_sizes_btn">Refresh Sizes</string> + <string name="swipe_backup">Swipe to Backup</string> + <string name="append_date_btn">Append Date</string> + <string name="backup_name_exists">A backup with that name already exists!</string> + <string name="encrypt_backup">Encrypt your Backup?</string> + <string name="enter_pass">Enter Password:</string> + <string name="enter_pass2">Enter Password Again:</string> + <string name="pass_not_match">Passwords do not match!</string> + <string name="partitions">Partitions:</string> + <string name="disabled">Disabled</string> + <string name="enabled">Enabled</string> + <string name="backup_name_hdr">Set Backup Name</string> + <string name="progress">Progress:</string> + <string name="backup_complete">Backup Complete</string> + <string name="backup_cancel">Backup Cancelled</string> + <string name="restore_hdr">Restore</string> + <string name="sel_backup_hdr">Select Backup</string> + <string name="restore_sel_store_hdr">Select Backup from %tw_storage_display_name% (%tw_storage_free_size% MB)</string> + <string name="restore_sel_pack_fs">Select Package to Restore:</string> + <string name="restore_enc_backup_hdr">Encrypted Backup</string> + <string name="restore_dec_fail">Password failed, please try again!</string> + <string name="del_backup_btn">Delete Backup</string> + <string name="del_backup_confirm">Delete Backup?</string> + <string name="del_backup_confirm2">This cannot be undone!</string> + <string name="deleting_backup">Deleting Backup...</string> + <string name="backup_deleted">Backup Delete Complete</string> + <string name="swipe_delete">Swipe to Delete</string> + <string name="swipe_delete_s"> Delete</string> + <string name="restore_try_decrypt">Encrypted Backup - Trying Decryption</string> + <string name="restore_try_decrypt_s">Trying Decryption</string> + <string name="restore_backup_date">Backup made on %tw_restore_file_date%</string> + <string name="restore_sel_part">Select Partitions to Restore:</string> + <string name="retore_enable_md5_chk">Enable MD5 Verification of Backup Files</string> + <string name="swipe_restore">Swipe to Restore</string> + <string name="swipe_restore_s"> Restore</string> + <string name="rename_backup_hdr">Rename Backup</string> + <string name="rename_backup_confirm">Rename Backup?</string> + <string name="rename_backup_confirm2">This cannot be undone!</string> + <string name="renaming_backup">Renaming Backup...</string> + <string name="rename_backup_complete">Backup Rename Complete</string> + <string name="swipe_to_rename">Swipe to Rename</string> + <string name="swipe_rename"> Rename</string> + <string name="confirm_hdr">Confirm</string> + <string name="mount_hdr">Mount</string> + <string name="mount_sel_part"></string> + <string name="mount_sel_part">Select Partitions to Mount:</string> + <string name="mount_sys_ro_chk">Mount system partition read-only</string> + <string name="mount_sys_ro_s_chk">Mount System RO</string> + <string name="decrypt_data_btn">Decrypt Data</string> + <string name="disable_mtp_btn">Disable MTP</string> + <string name="enable_mtp_btn">Enable MTP</string> + <string name="mount_usb_storage_btn">Mount USB Storage</string> + <string name="usb_storage_hdr">USB Storage</string> + <string name="usb_stor_mnt1">USB Storage Mounted</string> + <string name="usb_stor_mnt2">Be sure to safely remove your device</string> + <string name="usb_stor_mnt3">from your computer before unmounting!</string> + <string name="unmount_btn">Unmount</string> + <string name="reboot_hdr">Reboot Menu</string> + <string name="rb_system_btn">System</string> + <string name="rb_poweroff_btn">Power Off</string> + <string name="rb_recovery_btn">Recovery</string> + <string name="rb_bootloader_btn">Bootloader</string> + <string name="rb_download_btn">Download</string> + <string name="turning_off">Turning Off...</string> + <string name="swipe_power_off">Swipe to Power Off</string> + <string name="swipe_power_off_s">Power Off</string> + <string name="sys_ro_hdr">Unmodified System Partition</string> + <string name="sys_ro_keep">Keep System Read only?</string> + <string name="sys_rop1">TWRP can leave your system partition unmodified</string> + <string name="sys_rop2">to make it easier for you to take official updates.</string> + <string name="sys_rop3">TWRP will be unable to prevent the stock ROM from</string> + <string name="sys_rop4">replacing TWRP and will not offer to root your device.</string> + <string name="sys_rop5">Installing zips or performing adb operations may still</string> + <string name="sys_rop6">modify the system partition.</string> + <string name="sys_rol1">TWRP can leave your system partition unmodified to make it easier for you to take official updates.</string> + <string name="sys_rol2">TWRP will be unable to prevent the stock ROM from replacing TWRP and will not offer to root your device.</string> + <string name="sys_rol3">Installing zips or performing adb operations may still modify the system partition.</string> + <string name="sys_ro_never_show_chk">Never show this screen during boot again</string> + <string name="sys_ro_keep_ro_btn">Keep Read Only</string> + <string name="swipe_allow_mod">Swipe to Allow Modifications</string> + <string name="swipe_allow_mod_s">Allow Modifications</string> + <string name="settings_hdr">Settings</string> + <string name="settings_gen_hdr">General Settings</string> + <string name="settings_gen_s_hdr">General</string> + <string name="settings_gen_btn">General</string> + <string name="use_rmrf_chk">Use rm -rf instead of formatting</string> + <string name="use24clock_chk">Use 24-hour clock</string> + <string name="rev_navbar_chk">Reversed navbar layout</string> + <string name="simact_chk">Simulate actions for theme testing</string> + <string name="simfail_chk">Simulate failure for actions</string> + <string name="ctr_navbar_rdo">Center navbar buttons</string> + <string name="lft_navbar_rdo">Left align navbar buttons</string> + <string name="rht_navbar_rdo">Right align navbar buttons</string> + <string name="restore_defaults_btn">Restore Defaults</string> + <string name="settings_tz_btn">Time Zone</string> + <string name="settings_screen_btn">Screen</string> + <string name="settings_screen_bright_btn">Screen Brightness</string> + <string name="settings_vibration_btn">Vibration</string> + <string name="settings_language_btn">Language</string> + <string name="time_zone_hdr">Time Zone</string> + <string name="sel_tz_list">Select Time Zone:</string> + <!-- Translator note: if it does not make sense to translate the locations or if it makes more sense, + feel free to change the location listed or drop the location entirely and just call it UTC -6 --> + <string name="utcm11">(UTC -11) Samoa, Midway Island</string> + <string name="utcm10">(UTC -10) Hawaii</string> + <string name="utcm9">(UTC -9) Alaska</string> + <string name="utcm8">(UTC -8) Pacific Time</string> + <string name="utcm7">(UTC -7) Mountain Time</string> + <string name="utcm6">(UTC -6) Central Time</string> + <string name="utcm5">(UTC -5) Eastern Time</string> + <string name="utcm4">(UTC -4) Atlantic Time</string> + <string name="utcm3">(UTC -3) Brazil, Buenos Aires</string> + <string name="utcm2">(UTC -2) Mid-Atlantic</string> + <string name="utcm1">(UTC -1) Azores, Cape Verde</string> + <string name="utc0">(UTC 0) London, Dublin, Lisbon</string> + <string name="utcp1">(UTC +1) Berlin, Brussels, Paris</string> + <string name="utcp2">(UTC +2) Athens, Istanbul, South Africa</string> + <string name="utcp3">(UTC +3) Moscow, Baghdad</string> + <string name="utcp4">(UTC +4) Abu Dhabi, Tbilisi, Muscat</string> + <string name="utcp5">(UTC +5) Yekaterinburg, Islamabad</string> + <string name="utcp6">(UTC +6) Almaty, Dhaka, Colombo</string> + <string name="utcp7">(UTC +7) Bangkok, Hanoi, Jakarta</string> + <string name="utcp8">(UTC +8) Beijing, Singapore, Hong Kong</string> + <string name="utcp9">(UTC +9) Tokyo, Seoul, Yakutsk</string> + <string name="utcp10">(UTC +10) Eastern Australia, Guam</string> + <string name="utcp11">(UTC +11) Vladivostok, Solomon Islands</string> + <string name="utcp12">(UTC +12) Auckland, Wellington, Fiji</string> + <string name="sel_tz_offset">Select Offset (usually 0): %tw_time_zone_guioffset%</string> + <string name="tz_offset_none">None</string> + <string name="tz_offset_0">0</string> + <string name="tz_offset_15">15</string> + <string name="tz_offset_30">30</string> + <string name="tz_offset_45">45</string> + <string name="use_dst_chk">Use daylight savings time (DST)</string> + <string name="curr_tz">Current Time Zone: %tw_time_zone%</string> + <string name="curr_tz_s">Current Time Zone:</string> + <string name="set_tz_btn">Set Time Zone</string> + <string name="settings_screen_hdr">Screen Settings</string> + <string name="settings_screen_timeout_hdr">Screen Timeout</string> + <string name="enable_timeout_chk">Enable screen timeout</string> + <string name="screen_to_slider">Screen timeout in seconds:</string> + <string name="screen_to_slider_s">Screen timeout in seconds (0=disabled): %tw_screen_timeout_secs%</string> + <string name="screen_to_na">Screen timeout setting unavailable</string> + <string name="screen_bright_slider">Brightness: %tw_brightness_pct%%</string> + <string name="screen_bright_na">Brightness setting unavailable</string> + <string name="vibration_hdr">Vibration</string> + <string name="button_vibration_hdr">Button Vibration</string> + <string name="kb_vibration_hdr">Keyboard Vibration</string> + <string name="act_vibration_hdr">Action Vibration</string> + <string name="button_vibration">Button Vibration:</string> + <string name="kb_vibration">Keyboard Vibration:</string> + <string name="act_vibration">Action Vibration:</string> + <string name="select_language">Select Language:</string> + <string name="set_language_btn">Set Language</string> + <string name="advanced_hdr">Advanced</string> + <string name="copy_log_confirm">Copy Log to SD Card?</string> + <string name="copying_log">Copying Log to SD Card...</string> + <string name="copy_log_complete">Log Copy Complete</string> + <string name="fix_perm_btn">Fix Permissions</string> + <string name="fix_perm_s_btn">Fix Perms</string> + <string name="part_sd_btn">Partition SD Card</string> + <string name="part_sd_s_btn">SD Card</string> + <string name="file_manager_btn">File Manager</string> + <string name="language_hdr">Language</string> + <string name="terminal_btn">Terminal</string> + <string name="reload_theme_btn">Reload Theme</string> + <string name="dumlock_btn">HTC Dumlock</string> + <string name="inject_twrp_btn">Inject TWRP</string> + <string name="inject_twrp_confirm">Re-Inject TWRP?</string> + <string name="injecting_twrp">Re-Injecting TWRP...</string> + <string name="inject_twrp_complete">TWRP Injection Complete</string> + <string name="swipe_to_confirm">Swipe to Confirm</string> + <string name="part_sd_hdr">Partition SD Card</string> + <string name="part_sd_lose">You will lose all files on your SD card!</string> + <string name="part_sd_undo">This action cannot be undone!</string> + <string name="part_sd_ext_sz">EXT Size:</string> + <string name="part_sd_swap_sz">Swap Size:</string> + <string name="part_sd_m">-</string> + <string name="part_sd_p">+</string> + <string name="file_system">File System:</string> + <string name="swipe_part_sd">Swipe to Partition</string> + <string name="swipe_part_sd_s">Partition</string> + <string name="partitioning_sd">Partitioning SD Card...</string> + <string name="partitioning_sd2">This will take a few minutes.</string> + <string name="part_sd_complete">Partitioning Complete</string> + <string name="dumlock_hdr">HTC Dumlock</string> + <string name="dumlock_restore_btn">Restore Original Boot</string> + <string name="dumlock_restore_confirm">Restore original boot image?</string> + <string name="dumlock_restoring">Restoring Original Boot...</string> + <string name="dumlock_restore_complete">Restore Original Boot Complete</string> + <string name="dumlock_reflash_btn">Reflash Recovery</string> + <string name="dumlock_reflash_confirm">Reflash recovery to boot?</string> + <string name="dumlock_reflashing">Flashing recovery to boot...</string> + <string name="dumlock_reflash_complete">Recovery Flash to Boot Complete</string> + <string name="dumlock_install_btn">Install HTC Dumlock</string> + <string name="dumlock_install_confirm">Install HTC dumlock files to ROM?</string> + <string name="dumlock_installing">Installing HTC Dumlock...</string> + <string name="dumlock_install_complete">HTC Dumlock Install Complete</string> + <string name="swipe_to_unlock">Swipe to Unlock</string> + <string name="swipe_unlock"> Unlock</string> + <string name="fm_hdr">File Manager</string> + <string name="fm_sel_file">Select a File or Folder</string> + <string name="fm_type_folder">Folder</string> + <string name="fm_type_file">File</string> + <string name="fm_choose_act">Choose Action</string> + <string name="fm_selected">%tw_fm_type% selected:</string> + <string name="fm_copy_btn">Copy</string> + <string name="fm_copy_file_btn">Copy File</string> + <string name="fm_copy_folder_btn">Copy Folder</string> + <string name="fm_copying">Copying</string> + <string name="fm_move_btn">Move</string> + <string name="fm_moving">Moving</string> + <string name="fm_chmod755_btn">chmod 755</string> + <string name="fm_chmod755ing">chmod 755</string> + <string name="fm_chmod_btn">chmod</string> + <string name="fm_delete_btn">Delete</string> + <string name="fm_deleting">Deleting</string> + <string name="fm_rename_btn">Rename</string> + <string name="fm_rename_file_btn">Rename File</string> + <string name="fm_rename_folder_btn">Rename Folder</string> + <string name="fm_renaming">Renaming</string> + <string name="fm_sel_dest">Select Destination Folder</string> + <string name="fm_sel_curr_folder">Select Current Folder</string> + <string name="fm_rename_hdr">Rename</string> + <string name="fm_set_perms_hdr">Set Permissions</string> + <string name="fm_perms">Permissions:</string> + <string name="fm_complete">File Operation Complete</string> + <string name="decrypt_data_hdr">Decrypt Data</string> + <string name="decrypt_data_enter_pass"></string> + <string name="decryt_data_failed">Password failed, please try again!</string> + <string name="decrypt_data_enter_pattern">Enter Pattern.</string> + <string name="decrypt_data_trying">Trying Decryption</string> + <string name="term_hdr">Terminal Command</string> + <string name="term_s_hdr">Terminal</string> + <string name="term_kill_btn">KILL</string> + <string name="term_sel_folder_hdr">Browse to Starting Folder</string> + <string name="adb_sideload_hdr">ADB Sideload</string> + <string name="sideload_wipe_dalvik_chk">Wipe Dalvik Cache</string> + <string name="sideload_wipe_cache_chk">Wipe Cache</string> + <string name="swipe_to_sideload">Swipe to Start Sideload</string> + <string name="swipe_sideload"> Start</string> + <string name="sideload_confirm">ADB Sideload</string> + <string name="sideload_usage">Usage: adb sideload filename.zip</string> + <string name="sideload_complete">ADB Sideload Complete</string> + <string name="fix_perms_hdr">Fix Permissions</string> + <string name="fix_perms_note">Note: Fixing permissions is rarely needed.</string> + <string name="fix_perms_selinux_chk">Also fix SELinux Contexts</string> + <string name="fix_perms_sel_note1">Fixing SELinux Contexts may cause</string> + <string name="fix_perms_sel_note2">your device to not boot properly.</string> + <string name="swipe_to_fix_perms">Swipe to Fix Permissions</string> + <string name="swipe_fix_perms"> Fix Perms</string> + <string name="fixing_perms">Fixing Permissions...</string> + <string name="fix_perms_complete">Fix Permissions Complete</string> + <string name="reboot_hdr">Reboot</string> + <string name="su_hdr">SuperSU Check</string> + <string name="su_note1">Your device does not appear to be rooted.</string> + <string name="su_note2">Install SuperSU now?</string> + <string name="su_note3">This will root your device.</string> + <string name="su_cancel">Do Not Install</string> + <string name="swipe_su_to_install">Swipe to Install</string> + <string name="swipe_su_install"> Install</string> + <string name="su_installing">Installing SuperSU</string> + <string name="sel_storage_list">Select Storage</string> + <string name="ok_btn">OK</string> + + <!-- Various console messages - these consist of user displayed messages, oftentimes errors --> + <string name="no_kernel_selinux">Kernel does not have support for reading SELinux contexts.</string> + <string name="full_selinux">Full SELinux support is present.</string> + <string name="no_selinux">No SELinux support (no libselinux).</string> + <string name="mtp_enabled">MTP Enabled</string> + <string name="mtp_crash">MTP Crashed, not starting MTP on boot.</string> + <string name="rebooting">Rebooting...</string> + <string name="decrypt_success">Successfully decrypted with default password.</string> + <string name="unable_to_decrypt">Unable to decrypt with default password. You may need to perform a Format Data.</string> + <string name="generating_md51">Generating MD5</string> + <!-- Message displayed during a backup if we are generating an MD5, ideally, leave the leading " * " to help align and separate this text from other console text --> + <string name="generating_md52"> * Generating md5...</string> + <string name="md5_created"> * MD5 Created.</string> + <string name="md5_error"> * MD5 Error!</string> + <string name="md5_compute_error"> * Error computing MD5.</string> + <string name="md5_created"> * MD5 Created.</string> + <string name="current_date">(Current Date)</string> + <string name="auto_generate">(Auto Generate)</string> + <string name="unable_to_locate_partition">Unable to locate '{1}' partition for backup calculations.</string> + <string name="no_partition_selected">No partitions selected for backup.</string> + <string name="total_partitions_backup"> * Total number of partitions to back up: {1}</string> + <string name="total_backup_size"> * Total size of all data: {1}MB</string> + <string name="available_space"> * Available space: {1}MB</string> + <string name="unable_locate_storage">Unable to locate storage device.</string> + <string name="Not enough free space on storage.">Not enough free space on storage.</string> + <string name="backup_started">[BACKUP STARTED]</string> + <string name="backup_folder"> * Backup Folder: {1}</string> + <string name="fail_backup_folder">Failed to make backup folder.</string> + <string name="avg_backup_fs">Average backup rate for file systems: {1} MB/sec</string> + <string name="avg_backup_img">Average backup rate for imaged drives: {1} MB/sec</string> + <string name="total_backed_size">[{1} MB TOTAL BACKED UP]</string> + <string name="backup_completed">[BACKUP COMPLETED IN {1} SECONDS]</string> + <string name="restore_started">[RESTORE STARTED]</string> + <string name="restore_folder">Restore folder: '{1}'</string> + <!-- {1} is the partition display name and {2} is the number of seconds --> + <string name="restort_part_done">[{1} done ({2} seconds)]</string> + <string name="verifying_md5">Verifying MD5</string> + <string name="skip_md5">Skipping MD5 check based on user setting.</string> + <string name="calc_restore">Calculating restore details...</string> + <string name="restore_read_only">Cannot restore {1} -- mounted read only.</string> + <string name="restore_unable_locate">Unable to locate '{1}' partition for restoring.</string> + <string name="no_part_restore">No partitions selected for restore.</string> + <string name="restore_part_count">Restoring {1} partitions...</string> + <string name="total_restore_size">Total restore size is {1}MB</string> + <string name="updating_system_details">Updating System Details</string> + <string name="restore_complete">[RESTORE COMPLETED IN {1} SECONDS]</string> + <!-- {1} is the path we could not open, {2} is strerror output --> + <string name="error_opening_strerr">Error opening: '{1}' ({2})</string> + <string name="unable_locate_part_backup_name">Unable to locate partition by backup name: '{1}'</string> + <string name="unable_find_part_path">Unable to find partition for path '{1}'</string> + <string name="update_part_details">Updating partition details...</string> + <string name="update_part_details_done">...done</string> + <string name="wiping_dalvik">Wiping Dalvik Cache Directories...</string> + <string name="cleaned">Cleaned: {1}...</string> + <string name="dalvik_done">-- Dalvik Cache Directories Wipe Complete!</string> + <string name="no_andsec">No android secure partitions found.</string> + <string name="unable_to_locate">Unable to locate {1}.</string> + <string name="wiping_datamedia">Wiping internal storage -- /data/media...</string> + <string name="unable_to_mount">Unable to mount {1}</string> + <string name="unable_to_mount_internal">Unable to mount internal_storage</string> + <string name="unable_to_mount_storage">Unable to mount storage</string> + <string name="fail_decrypt">Failed to decrypt data.</string> + <string name="no_crypto_support">No crypto support was compiled into this build.</string> + <string name="decrypt_success">Data successfully decrypted, new block device: '{1}'</string> + <string name="done">Done.</string> + <string name="start_partition_sd">Partitioning SD Card...</string> + <string name="partition_sd_locate">Unable to locate device to partition.</string> + <string name="ext_swap_size">EXT + Swap size is larger than sdcard size.</string> + <string name="remove_part_table">Removing partition table...</string> + <string name="unable_rm_part">Unable to remove partition table.</string> + <string name="create_part">Creating {1} partition...</string> + <string name="unable_to_create_part">Unable to create {1} partition.</string> + <string name="format_sdext_as">Formatting sd-ext as {1}...</string> + <string name="part_complete">Partitioning complete.</string> + <string name="unable_to_open">Unable to open '{1}'.</string> + <string name="mtp_already_enabled">MTP already enabled</string> + <string name="mtp_fail">Failed to enable MTP</string> + <string name="no_mtp">MTP support not included</string> + <string name="image_flash_start">[IMAGE FLASH STARTED]</string> + <string name="img_to_flash">Image to flash: '{1}'</string> + <string name="flash_unable_locate">Unable to locate '{1}' partition for flashing.</string> + <string name="no_part_flash">No partitions selected for flashing.</string> + <string name="too_many_flash">Too many partitions selected for flashing.</string> + <string name="invalid_flash">Invalid flash partition specified.</string> + <string name="flash_done">[IMAGE FLASH COMPLETED]</string> + <string name="wiping">Wiping {1}</string> + <string name="repair_not_exist">{1} does not exist! Cannot repair!</string> + <string name="unable_repair">Unable to repair {1}.</string> + <string name="mount_data_footer">Could not mount /data and unable to find crypto footer.</string> + <!-- {1} is the folder name that we could not create, {2} is strerror output --> + <string name="create_folder_strerr">Can not create '{1}' folder ({2}).</string> + <!-- {1} is the folder name that we could not mount, {2} is strerror output --> + <string name="fail_mount">Failed to mount '{1}' ({2})</string> + <!-- {1} is the folder name that we could not unmount, {2} is strerror output --> + <string name="fail_mount">Failed to unmount '{1}' ({2})</string> + <string name="cannot_resize">Cannot resize {1}.</string> + <string name="repair_resize">Repairing {1} before resizing.</string> + <string name="unable_resize">Unable to resize {1}.</string> + <string name="no_md5_found">No md5 file found for '{1}'. Please unselect Enable MD5 verification to restore.</string> + <string name="md5_fail_match">MD5 failed to match on '{1}'.</string> + <string name="restoring">Restoring</string> + <string name="format_data_msg">You may need to reboot recovery to be able to use /data again.</string> + <string name="format_data_err">Unable to format to remove encryption.</string> + <string name="formating_using">Formatting {1} using {2}...</string> + <string name="unable_to_wipe">Unable to wipe {1}.</string> + <string name="remove_all">Removing all files under '{1}'</string> + <string name="wiping_data">Wiping data without wiping /data/media ...</string> + <string name="backing_up">Backing up {1}...</string> + <string name="backing">Backing Up</string> + <string name="backup_size">Backup file size for '{1}' is 0 bytes.</string> + <string name="datamedia_fs_restore">WARNING: This /data backup was made with {1} file system! The backup may not boot unless you change back to {1}.</string> + <string name="restoring">Restoring {1}...</string> + <string name="restore">Restoring</string> + <string name="recreate_folder_err">Unable to recreate {1} folder.</string> + <string name="img_size_err">Size of image is larger than target device</string> + <string name="flashing">Flashing {1}...</string> + <string name="backup_folder">Backup folder set to '{1}'</string> + <string name="locate_backup_err">Unable to locate backup '{1}'</string> + <string name="set_restore_opt">Setting restore options: '{1}':</string> + <string name="md5_check_skip">MD5 check skip is on</string> + <string name="ors_encrypt_restore_err">Unable to use OpenRecoveryScript to restore an encrypted backup.</string> + <string name="mounting">Mounting</string> + <string name="unmounting">Unmounting</string> + <string name="mounted">Mounted '{1}'</string> + <string name="unmounted">Unmounted '{1}'</string> + <string name="setting">Setting '{1}' to '{2}'</string> + <string name="setting_empty">Setting '{1}' to empty</string> + <string name="making_dir1">Making Directory</string> + <string name="making_dir2">Making directory: '{1}'</string> + <string name="running_command">Running Command</string> + <string name="sideload">ADB Sideload</string> + <string name="start_sideload">Starting ADB sideload feature...</string> + <string name="need_new_adb">You need adb 1.0.32 or newer to sideload to this device.</string> + <string name="no_pwd">No password provided.</string> + <string name="done_ors">Done processing script file</string> + <string name="injecttwrp">Injecting TWRP into boot image...</string> + <string name="zip_err">Error installing zip file '{1}'</string> + <string name="installing_zip">Installing zip file '{1}'</string> + <string name="select_backup_opt">Setting backup options:</string> + <string name="compression_on">Compression is on</string> + <string name="md5_off">MD5 Generation is off</string> + <string name="backup_fail">Backup Failed</string> + <string name="backup_complete">Backup complete!</string> + <string name="running_recovery_commands">Running Recovery Commands</string> + <string name="recovery_commands_complete">Recovery Commands Complete</string> + <string name="running_ors">Running OpenRecoveryScript</string> + <string name="ors_complete">OpenRecoveryScript Complete</string> + <string name="no_updater_binary">Could not find '{1}' in the zip file.</string> + <string name="check_for_md5">Checking for MD5 file...</string> + <string name="fail_sysmap">Failed to map file '{1}'</string> + <string name="verify_zip_sig">Verifying zip signature...</string> + <string name="verify_zip_fail">Zip signature verification failed!</string> + <string name="verify_zip_done">Zip signature verified successfully.</string> + <string name="zip_corrupt">Zip file is corrupt!</string> + <string name="no_md5">Skipping MD5 check: no MD5 file found</string> + <string name="md5_fail">MD5 does not match</string> + <string name="md5_match">MD5 matched</string> + <string name="pid_signal">{1} process ended with signal: {2}</string> + <string name="pid_error">{1} process ended with ERROR: {2}</string> + <string name="install_dumlock">Installing HTC Dumlock to system...</string> + <string name="dumlock_restore">Restoring original boot...</string> + <string name="dumlock_reflash">Reflashing recovery to boot...</string> + <string name="run_script">Running {1} script...</string> + <string name="rename_stock">Renamed stock recovery file in /system to prevent the stock ROM from replacing TWRP.</string> + <string name="split_backup">Breaking backup file into multiple archives...</string> + <string name="backup_error">Error creating backup.</string> + <string name="restore_error">Error during restore process.</string> + <string name="split_thread">Splitting thread ID {1} into archive {2}</string> + <!-- These 2 items are saved in the data manager instead of resource manager, so %llu, etc is correct instead of {1} --> + <string name="file_progress">%llu of %llu files, %i%%</string> + <string name="size_progress">%lluMB of %lluMB, %i%%</string> + <string name="decrypt_cmd">Attempting to decrypt data partition via command line.</string> + <string name="base_pkg_err">Failed to load base packages.</string> + <string name="simulating">Simulating actions...</string> + <string name="backup_cancel">Backup Canceled.</string> + <string name="config_twrp">Configuring TWRP...</string> + <string name="config_twrp_err">Unable to configure TWRP with this kernel.</string> + <string name="copy_log">Copied recovery log to {1}.</string> + <string name="max_queue">Maximum zip queue reached!</string> + <string name="min_queue">Minimum zip queue reached!</string> + <string name="screenshot_err">Failed to take a screenshot!</string> + <string name="zip_wipe_cache">One or more zip requested a cache wipe -- Wiping cache now.</string> + <string name="and_sec_wipe_err">Unable to wipe android secure</string> + <string name="dalvik_wipe_err">Failed to wipe dalvik</string> + <string name="auto_gen">(Auto Generate)</string> + <string name="curr_date">(Current Date)</string> + <string name="backup_name_len">Backup name is too long.</string> + <string name="backup_name_invalid">Backup name '{1}' contains invalid character: '{1}'</string> + <string name="backup_name_exists">A backup with this name already exists.</string> + <string name="no_real_sdcard">This device does not have a real SD Card! Aborting!</string> + <string name="cancel_sideload">Cancelling ADB sideload...</string> + <string name="change_fs_err">Error changing file system.</string> + </resources> +</language> diff --git a/gui/theme/common/languages/es.xml b/gui/theme/common/languages/es.xml new file mode 100644 index 000000000..ec2b41db6 --- /dev/null +++ b/gui/theme/common/languages/es.xml @@ -0,0 +1,13 @@ +<?xml version="1.0"?> + +<language> + <display>Español</display> + + <resources> + <resource name="font" type="fontoverride" filename="RobotoCondensed-Regular.ttf" scale="100" /> + <resource name="mediumfont" type="fontoverride" filename="RobotoCondensed-Regular.ttf" scale="100" /> + <resource name="filelist" type="fontoverride" filename="RobotoCondensed-Regular.ttf" scale="100" /> + <resource name="fixed" type="fontoverride" filename="DroidSansMono.ttf" scale="100" /> + <string name="install_btn">Instalar</string> + </resources> +</language> diff --git a/gui/theme/common/languages/fi.xml b/gui/theme/common/languages/fi.xml new file mode 100644 index 000000000..51ed60d14 --- /dev/null +++ b/gui/theme/common/languages/fi.xml @@ -0,0 +1,13 @@ +<?xml version="1.0"?> + +<language> + <display>Suomi</display> + + <resources> + <resource name="font" type="fontoverride" filename="RobotoCondensed-Regular.ttf" scale="100" /> + <resource name="mediumfont" type="fontoverride" filename="RobotoCondensed-Regular.ttf" scale="100" /> + <resource name="filelist" type="fontoverride" filename="RobotoCondensed-Regular.ttf" scale="100" /> + <resource name="fixed" type="fontoverride" filename="DroidSansMono.ttf" scale="100" /> + <string name="install_btn">Asenna</string> + </resources> +</language> diff --git a/gui/theme/common/portrait.xml b/gui/theme/common/portrait.xml index dc9bea208..2cd49e4c6 100644..100755 --- a/gui/theme/common/portrait.xml +++ b/gui/theme/common/portrait.xml @@ -158,7 +158,7 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Team Win Recovery Project</text> + <text>{@twrp_header=Team Win Recovery Project}</text> </text> <text style="text_m"> @@ -169,7 +169,7 @@ <button style="main_button"> <placement x="%indent%" y="%row2a_y%"/> - <text>Install</text> + <text>{@install_btn=Install}</text> <actions> <action function="queueclear"/> <action function="set">tw_selectimage=0</action> @@ -179,43 +179,43 @@ <button style="main_button"> <placement x="%center_x%" y="%row2a_y%"/> - <text>Wipe</text> + <text>{@wipe_btn=Wipe}</text> <action function="page">wipe</action> </button> <button style="main_button"> <placement x="%indent%" y="%row8_y%"/> - <text>Backup</text> + <text>{@backup_btn=Backup}</text> <action function="page">backup</action> </button> <button style="main_button"> <placement x="%center_x%" y="%row8_y%"/> - <text>Restore</text> + <text>{@restore_btn=Restore}</text> <action function="page">restore</action> </button> <button style="main_button"> <placement x="%indent%" y="%row13a_y%"/> - <text>Mount</text> + <text>{@mount_btn=Mount}</text> <action function="page">mount</action> </button> <button style="main_button"> <placement x="%center_x%" y="%row13a_y%"/> - <text>Settings</text> + <text>{@settings_btn=Settings}</text> <action function="page">settings</action> </button> <button style="main_button"> <placement x="%indent%" y="%row19_y%"/> - <text>Advanced</text> + <text>{@advanced_btn=Advanced}</text> <action function="page">advanced</action> </button> <button style="main_button"> <placement x="%center_x%" y="%row19_y%"/> - <text>Reboot</text> + <text>{@reboot_btn=Reboot}</text> <action function="page">reboot</action> </button> </page> @@ -226,18 +226,18 @@ <text style="text_l"> <condition var1="tw_selectimage" var2="0"/> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Install Zip</text> + <text>{@install_zip_hdr=Install Zip}</text> </text> <text style="text_l"> <condition var1="tw_selectimage" var2="1"/> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Install Image</text> + <text>{@install_image_hdr=Install Image}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Select File from %tw_storage_display_name% (%tw_storage_free_size% MB)</text> + <text>{@select_file_from_storage=Select File from %tw_storage_display_name% (%tw_storage_free_size% MB)}</text> </text> <template name="sort_options"/> @@ -264,7 +264,7 @@ <button style="main_button_half_height"> <placement x="%indent%" y="%row21a_y%"/> - <text>Select Storage</text> + <text>{@select_storage_btn=Select Storage}</text> <actions> <action function="set">tw_back=install</action> <action function="overlay">select_storage</action> @@ -274,7 +274,7 @@ <button style="main_button_half_height"> <condition var1="tw_selectimage" var2="0"/> <placement x="%center_x%" y="%row21a_y%"/> - <text>Install Image</text> + <text>{@install_image_btn=Install Image}</text> <actions> <action function="set">tw_selectimage=1</action> <action function="page">install</action> @@ -284,7 +284,7 @@ <button style="main_button_half_height"> <condition var1="tw_selectimage" var2="1"/> <placement x="%center_x%" y="%row21a_y%"/> - <text>Install Zip</text> + <text>{@install_zip_btn=Install Zip}</text> <actions> <action function="set">tw_selectimage=0</action> <action function="page">install</action> @@ -326,32 +326,32 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Install Zip</text> + <text>{@install_zip_hdr=Install Zip}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>%tw_zip_queue_count% of max of 10 Files queued</text> + <text>{@zip_queue_count=%tw_zip_queue_count% of max of 10 Files queued}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>This operation may install incompatible</text> + <text>{@zip_warn1=This operation may install incompatible}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row3_y%" placement="5"/> - <text>software and render your device unusable.</text> + <text>{@zip_warn2=software and render your device unusable.}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row5_y%" placement="5"/> - <text>Press back to cancel adding this zip.</text> + <text>{@zip_back_cancel=Press back to cancel adding this zip.}</text> </text> <text style="text_m_accent"> <placement x="%indent%" y="%row7_y%"/> - <text>Folder:</text> + <text>{@folder=Folder:}</text> </text> <text style="text_m"> @@ -361,7 +361,7 @@ <text style="text_m_accent"> <placement x="%indent%" y="%row9a_y%"/> - <text>File:</text> + <text>{@file=File:}</text> </text> <text style="text_m"> @@ -371,26 +371,26 @@ <checkbox> <placement x="%indent%" y="%row12_y%"/> - <text>Zip file signature verification</text> + <text>{@zip_sig_chk=Zip signature verification}</text> <data variable="tw_signed_zip_verify"/> </checkbox> <checkbox> <condition var1="tw_has_injecttwrp" var2="1"/> <placement x="%indent%" y="%row13_y%"/> - <text>Inject TWRP after install</text> + <text>{@inject_twrp_chk=Inject TWRP after install}</text> <data variable="tw_inject_after_zip"/> </checkbox> <button style="main_button_half_height"> <placement x="%indent%" y="%row18a_y%"/> - <text>Add more Zips</text> + <text>{@zip_add_btn=Add more Zips}</text> <action function="page">install</action> </button> <button style="main_button_half_height"> <placement x="%center_x%" y="%row18a_y%"/> - <text>Clear Zip Queue</text> + <text>{@zip_clear_btn=Clear Zip Queue}</text> <actions> <action function="queueclear"/> <action function="page">install</action> @@ -398,7 +398,7 @@ </button> <slider> - <text>Swipe to confirm Flash</text> + <text>{@swipe_flash=Swipe to confirm Flash}</text> <action function="flash">flash_zip</action> </slider> @@ -421,7 +421,7 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Install Zip %tw_zip_index% of %tw_zip_queue_count%</text> + <text>{@install_zip_count_hdr=Install Zip %tw_zip_index% of %tw_zip_queue_count%}</text> </text> <text style="text_m"> @@ -444,26 +444,26 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Install Zip</text> + <text>{@install_zip_hdr=Install Zip}</text> </text> <text style="text_m_fail"> <condition var1="tw_operation_status" op="!=" var2="0"/> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Failed</text> + <text>{@failed=Failed}</text> </text> <text style="text_m"> <condition var1="tw_operation_status" var2="0"/> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Successful</text> + <text>{@successful=Successful}</text> </text> <template name="console"/> <button style="main_button_half_height"> <placement x="%indent%" y="%row21a_y%"/> - <text>Wipe cache/dalvik</text> + <text>{@wipe_cache_dalvik_btn=Wipe cache/dalvik}</text> <actions> <action function="set">tw_back=flash_done</action> <action function="set">tw_action=wipe</action> @@ -471,30 +471,30 @@ <action function="set">tw_has_action2=1</action> <action function="set">tw_action2=wipe</action> <action function="set">tw_action2_param=dalvik</action> - <action function="set">tw_text1=Wipe Cache & Dalvik?</action> - <action function="set">tw_action_text1=Wiping Cache & Dalvik...</action> - <action function="set">tw_complete_text1=Cache & Dalvik Wipe Complete</action> - <action function="set">tw_slider_text=Swipe to Wipe</action> + <action function="set">tw_text1={@wipe_cache_dalvik_confirm=Wipe Cache & Dalvik?}</action> + <action function="set">tw_action_text1={@wiping_cache_dalvik=Wiping Cache & Dalvik...}</action> + <action function="set">tw_complete_text1={@wipe_cache_dalvik_complete=Cache & Dalvik Wipe Complete}</action> + <action function="set">tw_slider_text={@swipe_wipe=Swipe to Wipe}</action> <action function="page">confirm_action</action> </actions> </button> <button style="main_button_half_height"> <placement x="%center_x%" y="%row21a_y%"/> - <text>Reboot System</text> + <text>{@reboot_system_btn=Reboot System}</text> <actions> <action function="set">tw_back=main2</action> <action function="set">tw_action=reboot</action> <action function="set">tw_action_param=system</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=No OS Installed! Are you</action> - <action function="set">tw_text2=sure you wish to reboot?</action> + <action function="set">tw_text1={@no_os1=No OS Installed! Are you}</action> + <action function="set">tw_text2={@no_osrb=sure you wish to reboot?}</action> <action function="set">tw_text3=</action> <action function="set">tw_text4=</action> - <action function="set">tw_action_text1=Rebooting...</action> + <action function="set">tw_action_text1={@rebooting=Rebooting...}</action> <action function="set">tw_action_text2=</action> - <action function="set">tw_complete_text1=Rebooting...</action> - <action function="set">tw_slider_text=Swipe to Reboot</action> + <action function="set">tw_complete_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_slider_text={@swipe_reboot=Swipe to Reboot}</action> <action function="page">rebootcheck</action> </actions> </button> @@ -521,17 +521,17 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Install Image</text> + <text>{@install_image_hdr=Install Image}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Select Target Partition</text> + <text>{@install_sel_target=Select Target Partition}</text> </text> <text style="text_m_accent"> <placement x="%indent%" y="%row2_y%"/> - <text>Folder:</text> + <text>{@folder=Folder:}</text> </text> <text style="text_m"> @@ -541,7 +541,7 @@ <text style="text_m_accent"> <placement x="%indent%" y="%row4a_y%"/> - <text>File:</text> + <text>{@file=File:}</text> </text> <text style="text_m"> @@ -552,20 +552,20 @@ <partitionlist> <placement x="%indent%" y="%row7_y%" w="%content_width%" h="%partitionlist_flashimage_height%"/> <icon selected="radio_true" unselected="radio_false"/> - <text>Select Partition to Flash Image:</text> + <text>{@flash_image_select=Select Partition to Flash Image:}</text> <data name="tw_flash_partition"/> <listtype name="flashimg"/> </partitionlist> <slider> - <text>Swipe to confirm Flash</text> + <text>{@swipe_flash=Swipe to confirm Flash}</text> <actions> <action function="set">tw_back=flashimage_confirm</action> <action function="set">tw_action=flashimage</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_action_text1=Flashing Image...</action> + <action function="set">tw_action_text1={@flashing_image=Flashing Image...}</action> <action function="set">tw_action_text2=</action> - <action function="set">tw_complete_text1=Image Flashed</action> + <action function="set">tw_complete_text1={@image_flashed=Image Flashed}</action> <action function="page">action_page</action> </actions> <action function="flashimage"/> @@ -615,7 +615,7 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Confirm Action</text> + <text>{@confirm_action=Confirm Action}</text> </text> <text style="text_m"> @@ -645,7 +645,7 @@ <text style="text_m"> <placement x="%center_x%" y="%row7_y%" placement="5"/> - <text>Press back button to cancel.</text> + <text>{@back_cancel=Press back button to cancel.}</text> </text> <slider> @@ -687,7 +687,7 @@ <button style="main_button_half_height"> <condition var1="tw_has_cancel" var2="1"/> <placement x="%center_x%" y="%row21a_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <action function="%tw_cancel_action%">%tw_cancel_param%</action> </button> @@ -765,20 +765,20 @@ <text style="text_m_fail"> <condition var1="tw_operation_status" op="!=" var2="0"/> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Failed</text> + <text>{@failed=Failed}</text> </text> <text style="text_m"> <condition var1="tw_operation_status" var2="0"/> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Successful</text> + <text>{@successful=Successful}</text> </text> <template name="console"/> <button style="main_button_half_height"> <placement x="%indent%" y="%row21a_y%"/> - <text>Back</text> + <text>{@back_btn=Back}</text> <actions> <action function="set">tw_clear_destination=%tw_back%</action> <action function="page">clear_vars</action> @@ -787,20 +787,20 @@ <button style="main_button_half_height"> <placement x="%center_x%" y="%row21a_y%"/> - <text>Reboot System</text> + <text>{@reboot_system_btn=Reboot System}</text> <actions> <action function="set">tw_back=main2</action> <action function="set">tw_action=reboot</action> <action function="set">tw_action_param=system</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=No OS Installed! Are you</action> - <action function="set">tw_text2=sure you wish to reboot?</action> + <action function="set">tw_text1={@no_os1=No OS Installed! Are you}</action> + <action function="set">tw_text2={@no_osrb=sure you wish to reboot?}</action> <action function="set">tw_text3=</action> <action function="set">tw_text4=</action> - <action function="set">tw_action_text1=Rebooting...</action> + <action function="set">tw_action_text1={@rebooting=Rebooting...}</action> <action function="set">tw_action_text2=</action> - <action function="set">tw_complete_text1=Rebooting...</action> - <action function="set">tw_slider_text=Swipe to Reboot</action> + <action function="set">tw_complete_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_slider_text={@swipe_reboot=Swipe to Reboot}</action> <action function="page">rebootcheck</action> </actions> </button> @@ -867,23 +867,23 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Wipe</text> + <text>{@wipe_hdr=Wipe}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Factory Reset</text> + <text>{@factory_reset_hdr=Factory Reset}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>Wipes Data, Cache, and Dalvik</text> + <text>{@factory_reset1=Wipes Data, Cache, and Dalvik}</text> </text> <text style="text_m_accent"> <condition var1="tw_has_data_media" var2="1"/> <placement x="%center_x%" y="%row3_y%" placement="5"/> - <text>(not including internal storage)</text> + <text>{@factory_reset2=(not including internal storage)}</text> </text> <text style="text_m_accent"> @@ -892,33 +892,33 @@ <condition var1="fileexists" var2="/and-sec"/> </conditions> <placement x="%center_x%" y="%row4_y%" placement="5"/> - <text>Android Secure</text> + <text>{@android_secure=Android Secure}</text> </text> <text style="text_m_accent"> <condition var1="tw_has_sdext_partition" var2="1"/> <placement x="%center_x%" y="%row5_y%" placement="5"/> - <text>SD-EXT</text> + <text>{@sdext=SD-EXT}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row7_y%" placement="5"/> - <text>Most of the time this is</text> + <text>{@factory_reset3=Most of the time this is}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row8_y%" placement="5"/> - <text>the only wipe that you need.</text> + <text>{@factory_reset4=the only wipe that you need.}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row10_y%" placement="5"/> - <text>Press back button to cancel.</text> + <text>{@back_cancel=Press back button to cancel.}</text> </text> <button style="main_button_half_height"> <placement x="%indent%" y="%row18a_y%"/> - <text>Advanced Wipe</text> + <text>{@advanced_wipe_btn=Advanced Wipe}</text> <actions> <action function="set">partitionlisterror=0</action> <action function="page">advancedwipe</action> @@ -928,7 +928,7 @@ <button style="main_button_half_height"> <condition var1="tw_has_data_media" var2="1"/> <placement x="%center_x%" y="%row18a_y%"/> - <text>Format Data</text> + <text>{@format_data_btn=Format Data}</text> <action function="page">formatdata</action> </button> @@ -938,29 +938,29 @@ <condition var1="tw_has_data_media" var2="0"/> </conditions> <placement x="%center_x%" y="%row18a_y%"/> - <text>Wipe Encryption</text> + <text>{@wipe_enc_btn=Wipe Encryption}</text> <actions> <action function="set">tw_back=wipe</action> <action function="set">tw_action=wipe</action> <action function="set">tw_action_param=DATAMEDIA</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=Wipe Encryption from Data?</action> + <action function="set">tw_text1={@wipe_enc_confirm=Wipe Encryption from Data?}</action> <action function="set">tw_text2=</action> - <action function="set">tw_action_text1=Formatting Data...</action> - <action function="set">tw_complete_text1=Data Format Complete</action> - <action function="set">tw_slider_text=Swipe to Format Data</action> + <action function="set">tw_action_text1={@formatting_data=Formatting Data...}</action> + <action function="set">tw_complete_text1={@format_data_complete=Data Format Complete}</action> + <action function="set">tw_slider_text={@swipe_format_data=Swipe to Format Data}</action> <action function="page">confirm_action</action> </actions> </button> <slider> - <text>Swipe to Factory Reset</text> + <text>{@swipe_factory_reset=Swipe to Factory Reset}</text> <actions> <action function="set">tw_back=wipe</action> <action function="set">tw_action=wipe</action> <action function="set">tw_action_param=data</action> - <action function="set">tw_action_text1=Factory Reset...</action> - <action function="set">tw_complete_text1=Factory Reset Complete</action> + <action function="set">tw_action_text1={@factory_resetting=Factory Reset...}</action> + <action function="set">tw_complete_text1={@factory_reset_complete=Factory Reset Complete}</action> <action function="page">action_page</action> </actions> </slider> @@ -985,17 +985,17 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Wipe</text> + <text>{@wipe_hdr=Wipe}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Advanced Wipe</text> + <text>{@advanced_wipe_hdr=Advanced Wipe}</text> </text> <partitionlist> <placement x="%indent%" y="%row1a_y%" w="%content_width%" h="%partitionlist_wipe_height%"/> - <text>Select Partitions to Wipe:</text> + <text>{@sel_part_wipe=Select Partitions to Wipe:}</text> <data name="tw_wipe_list"/> <listtype name="wipe"/> </partitionlist> @@ -1003,12 +1003,12 @@ <text style="text_m_fail"> <condition var1="partitionlisterror" var2="1"/> <placement x="%center_x%" y="%row17_y%" placement="5"/> - <text>Invalid partition selection</text> + <text>{@invalid_part_sel=Invalid partition selection}</text> </text> <button style="main_button_half_height_full_width"> <placement x="%indent%" y="%row18a_y%"/> - <text>Repair or Change File System</text> + <text>{@repair_change_btn=Repair or Change File System}</text> <actions> <action function="checkpartitionlist"/> <action function="page">checkpartitionlist</action> @@ -1016,14 +1016,14 @@ </button> <slider> - <text>Swipe to Wipe</text> + <text>{@swipe_wipe=Swipe to Wipe}</text> <actions> <action function="set">tw_back=advancedwipe</action> <action function="set">tw_action=wipe</action> <action function="set">tw_action_param=LIST</action> - <action function="set">tw_text1=Wipe Selected Partition(s)?</action> - <action function="set">tw_action_text1=Wiping Partition(s)...</action> - <action function="set">tw_complete_text1=Wipe Complete</action> + <action function="set">tw_text1={@wipe_sel_confirm=Wipe Selected Partition(s)?}</action> + <action function="set">tw_action_text1={@wiping_part=Wiping Partition(s)...}</action> + <action function="set">tw_complete_text1={@wipe_complete=Wipe Complete}</action> <action function="page">action_page</action> </actions> </slider> @@ -1044,37 +1044,37 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Wipe</text> + <text>{@wipe_hdr=Wipe}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Format Data</text> + <text>{@format_data_hdr=Format Data}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>Format Data will wipe all of your apps,</text> + <text>{@format_data_ptr1=Format Data will wipe all of your apps,}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row3_y%" placement="5"/> - <text>backups, pictures, videos, media, and</text> + <text>{@format_data_ptr2=backups, pictures, videos, media, and}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row4_y%" placement="5"/> - <text>removes encryption on internal storage.</text> + <text>{@format_data_ptr3=removes encryption on internal storage.}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row6_y%" placement="5"/> - <text>This cannot be undone. Press back to cancel.</text> + <text>{@format_data_undo=This cannot be undone.}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row8_y%" placement="5"/> - <text>Type yes to continue.</text> + <text>{@yes_continue=Type yes to continue. Press back to cancel.}</text> </text> <input> @@ -1109,8 +1109,8 @@ <action function="set">tw_back=formatdata</action> <action function="set">tw_action=wipe</action> <action function="set">tw_action_param=DATAMEDIA</action> - <action function="set">tw_action_text1=Formatting Data...</action> - <action function="set">tw_complete_text1=Data Format Complete</action> + <action function="set">tw_action_text1={@formatting_data=Formatting Data...}</action> + <action function="set">tw_complete_text1={@format_data_complete=Data Format Complete}</action> <action function="page">action_page</action> </actions> </action> @@ -1146,83 +1146,83 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Wipe</text> + <text>{@wipe_hdr=Wipe}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Partition Options for: %tw_partition_name%</text> + <text>{@part_opt_hdr=Partition Options for: %tw_partition_name%}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>Mount Point: %tw_partition_mount_point%</text> + <text>{@part_mount_point=Mount Point: %tw_partition_mount_point%}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row3_y%" placement="5"/> - <text>Current file system: %tw_partition_file_system%</text> + <text>{@part_curr_fs=File system: %tw_partition_file_system%}</text> </text> <text style="text_m"> <condition var1="tw_partition_is_present" var2="1"/> <placement x="%indent%" y="%row5_y%"/> - <text>Present: Yes</text> + <text>{@part_present_yes=Present: Yes}</text> </text> <text style="text_m"> <condition var1="tw_partition_is_present" var2="0"/> <placement x="%indent%" y="%row5_y%"/> - <text>Present: No</text> + <text>{@part_present_no=Present: No}</text> </text> <text style="text_m"> <condition var1="tw_partition_removable" var2="1"/> <placement x="%center_x%" y="%row5_y%"/> - <text>Removable: Yes</text> + <text>{@part_removable_yes=Removable: Yes}</text> </text> <text style="text_m"> <condition var1="tw_partition_removable" var2="0"/> <placement x="%center_x%" y="%row5_y%"/> - <text>Removable: No</text> + <text>{@part_removable_no=Removable: No}</text> </text> <text style="text_m"> <placement x="%indent%" y="%row7_y%"/> - <text>Size: %tw_partition_size%MB</text> + <text>{@part_size=Size: %tw_partition_size%MB}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row7_y%"/> - <text>Used: %tw_partition_used%MB</text> + <text>{@part_used=Used: %tw_partition_used%MB}</text> </text> <text style="text_m"> <placement x="%indent%" y="%row9_y%"/> - <text>Free: %tw_partition_free%MB</text> + <text>{@part_free=Free: %tw_partition_free%MB}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row9_y%"/> - <text>Backup Size: %tw_partition_backup_size%MB</text> + <text>{@part_backup_size=Backup Size: %tw_partition_backup_size%MB}</text> </text> <button style="main_button_half_height"> <condition var1="tw_partition_can_resize" op="=" var2="1"/> <placement x="%indent%" y="%row18a_y%"/> - <text>Resize File System</text> + <text>{@resize_btn=Resize File System}</text> <actions> <action function="set">tw_back=partitionoptions</action> <action function="set">tw_action=resize</action> <action function="set">tw_action_param=%tw_partition_mount_point%</action> <action function="set">tw_has_action2=1</action> <action function="set">tw_action2=getpartitiondetails</action> - <action function="set">tw_text1=Resize %tw_partition_name%?</action> + <action function="set">tw_text1={@resize_confirm=Resize %tw_partition_name%?}</action> <action function="set">tw_text2=</action> - <action function="set">tw_action_text1=Resizing...</action> - <action function="set">tw_complete_text1=Resize Complete</action> - <action function="set">tw_slider_text=Swipe to Resize</action> + <action function="set">tw_action_text1={@resizing=Resizing...}</action> + <action function="set">tw_complete_text1={@resize_complete=Resize Complete}</action> + <action function="set">tw_slider_text={@swipe_resize=Swipe to Resize}</action> <action function="page">confirm_action</action> </actions> </button> @@ -1230,24 +1230,24 @@ <button style="main_button_half_height"> <condition var1="tw_partition_can_repair" op="=" var2="1"/> <placement x="%indent%" y="%row21a_y%"/> - <text>Repair File System</text> + <text>{@repair_btn=Repair File System}</text> <actions> <action function="set">tw_back=partitionoptions</action> <action function="set">tw_action=repair</action> <action function="set">tw_action_param=%tw_partition_mount_point%</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=Repair %tw_partition_name%?</action> + <action function="set">tw_text1={@repair_confirm=Repair %tw_partition_name%?}</action> <action function="set">tw_text2=</action> - <action function="set">tw_action_text1=Repairing...</action> - <action function="set">tw_complete_text1=Repair Complete</action> - <action function="set">tw_slider_text=Swipe to Repair</action> + <action function="set">tw_action_text1={@repairing=Repairing...}</action> + <action function="set">tw_complete_text1={@repair_complete=Repair Complete}</action> + <action function="set">tw_slider_text={@swipe_repair=Swipe to Repair}</action> <action function="page">confirm_action</action> </actions> </button> <button style="main_button_half_height"> <placement x="%center_x%" y="%row21a_y%"/> - <text>Change File System</text> + <text>{@change_fs_btn=Change File System}</text> <action function="page">selectfilesystem</action> </button> @@ -1287,32 +1287,32 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Wipe</text> + <text>{@wipe_hdr=Wipe}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Change File System for: %tw_partition_name%</text> + <text>{@change_fs_for_hdr=Change File System for: %tw_partition_name%}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>Mount Point: %tw_partition_mount_point%</text> + <text>{@part_mount_point=Mount Point: %tw_partition_mount_point%}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row3_y%" placement="5"/> - <text>Current file system: %tw_partition_file_system%</text> + <text>{@part_curr_fs=File system: %tw_partition_file_system%}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row5_y%" placement="5"/> - <text>Some ROMs or kernels may not support some</text> + <text>{@change_fs_warn1=Some ROMs or kernels may not support some}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row6_y%" placement="5"/> - <text>file systems. Proceed with caution!</text> + <text>{@change_fs_warn2=file systems. Proceed with caution!}</text> </text> <button style="main_button_half_height"> @@ -1325,11 +1325,11 @@ <action function="set">tw_action_param=%tw_partition_mount_point%</action> <action function="set">tw_action_new_file_system=ext2</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=Change %tw_partition_name% to EXT2?</action> - <action function="set">tw_text2=</action> - <action function="set">tw_action_text1=Formatting...</action> - <action function="set">tw_complete_text1=Format Complete</action> - <action function="set">tw_slider_text=Swipe to Change</action> + <action function="set">tw_text1={@change_fs_confirm=Change %tw_partition_name%?}</action> + <action function="set">tw_text2=EXT2</action> + <action function="set">tw_action_text1={@formatting=Formatting...}</action> + <action function="set">tw_complete_text1={@format_complete=Format Complete}</action> + <action function="set">tw_slider_text={@swipe_change_fs=Swipe to Change}</action> <action function="page">confirm_action</action> </actions> </button> @@ -1344,11 +1344,11 @@ <action function="set">tw_action_param=%tw_partition_mount_point%</action> <action function="set">tw_action_new_file_system=ext3</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=Change %tw_partition_name% to EXT3?</action> - <action function="set">tw_text2=</action> - <action function="set">tw_action_text1=Formatting...</action> - <action function="set">tw_complete_text1=Format Complete</action> - <action function="set">tw_slider_text=Swipe to Change</action> + <action function="set">tw_text1={@change_fs_confirm=Change %tw_partition_name%?}</action> + <action function="set">tw_text2=EXT3</action> + <action function="set">tw_action_text1={@formatting=Formatting...}</action> + <action function="set">tw_complete_text1={@format_complete=Format Complete}</action> + <action function="set">tw_slider_text={@swipe_change_fs=Swipe to Change}</action> <action function="page">confirm_action</action> </actions> </button> @@ -1363,11 +1363,11 @@ <action function="set">tw_action_param=%tw_partition_mount_point%</action> <action function="set">tw_action_new_file_system=ext4</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=Change %tw_partition_name% to EXT4?</action> - <action function="set">tw_text2=</action> - <action function="set">tw_action_text1=Formatting...</action> - <action function="set">tw_complete_text1=Format Complete</action> - <action function="set">tw_slider_text=Swipe to Change</action> + <action function="set">tw_text1={@change_fs_confirm=Change %tw_partition_name%?}</action> + <action function="set">tw_text2=EXT4</action> + <action function="set">tw_action_text1={@formatting=Formatting...}</action> + <action function="set">tw_complete_text1={@format_complete=Format Complete}</action> + <action function="set">tw_slider_text={@swipe_change_fs=Swipe to Change}</action> <action function="page">confirm_action</action> </actions> </button> @@ -1382,11 +1382,11 @@ <action function="set">tw_action_param=%tw_partition_mount_point%</action> <action function="set">tw_action_new_file_system=vfat</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=Change %tw_partition_name% to FAT?</action> - <action function="set">tw_text2=</action> - <action function="set">tw_action_text1=Formatting...</action> - <action function="set">tw_complete_text1=Format Complete</action> - <action function="set">tw_slider_text=Swipe to Change</action> + <action function="set">tw_text1={@change_fs_confirm=Change %tw_partition_name%?}</action> + <action function="set">tw_text2=FAT</action> + <action function="set">tw_action_text1={@formatting=Formatting...}</action> + <action function="set">tw_complete_text1={@format_complete=Format Complete}</action> + <action function="set">tw_slider_text={@swipe_change_fs=Swipe to Change}</action> <action function="page">confirm_action</action> </actions> </button> @@ -1401,11 +1401,11 @@ <action function="set">tw_action_param=%tw_partition_mount_point%</action> <action function="set">tw_action_new_file_system=exfat</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=Change %tw_partition_name% to exFAT?</action> - <action function="set">tw_text2=</action> - <action function="set">tw_action_text1=Formatting...</action> - <action function="set">tw_complete_text1=Format Complete</action> - <action function="set">tw_slider_text=Swipe to Change</action> + <action function="set">tw_text1={@change_fs_confirm=Change %tw_partition_name%?}</action> + <action function="set">tw_text2=exFAT</action> + <action function="set">tw_action_text1={@formatting=Formatting...}</action> + <action function="set">tw_complete_text1={@format_complete=Format Complete}</action> + <action function="set">tw_slider_text={@swipe_change_fs=Swipe to Change}</action> <action function="page">confirm_action</action> </actions> </button> @@ -1420,11 +1420,11 @@ <action function="set">tw_action_param=%tw_partition_mount_point%</action> <action function="set">tw_action_new_file_system=f2fs</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=Change %tw_partition_name% to F2FS?</action> - <action function="set">tw_text2=</action> - <action function="set">tw_action_text1=Formatting...</action> - <action function="set">tw_complete_text1=Format Complete</action> - <action function="set">tw_slider_text=Swipe to Change</action> + <action function="set">tw_text1={@change_fs_confirm=Change %tw_partition_name%?}</action> + <action function="set">tw_text2=F2FS</action> + <action function="set">tw_action_text1={@formatting=Formatting...}</action> + <action function="set">tw_complete_text1={@format_complete=Format Complete}</action> + <action function="set">tw_slider_text={@swipe_change_fs=Swipe to Change}</action> <action function="page">confirm_action</action> </actions> </button> @@ -1445,12 +1445,12 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Backup</text> + <text>{@backup_hdr=Backup}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Storage: %tw_storage_display_name% (%tw_storage_free_size% MB)</text> + <text>{@storage_hdr=Storage: %tw_storage_display_name% (%tw_storage_free_size% MB)}</text> </text> <template name="tabs_backup"/> @@ -1465,7 +1465,7 @@ <condition var1="tw_encrypt_backup" var2="0"/> </conditions> <placement x="%tab3_col3_x%" y="%row1_y%" w="%tab3_width%" h="%tab_height%"/> - <text>ENCRYPTION</text> + <text>{@encryption_tab=ENCRYPTION}</text> <font resource="font_s" color="%text_color%"/> <actions> <action function="set">tw_password_not_match=0</action> @@ -1479,7 +1479,7 @@ <condition var1="tw_encrypt_backup" var2="1"/> </conditions> <placement x="%tab3_col3_x%" y="%row1_y%" w="%tab3_width%" h="%tab_height%"/> - <text>ENCRYPTION</text> + <text>{@encryption_tab=ENCRYPTION}</text> <font resource="font_s" color="%text_success_color%"/> <actions> <action function="set">tw_password_not_match=0</action> @@ -1489,7 +1489,7 @@ <text style="text_m_accent"> <placement x="%indent%" y="%row3a_y%"/> - <text>Name:</text> + <text>{@name=Name:}</text> </text> <text style="text_m"> @@ -1512,14 +1512,14 @@ <partitionlist> <placement x="%indent%" y="%row6_y%" w="%content_width%" h="%partitionlist_backup_height%"/> - <text>Select Partitions to Backup:</text> + <text>{@sel_part_backup=Select Partitions to Backup:}</text> <data name="tw_backup_list"/> <listtype name="backup"/> </partitionlist> <button style="main_button_half_height"> <placement x="%indent%" y="%row18a_y%"/> - <text>Select Storage</text> + <text>{@select_storage_btn=Select Storage}</text> <actions> <action function="set">tw_back=backup</action> <action function="overlay">select_storage</action> @@ -1528,7 +1528,7 @@ <button style="main_button_half_height"> <placement x="%center_x%" y="%row18a_y%"/> - <text>Refresh Sizes</text> + <text>{@refresh_sizes_btn=Refresh Sizes}</text> <actions> <action function="refreshsizes"/> <action function="page">backup</action> @@ -1536,7 +1536,7 @@ </button> <slider> - <text>Swipe to Backup</text> + <text>{@swipe_backup=Swipe to Backup}</text> <action function="page">backup_run</action> </slider> @@ -1556,12 +1556,12 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Backup</text> + <text>{@backup_hdr=Backup}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Storage: %tw_storage_display_name% (%tw_storage_free_size% MB)</text> + <text>{@storage_hdr=Storage: %tw_storage_display_name% (%tw_storage_free_size% MB)}</text> </text> <template name="tabs_backup"/> @@ -1576,7 +1576,7 @@ <condition var1="tw_encrypt_backup" var2="0"/> </conditions> <placement x="%tab3_col3_x%" y="%row1_y%" w="%tab3_width%" h="%tab_height%"/> - <text>ENCRYPTION</text> + <text>{@encryption_tab=ENCRYPTION}</text> <font resource="font_s" color="%text_color%"/> <actions> <action function="set">tw_password_not_match=0</action> @@ -1590,7 +1590,7 @@ <condition var1="tw_encrypt_backup" var2="1"/> </conditions> <placement x="%tab3_col3_x%" y="%row1_y%" w="%tab3_width%" h="%tab_height%"/> - <text>ENCRYPTION</text> + <text>{@encryption_tab=ENCRYPTION}</text> <font resource="font_s" color="%text_success_color%"/> <actions> <action function="set">tw_password_not_match=0</action> @@ -1600,19 +1600,19 @@ <checkbox> <placement x="%indent%" y="%row3a_y%"/> - <text>Enable compression</text> + <text>{@enable_backup_comp_chk=Enable compression}</text> <data variable="tw_use_compression"/> </checkbox> <checkbox> <placement x="%indent%" y="%row5_y%"/> - <text>Skip MD5 generation during backup</text> + <text>{@skip_md5_backup_chk=Skip MD5 generation during backup}</text> <data variable="tw_skip_md5_generate"/> </checkbox> <checkbox> <placement x="%indent%" y="%row6a_y%"/> - <text>Disable Free Space Check</text> + <text>{@disable_backup_space_chk=Disable Free Space Check}</text> <data variable="tw_disable_free_space"/> </checkbox> @@ -1629,7 +1629,7 @@ <page name="backupname1"> <action> - <condition var1="tw_backup_name" op="=" var2="(Auto Generate)"/> + <condition var1="tw_backup_name" op="=" var2="{@auto_generate=(Auto Generate)}"/> <action function="generatebackupname"/> </action> @@ -1643,12 +1643,12 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Backup</text> + <text>{@backup_hdr=Backup}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Storage: %tw_storage_display_name% (%tw_storage_free_size% MB)</text> + <text>{@storage_hdr=Storage: %tw_storage_display_name% (%tw_storage_free_size% MB)}</text> </text> <template name="tabs_backup"/> @@ -1663,7 +1663,7 @@ <condition var1="tw_encrypt_backup" var2="0"/> </conditions> <placement x="%tab3_col3_x%" y="%row1_y%" w="%tab3_width%" h="%tab_height%"/> - <text>ENCRYPTION</text> + <text>{@encryption_tab=ENCRYPTION}</text> <font resource="font_s" color="%text_color%"/> <actions> <action function="set">tw_password_not_match=0</action> @@ -1677,7 +1677,7 @@ <condition var1="tw_encrypt_backup" var2="1"/> </conditions> <placement x="%tab3_col3_x%" y="%row1_y%" w="%tab3_width%" h="%tab_height%"/> - <text>ENCRYPTION</text> + <text>{@encryption_tab=ENCRYPTION}</text> <font resource="font_s" color="%text_success_color%"/> <actions> <action function="set">tw_password_not_match=0</action> @@ -1687,7 +1687,7 @@ <text style="text_m_accent"> <placement x="%indent%" y="%row3a_y%"/> - <text>Name:</text> + <text>{@name=Name:}</text> </text> <input> @@ -1715,21 +1715,21 @@ <text style="text_m_fail"> <condition var1="tw_fileexists" var2="1"/> <placement x="%indent%" y="%row6_y%"/> - <text>A backup with that name already exists!</text> + <text>{@backup_name_exists=A backup with that name already exists!}</text> </text> <button style="main_button_half_height"> <placement x="%indent%" y="%row10_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <actions> - <action function="set">tw_backup_name=(Auto Generate)</action> + <action function="set">tw_backup_name={@auto_generate=(Auto Generate)}</action> <action function="page">backup</action> </actions> </button> <button style="main_button_half_height"> <placement x="%center_x%" y="%row10_y%"/> - <text>Append Date</text> + <text>{@append_date_btn=Append Date}</text> <action function="appenddatetobackupname"/> </button> @@ -1738,7 +1738,7 @@ <action> <touch key="home"/> <actions> - <action function="set">tw_backup_name=(Auto Generate)</action> + <action function="set">tw_backup_name={@auto_generate=(Auto Generate)}</action> <action function="page">main</action> </actions> </action> @@ -1746,7 +1746,7 @@ <action> <touch key="back"/> <actions> - <action function="set">tw_backup_name=(Auto Generate)</action> + <action function="set">tw_backup_name={@auto_generate=(Auto Generate)}</action> <action function="page">backup</action> </actions> </action> @@ -1757,12 +1757,12 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Backup</text> + <text>{@backup_hdr=Backup}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Storage: %tw_storage_display_name% (%tw_storage_free_size% MB)</text> + <text>{@storage_hdr=Storage: %tw_storage_display_name% (%tw_storage_free_size% MB)}</text> </text> <template name="tabs_backup"/> @@ -1773,7 +1773,7 @@ <condition var1="tw_encrypt_backup" var2="0"/> </conditions> <placement x="%tab3_col3_x%" y="%row1_y%" w="%tab3_width%" h="%tab_height%"/> - <text>ENCRYPTION</text> + <text>{@encryption_tab=ENCRYPTION}</text> <font resource="font_s" color="%text_color%"/> <actions> <action function="set">tw_password_not_match=0</action> @@ -1787,7 +1787,7 @@ <condition var1="tw_encrypt_backup" var2="1"/> </conditions> <placement x="%tab3_col3_x%" y="%row1_y%" w="%tab3_width%" h="%tab_height%"/> - <text>ENCRYPTION</text> + <text>{@encryption_tab=ENCRYPTION}</text> <font resource="font_s" color="%text_success_color%"/> <actions> <action function="set">tw_password_not_match=0</action> @@ -1801,12 +1801,12 @@ <text style="text_m_accent"> <placement x="%center_x%" y="%row3a_y%" placement="5"/> - <text>Encrypt your Backup?</text> + <text>{@encrypt_backup=Encrypt your Backup?}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row5_y%" placement="5"/> - <text>Enter a Password:</text> + <text>{@enter_pass=Enter Password:}</text> </text> <input> @@ -1829,12 +1829,12 @@ <text style="text_m_fail"> <condition var1="tw_password_not_match" var2="1"/> <placement x="%indent%" y="%row8a_y%"/> - <text>Passwords do not match!</text> + <text>{@pass_not_match=Passwords do not match!}</text> </text> <button style="main_button_half_height"> <placement x="%center_x%" y="%row10_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <actions> <action function="set">tw_encrypt_backup=0</action> <action function="set">tw_backup_password=</action> @@ -1863,12 +1863,12 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Backup</text> + <text>{@backup_hdr=Backup}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Storage: %tw_storage_display_name% (%tw_storage_free_size% MB)</text> + <text>{@storage_hdr=Storage: %tw_storage_display_name% (%tw_storage_free_size% MB)}</text> </text> <template name="tabs_backup"/> @@ -1879,7 +1879,7 @@ <condition var1="tw_encrypt_backup" var2="0"/> </conditions> <placement x="%tab3_col3_x%" y="%row1_y%" w="%tab3_width%" h="%tab_height%"/> - <text>ENCRYPTION</text> + <text>{@encryption_tab=ENCRYPTION}</text> <font resource="font_s" color="%text_color%"/> <actions> <action function="set">tw_password_not_match=0</action> @@ -1893,7 +1893,7 @@ <condition var1="tw_encrypt_backup" var2="1"/> </conditions> <placement x="%tab3_col3_x%" y="%row1_y%" w="%tab3_width%" h="%tab_height%"/> - <text>ENCRYPTION</text> + <text>{@encryption_tab=ENCRYPTION}</text> <font resource="font_s" color="%text_success_color%"/> <actions> <action function="set">tw_password_not_match=0</action> @@ -1907,12 +1907,12 @@ <text style="text_m_accent"> <placement x="%center_x%" y="%row3a_y%" placement="5"/> - <text>Encrypt your Backup?</text> + <text>{@encrypt_backup=Encrypt your Backup?}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row5_y%" placement="5"/> - <text>Enter Password again:</text> + <text>{@enter_pass2=Enter Password again:}</text> </text> <input> @@ -1929,7 +1929,7 @@ <button style="main_button_half_height"> <placement x="%center_x%" y="%row10_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <actions> <action function="set">tw_encrypt_backup=0</action> <action function="set">tw_backup_password=</action> @@ -1995,7 +1995,7 @@ <text style="text_m_accent"> <placement x="%indent%" y="%row19_y%"/> - <text>Progress:</text> + <text>{@progress=Progress:}</text> </text> <text style="text_m"> @@ -2010,7 +2010,7 @@ <button style="main_button_half_height"> <placement x="%center_x%" y="%row21a_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <action function="cancelbackup"/> </button> @@ -2023,7 +2023,7 @@ <condition var1="tw_cancel_backup" var2="0"/> <actions> <action function="set">tw_back=backup</action> - <action function="set">tw_complete_text1=Backup Complete</action> + <action function="set">tw_complete_text1={@backup_complete=Backup Complete}</action> <action function="set">tw_show_reboot=1</action> <action function="page">action_complete</action> </actions> @@ -2034,7 +2034,7 @@ <condition var1="tw_cancel_backup" var2="1"/> <actions> <action function="set">tw_back=backup</action> - <action function="set">tw_complete_text1=Backup Cancelled</action> + <action function="set">tw_complete_text1={@backup_cancel=Backup Cancelled}</action> <action function="set">tw_show_reboot=1</action> <action function="page">action_complete</action> </actions> @@ -2046,19 +2046,19 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Restore</text> + <text>{@restore_hdr=Restore}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Select Backup from %tw_storage_display_name% (%tw_storage_free_size% MB)</text> + <text>{@restore_sel_store_hdr=Select Backup from %tw_storage_display_name% (%tw_storage_free_size% MB)}</text> </text> <template name="sort_options"/> <fileselector> <placement x="%indent%" y="%row3_y%" w="%content_width%" h="%fileselector_install_height%"/> - <text>Select Package to Restore:</text> + <text>{@restore_sel_pack_fs=Select Package to Restore:}</text> <filter folders="1" files="0" nav="0"/> <path name="tw_backups_folder"/> <data name="tw_restore" default=""/> @@ -2067,7 +2067,7 @@ <button style="main_button_half_height"> <placement x="%indent%" y="%row21a_y%"/> - <text>Select Storage</text> + <text>{@select_storage_btn=Select Storage}</text> <actions> <action function="set">tw_back=restore</action> <action function="overlay">select_storage</action> @@ -2115,17 +2115,17 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Restore</text> + <text>{@restore_hdr=Restore}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Encrypted Backup</text> + <text>{@restore_enc_backup_hdr=Encrypted Backup}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>Enter Password:</text> + <text>{@enter_pass=Enter Password:}</text> </text> <input> @@ -2148,12 +2148,12 @@ <text style="text_m_fail"> <condition var1="tw_password_fail" var2="1"/> <placement x="%indent%" y="%row5_y%"/> - <text>Password failed, please try again!</text> + <text>{@restore_dec_fail=Password failed, please try again!}</text> </text> <button style="main_button_half_height"> <placement x="%indent%" y="%row10_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <actions> <action function="set">tw_page_done=1</action> <action function="page">restore</action> @@ -2162,16 +2162,17 @@ <button style="main_button_half_height"> <placement x="%center_x%" y="%row10_y%"/> - <text>Delete Backup</text> + <text>{@del_backup_btn=Delete Backup}</text> <actions> <action function="set">tw_back=restore</action> <action function="set">tw_action=cmd</action> <action function="set">tw_action_param=cd %tw_backups_folder% && rm -rf "%tw_restore_name%"</action> - <action function="set">tw_text1=Delete Backup? %tw_restore_name%</action> - <action function="set">tw_text2=This cannot be undone!</action> - <action function="set">tw_action_text1=Deleting Backup...</action> - <action function="set">tw_complete_text1=Backup Delete Complete</action> - <action function="set">tw_slider_text=Swipe to Delete</action> + <action function="set">tw_text1={@del_backup_confirm=Delete Backup?}</action> + <action function="set">tw_text2=%tw_restore_name%</action> + <action function="set">tw_text4={@del_backup_confirm2=This cannot be undone!}</action> + <action function="set">tw_action_text1={@deleting_backup=Deleting Backup...}</action> + <action function="set">tw_complete_text1={@backup_deleted=Backup Delete Complete}</action> + <action function="set">tw_slider_text={@swipe_delete=Swipe to Delete}</action> <action function="page">confirm_action</action> </actions> </button> @@ -2194,12 +2195,12 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Restore</text> + <text>{@restore_hdr=Restore}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Encrypted Backup - Trying Decryption</text> + <text>{@restore_try_decrypt=Encrypted Backup - Trying Decryption}</text> </text> <template name="console"/> @@ -2238,17 +2239,17 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Restore</text> + <text>{@restore_hdr=Restore}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Backup made on %tw_restore_file_date%</text> + <text>{@restore_backup_date=Backup made on %tw_restore_file_date%}</text> </text> <text style="text_m_accent"> <placement x="%indent%" y="%row2_y%"/> - <text>Name:</text> + <text>{@name=Name:}</text> </text> <text style="text_m"> @@ -2272,36 +2273,36 @@ <partitionlist> <placement x="%indent%" y="%row4a_y%" w="%content_width%" h="%partitionlist_backup_height%"/> - <text>Select Partitions to Restore:</text> + <text>{@restore_sel_part=Select Partitions to Restore:}</text> <data name="tw_restore_list" selectedlist="tw_restore_selected"/> <listtype name="restore"/> </partitionlist> <checkbox> <placement x="%indent%" y="%row17_y%"/> - <text>Enable MD5 Verification of Backup Files</text> + <text>{@retore_enable_md5_chk=Enable MD5 Verification of Backup Files}</text> <data variable="tw_skip_md5_check"/> </checkbox> <button style="main_button_half_height"> <placement x="%indent%" y="%row18a_y%"/> - <text>Delete Backup</text> + <text>{@del_backup_btn=Delete Backup}</text> <actions> <action function="set">tw_back=restore</action> <action function="set">tw_action=cmd</action> <action function="set">tw_action_param=cd %tw_backups_folder% && rm -rf "%tw_restore_name%"</action> - <action function="set">tw_text1=Delete Backup?</action> + <action function="set">tw_text1={@del_backup_confirm=Delete Backup?}</action> <action function="set">tw_text2=%tw_restore_name%</action> - <action function="set">tw_text4=This cannot be undone!</action> - <action function="set">tw_action_text1=Deleting Backup...</action> - <action function="set">tw_complete_text1=Backup Delete Complete</action> - <action function="set">tw_slider_text=Swipe to Delete</action> + <action function="set">tw_text4={@del_backup_confirm2=This cannot be undone!}</action> + <action function="set">tw_action_text1={@deleting_backup=Deleting Backup...}</action> + <action function="set">tw_complete_text1={@backup_deleted=Backup Delete Complete}</action> + <action function="set">tw_slider_text={@swipe_delete=Swipe to Delete}</action> <action function="page">confirm_action</action> </actions> </button> <slider> - <text>Swipe to Restore</text> + <text>{@swipe_restore=Swipe to Restore}</text> <action function="page">restore_run</action> </slider> @@ -2321,17 +2322,17 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Restore</text> + <text>{@restore_hdr=Restore}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Rename Backup</text> + <text>{@rename_backup_hdr=Rename Backup}</text> </text> <text style="text_m_accent"> <placement x="%indent%" y="%row2_y%"/> - <text>Name:</text> + <text>{@name=Name:}</text> </text> <input> @@ -2343,11 +2344,11 @@ <action function="set">tw_back=restore</action> <action function="set">tw_action=cmd</action> <action function="set">tw_action_param=cd %tw_backups_folder% && mv "%tw_restore_name%" "%tw_backup_rename%"</action> - <action function="set">tw_text1=Rename Backup?</action> - <action function="set">tw_text2=This cannot be undone!</action> - <action function="set">tw_action_text1=Renaming Backup...</action> - <action function="set">tw_complete_text1=Backup Rename Complete</action> - <action function="set">tw_slider_text=Swipe to Rename</action> + <action function="set">tw_text1={@rename_backup_confirm=Rename Backup?}</action> + <action function="set">tw_text2={@rename_backup_confirm2=This cannot be undone!}</action> + <action function="set">tw_action_text1={@renaming_backup=Renaming Backup...}</action> + <action function="set">tw_complete_text1={@rename_backup_complete=Backup Rename Complete}</action> + <action function="set">tw_slider_text={@swipe_to_rename=Swipe to Rename}</action> <action function="set">tw_filecheck=%tw_backups_folder%/%tw_backup_rename%</action> <action function="set">tw_existpage=renamebackup</action> <action function="set">tw_notexistpage=confirm_action</action> @@ -2367,12 +2368,12 @@ <text style="text_m_fail"> <condition var1="tw_fileexists" var2="1"/> <placement x="%indent%" y="%row4a_y%"/> - <text>A backup with that name already exists!</text> + <text>{@backup_name_exists=A backup with that name already exists!}</text> </text> <button style="main_button_half_height"> <placement x="%indent%" y="%row10_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <action function="page">restore_select</action> </button> @@ -2394,7 +2395,7 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Restore</text> + <text>{@restore_hdr=Restore}</text> </text> <text style="text_m"> @@ -2408,7 +2409,7 @@ <text style="text_m_accent"> <placement x="%indent%" y="%row19_y%"/> - <text>Progress:</text> + <text>{@progress=Progress:}</text> </text> <text style="text_m"> @@ -2420,7 +2421,7 @@ <condition var1="tw_operation_state" var2="1"/> <actions> <action function="set">tw_back=restore_select</action> - <action function="set">tw_complete_text1=Restore Complete</action> + <action function="set">tw_complete_text1={@restore_complete=Restore Complete}</action> <action function="set">tw_show_reboot=1</action> <action function="page">action_complete</action> </actions> @@ -2436,24 +2437,24 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Mount</text> + <text>{@mount_hdr=Mount}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Storage: %tw_storage_display_name% (%tw_storage_free_size% MB)</text> + <text>{@storage_hdr=Storage: %tw_storage_display_name% (%tw_storage_free_size% MB)}</text> </text> <partitionlist> <placement x="%indent%" y="%row1a_y%" w="%content_width%" h="%partitionlist_mount_height%"/> - <text>Select Partitions to Mount:</text> + <text>{@mount_sel_part=Select Partitions to Mount:}</text> <listtype name="mount"/> </partitionlist> <button style="checkbox"> <condition var1="tw_mount_system_ro" op="=" var2="0"/> <placement x="%indent%" y="%row15a_y%" textplacement="6"/> - <text>Mount system partition read-only</text> + <text>{@mount_sys_ro_chk=Mount system partition read-only}</text> <image resource="checkbox_false"/> <action function="mountsystemtoggle">1</action> </button> @@ -2461,7 +2462,7 @@ <button style="checkbox"> <condition var1="tw_mount_system_ro" op="!=" var2="0"/> <placement x="%indent%" y="%row15a_y%" textplacement="6"/> - <text>Mount system partition read-only</text> + <text>{@mount_sys_ro_chk=Mount system partition read-only}</text> <image resource="checkbox_true"/> <actions> <action function="set">tw_lifetime_writes=2</action> @@ -2472,7 +2473,7 @@ <button style="main_button_half_height"> <condition var1="tw_has_usb_storage" var2="1"/> <placement x="%indent%" y="%row18a_y%"/> - <text>Mount USB Storage</text> + <text>{@mount_usb_storage_btn=Mount USB Storage}</text> <action function="page">usb_mount</action> </button> @@ -2482,13 +2483,13 @@ <condition var1="tw_is_decrypted" var2="0"/> </conditions> <placement x="%center_x%" y="%row18a_y%"/> - <text>Decrypt Data</text> + <text>{@decrypt_data_btn=Decrypt Data}</text> <action function="page">decrypt</action> </button> <button style="main_button_half_height"> <placement x="%indent%" y="%row21a_y%"/> - <text>Select Storage</text> + <text>{@select_storage_btn=Select Storage}</text> <actions> <action function="set">tw_back=mount</action> <action function="overlay">select_storage</action> @@ -2501,7 +2502,7 @@ <condition var1="tw_mtp_enabled" var2="0"/> </conditions> <placement x="%center_x%" y="%row21a_y%"/> - <text>Enable MTP</text> + <text>{@enable_mtp_btn=Enable MTP}</text> <action function="startmtp"/> </button> @@ -2511,7 +2512,7 @@ <condition var1="tw_mtp_enabled" var2="1"/> </conditions> <placement x="%center_x%" y="%row21a_y%"/> - <text>Disable MTP</text> + <text>{@disable_mtp_btn=Disable MTP}</text> <action function="stopmtp"/> </button> @@ -2531,32 +2532,32 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Mount</text> + <text>{@mount_hdr=Mount}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>USB Storage</text> + <text>{usb_storage_hdr=USB Storage}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>USB Storage Mounted</text> + <text>{@usb_stor_mnt1=USB Storage Mounted}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row4_y%" placement="5"/> - <text>Be sure to safely remove your device</text> + <text>{@usb_stor_mnt2=Be sure to safely remove your device}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row5_y%" placement="5"/> - <text>from your computer before unmounting!</text> + <text>{@usb_stor_mnt3=from your computer before unmounting!}</text> </text> <button style="main_button_half_height"> <placement x="%indent%" y="%row21a_y%"/> - <text>Unmount</text> + <text>{@unmount_btn=Unmount}</text> <action function="page">usb_umount</action> </button> @@ -2604,23 +2605,23 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Reboot Menu</text> + <text>{@reboot_hdr=Reboot Menu}</text> </text> <button style="main_button"> <condition var1="tw_reboot_system" var2="1"/> <placement x="%indent%" y="%row2a_y%"/> - <text>System</text> + <text>{@rb_system_btn=System}</text> <actions> <action function="set">tw_back=reboot</action> <action function="set">tw_action=reboot</action> <action function="set">tw_action_param=system</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=No OS Installed! Are you</action> - <action function="set">tw_text2=sure you wish to reboot?</action> - <action function="set">tw_action_text1=Rebooting...</action> - <action function="set">tw_complete_text1=Rebooting...</action> - <action function="set">tw_slider_text=Swipe to Reboot</action> + <action function="set">tw_text1={@no_os1=No OS Installed! Are you}</action> + <action function="set">tw_text2={@no_osrb=sure you wish to reboot?}</action> + <action function="set">tw_action_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_complete_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_slider_text={@swipe_reboot=Swipe to Reboot}</action> <action function="page">rebootcheck</action> </actions> </button> @@ -2628,17 +2629,17 @@ <button style="main_button"> <condition var1="tw_reboot_poweroff" var2="1"/> <placement x="%center_x%" y="%row2a_y%"/> - <text>Power Off</text> + <text>{@rb_poweroff_btn=Power Off}</text> <actions> <action function="set">tw_back=reboot</action> <action function="set">tw_action=reboot</action> <action function="set">tw_action_param=poweroff</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=No OS Installed! Are you</action> - <action function="set">tw_text2=sure you wish to power off?</action> - <action function="set">tw_action_text1=Turning Off...</action> - <action function="set">tw_complete_text1=Turning Off...</action> - <action function="set">tw_slider_text=Swipe to Power Off</action> + <action function="set">tw_text1={@no_os1=No OS Installed! Are you}</action> + <action function="set">tw_text2={@no_ospo=sure you wish to power off?}</action> + <action function="set">tw_action_text1={@turning_off=Turning Off...}</action> + <action function="set">tw_complete_text1={@turning_off=Turning Off...}</action> + <action function="set">tw_slider_text={@swipe_power_off=Swipe to Power Off}</action> <action function="page">rebootcheck</action> </actions> </button> @@ -2646,17 +2647,17 @@ <button style="main_button"> <condition var1="tw_reboot_recovery" var2="1"/> <placement x="%indent%" y="%row8_y%"/> - <text>Recovery</text> + <text>{@rb_recovery_btn=Recovery}</text> <actions> <action function="set">tw_back=reboot</action> <action function="set">tw_action=reboot</action> <action function="set">tw_action_param=recovery</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=No OS Installed! Are you</action> - <action function="set">tw_text2=sure you wish to reboot?</action> - <action function="set">tw_action_text1=Rebooting...</action> - <action function="set">tw_complete_text1=Rebooting...</action> - <action function="set">tw_slider_text=Swipe to Reboot</action> + <action function="set">tw_text1={@no_os1=No OS Installed! Are you}</action> + <action function="set">tw_text2={@no_osrb=sure you wish to reboot?}</action> + <action function="set">tw_action_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_complete_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_slider_text={@swipe_reboot=Swipe to Reboot}</action> <action function="page">rebootcheck</action> </actions> </button> @@ -2664,17 +2665,17 @@ <button style="main_button"> <condition var1="tw_reboot_bootloader" var2="1"/> <placement x="%center_x%" y="%row8_y%"/> - <text>Bootloader</text> + <text>{@rb_bootloader_btn=Bootloader}</text> <actions> <action function="set">tw_back=reboot</action> <action function="set">tw_action=reboot</action> <action function="set">tw_action_param=bootloader</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=No OS Installed! Are you</action> - <action function="set">tw_text2=sure you wish to reboot?</action> - <action function="set">tw_action_text1=Rebooting...</action> - <action function="set">tw_complete_text1=Rebooting...</action> - <action function="set">tw_slider_text=Swipe to Reboot</action> + <action function="set">tw_text1={@no_os1=No OS Installed! Are you}</action> + <action function="set">tw_text2={@no_osrb=sure you wish to reboot?}</action> + <action function="set">tw_action_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_complete_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_slider_text={@swipe_reboot=Swipe to Reboot}</action> <action function="page">rebootcheck</action> </actions> </button> @@ -2682,17 +2683,17 @@ <button style="main_button"> <condition var1="tw_download_mode" var2="1"/> <placement x="%indent%" y="%row13a_y%"/> - <text>Download</text> + <text>{@rb_download_btn=Download}</text> <actions> <action function="set">tw_back=reboot</action> <action function="set">tw_action=reboot</action> <action function="set">tw_action_param=download</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=No OS Installed! Are you</action> - <action function="set">tw_text2=sure you wish to reboot?</action> - <action function="set">tw_action_text1=Rebooting...</action> - <action function="set">tw_complete_text1=Rebooting...</action> - <action function="set">tw_slider_text=Swipe to Reboot</action> + <action function="set">tw_text1={@no_os1=No OS Installed! Are you}</action> + <action function="set">tw_text2={@no_osrb=sure you wish to reboot?}</action> + <action function="set">tw_action_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_complete_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_slider_text={@swipe_reboot=Swipe to Reboot}</action> <action function="page">rebootcheck</action> </actions> </button> @@ -2713,54 +2714,54 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Unmodified System Partition</text> + <text>{@sys_ro_hdr=Unmodified System Partition}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>Keep System Read only?</text> + <text>{@sys_ro_keep=Keep System Read only?}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row4_y%" placement="5"/> - <text>TWRP can leave your system partition unmodified</text> + <text>{@sys_rop1=TWRP can leave your system partition unmodified}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row5_y%" placement="5"/> - <text>to make it easier for you to take official updates.</text> + <text>{@sys_rop2=to make it easier for you to take official updates.}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row6_y%" placement="5"/> - <text>TWRP will be unable to prevent the stock ROM from</text> + <text>{@sys_rop3=TWRP will be unable to prevent the stock ROM from}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row7_y%" placement="5"/> - <text>replacing TWRP and will not offer to root your device.</text> + <text>{@sys_rop4=replacing TWRP and will not offer to root your device.}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row9_y%" placement="5"/> - <text>Installing zips or performing adb operations may still</text> + <text>{@sys_rop5=Installing zips or performing adb operations may still}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row10_y%" placement="5"/> - <text>modify the system partition.</text> + <text>{@sys_rop6=modify the system partition.}</text> </text> <checkbox> <condition var1="tw_is_encrypted" var2="0"/> <placement x="%indent%" y="%row15_y%"/> - <text>Never show this screen during boot again</text> + <text>{@sys_ro_never_show_chk=Never show this screen during boot again}</text> <data variable="tw_never_show_system_ro_page"/> </checkbox> <button style="main_button_half_height"> <placement x="%indent%" y="%row18a_y%"/> - <text>Keep Read Only</text> + <text>{@sys_ro_keep_ro_btn=Keep Read Only}</text> <actions> <action function="mountsystemtoggle">1</action> <action function="set">tw_page_done=1</action> @@ -2769,7 +2770,7 @@ </button> <slider> - <text>Swipe to Allow Modifications</text> + <text>{@swipe_allow_mod=Swipe to Allow Modifications}</text> <actions> <action function="mountsystemtoggle">0</action> <action function="set">tw_page_done=1</action> @@ -2783,45 +2784,45 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Settings</text> + <text>{@settings_hdr=Settings}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>General Settings</text> + <text>{@settings_gen_hdr=General Settings}</text> </text> <template name="tabs_settings"/> <fill color="%text_color%"> - <placement x="0" y="%row_tab_y%" w="%tab4_width%" h="%tab_indicator_height%"/> + <placement x="0" y="%row_tab_y%" w="%tab5_width%" h="%tab_indicator_height%"/> </fill> <listbox style="scrolllist"> <placement x="%indent%" y="%row3a_y%" w="%content_width%" h="%listbox_settings_height%"/> <icon selected="checkbox_true" unselected="checkbox_false"/> - <listitem name="Zip file signature verification"> + <listitem name="{@zip_sig_chk=Zip signature verification}"> <data variable="tw_signed_zip_verify"/> </listitem> - <listitem name="Use rm -rf instead of formatting"> + <listitem name="{@use_rmrf_chk=Use rm -rf instead of formatting}"> <data variable="tw_rm_rf"/> </listitem> - <listitem name="Skip MD5 generation during backup"> + <listitem name="{@skip_md5_backup_chk=Skip MD5 generation during backup}"> <data variable="tw_skip_md5_generate"/> </listitem> - <listitem name="Enable MD5 verification of backup files"> + <listitem name="{@retore_enable_md5_chk=Enable MD5 verification of backup files}"> <data variable="tw_skip_md5_check"/> </listitem> - <listitem name="Use 24-hour clock"> + <listitem name="{@use24clock_chk=Use 24-hour clock}"> <data variable="tw_military_time"/> </listitem> - <listitem name="Reversed navbar layout"> + <listitem name="{@rev_navbar_chk=Reversed navbar layout}"> <data variable="tw_samsung_navbar"/> </listitem> - <listitem name="Simulate actions for theme testing"> + <listitem name="{@simact_chk=Simulate actions for theme testing}"> <data variable="tw_simulate_actions"/> </listitem> - <listitem name="Simulate failure for actions"> + <listitem name="{@simfail_chk=Simulate failure for actions}"> <condition var1="tw_simulate_actions" var2="1"/> <data variable="tw_simulate_fail"/> </listitem> @@ -2829,7 +2830,7 @@ <button style="main_button_half_height"> <placement x="%center_x%" y="%row21a_y%"/> - <text>Restore Defaults</text> + <text>{@restore_defaults_btn=Restore Defaults}</text> <action function="restoredefaultsettings"/> </button> @@ -2849,83 +2850,83 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Settings</text> + <text>{@settings_hdr=Settings}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Time Zone Settings</text> + <text>{@time_zone_hdr=Time Zone}</text> </text> <template name="tabs_settings"/> <fill color="%text_color%"> - <placement x="%tab4_col2_x%" y="%row_tab_y%" w="%tab4_width%" h="%tab_indicator_height%"/> + <placement x="%tab5_col2_x%" y="%row_tab_y%" w="%tab5_width%" h="%tab_indicator_height%"/> </fill> <listbox> <placement x="%indent%" y="%row3_y%" w="%content_width%" h="%listbox_timezone_height%"/> - <text>Select Time Zone:</text> + <text>{@sel_tz_list=Select Time Zone:}</text> <data name="tw_time_zone_guisel"/> - <listitem name="(UTC -11) Samoa, Midway Island">BST11;BDT</listitem> - <listitem name="(UTC -10) Hawaii">HST10;HDT</listitem> - <listitem name="(UTC -9) Alaska">AST9;ADT</listitem> - <listitem name="(UTC -8) Pacific Time">PST8;PDT,M3.2.0,M11.1.0</listitem> - <listitem name="(UTC -7) Mountain Time">MST7;MDT,M3.2.0,M11.1.0</listitem> - <listitem name="(UTC -6) Central Time">CST6;CDT,M3.2.0,M11.1.0</listitem> - <listitem name="(UTC -5) Eastern Time">EST5;EDT,M3.2.0,M11.1.0</listitem> - <listitem name="(UTC -4) Atlantic Time">AST4;ADT</listitem> - <listitem name="(UTC -3) Brazil, Buenos Aires">GRNLNDST3;GRNLNDDT</listitem> - <listitem name="(UTC -2) Mid-Atlantic">FALKST2;FALKDT</listitem> - <listitem name="(UTC -1) Azores, Cape Verde">AZOREST1;AZOREDT</listitem> - <listitem name="(UTC 0) London, Dublin, Lisbon">GMT0;BST,M3.5.0,M10.5.0</listitem> - <listitem name="(UTC +1) Berlin, Brussels, Paris">CET-1;CEST,M3.5.0,M10.5.0</listitem> - <listitem name="(UTC +2) Athens, Istanbul, South Africa">WET-2;WET,M3.5.0,M10.5.0</listitem> - <listitem name="(UTC +3) Moscow, Baghdad">SAUST-3;SAUDT</listitem> - <listitem name="(UTC +4) Abu Dhabi, Tbilisi, Muscat">WST-4;WDT</listitem> - <listitem name="(UTC +5) Yekaterinburg, Islamabad">PAKST-5;PAKDT</listitem> - <listitem name="(UTC +6) Almaty, Dhaka, Colombo">TASHST-6;TASHDT</listitem> - <listitem name="(UTC +7) Bangkok, Hanoi, Jakarta">THAIST-7;THAIDT</listitem> - <listitem name="(UTC +8) Beijing, Singapore, Hong Kong">TAIST-8;TAIDT</listitem> - <listitem name="(UTC +9) Tokyo, Seoul, Yakutsk">JST-9;JSTDT</listitem> - <listitem name="(UTC +10) Eastern Australia, Guam">EET-10;EETDT</listitem> - <listitem name="(UTC +11) Vladivostok, Solomon Islands">MET-11;METDT</listitem> - <listitem name="(UTC +12) Auckland, Wellington, Fiji">NZST-12;NZDT</listitem> + <listitem name="{@utcm11=(UTC -11) Samoa, Midway Island}">BST11;BDT</listitem> + <listitem name="{@utcm10=(UTC -10) Hawaii}">HST10;HDT</listitem> + <listitem name="{@utcm9=(UTC -9) Alaska}">AST9;ADT</listitem> + <listitem name="{@utcm8=(UTC -8) Pacific Time}">PST8;PDT,M3.2.0,M11.1.0</listitem> + <listitem name="{@utcm7=(UTC -7) Mountain Time}">MST7;MDT,M3.2.0,M11.1.0</listitem> + <listitem name="{@utcm6=(UTC -6) Central Time}">CST6;CDT,M3.2.0,M11.1.0</listitem> + <listitem name="{@utcm5=(UTC -5) Eastern Time}">EST5;EDT,M3.2.0,M11.1.0</listitem> + <listitem name="{@utcm4=(UTC -4) Atlantic Time}">AST4;ADT</listitem> + <listitem name="{@utcm3=(UTC -3) Brazil, Buenos Aires}">GRNLNDST3;GRNLNDDT</listitem> + <listitem name="{@utcm2=(UTC -2) Mid-Atlantic}">FALKST2;FALKDT</listitem> + <listitem name="{@utcm1=(UTC -1) Azores, Cape Verde}">AZOREST1;AZOREDT</listitem> + <listitem name="{@utc0=(UTC 0) London, Dublin, Lisbon}">GMT0;BST,M3.5.0,M10.5.0</listitem> + <listitem name="{@utcp1=(UTC +1) Berlin, Brussels, Paris}">CET-1;CEST,M3.5.0,M10.5.0</listitem> + <listitem name="{@utcp2=(UTC +2) Athens, Istanbul, South Africa}">WET-2;WET,M3.5.0,M10.5.0</listitem> + <listitem name="{@utcp3=(UTC +3) Moscow, Baghdad}">SAUST-3;SAUDT</listitem> + <listitem name="{@utcp4=(UTC +4) Abu Dhabi, Tbilisi, Muscat}">WST-4;WDT</listitem> + <listitem name="{@utcp5=(UTC +5) Yekaterinburg, Islamabad}">PAKST-5;PAKDT</listitem> + <listitem name="{@utcp6=(UTC +6) Almaty, Dhaka, Colombo}">TASHST-6;TASHDT</listitem> + <listitem name="{@utcp7=(UTC +7) Bangkok, Hanoi, Jakarta}">THAIST-7;THAIDT</listitem> + <listitem name="{@utcp8=(UTC +8) Beijing, Singapore, Hong Kong}">TAIST-8;TAIDT</listitem> + <listitem name="{@utcp9=(UTC +9) Tokyo, Seoul, Yakutsk}">JST-9;JSTDT</listitem> + <listitem name="{@utcp10=(UTC +10) Eastern Australia, Guam}">EET-10;EETDT</listitem> + <listitem name="{@utcp11=(UTC +11) Vladivostok, Solomon Islands}">MET-11;METDT</listitem> + <listitem name="{@utcp12=(UTC +12) Auckland, Wellington, Fiji}">NZST-12;NZDT</listitem> </listbox> <text style="text_m_accent"> <placement x="%indent%" y="%row15a_y%"/> - <text>Select Offset (usually 0): %tw_time_zone_guioffset%</text> + <text>{@sel_tz_offset=Select Offset (usually 0): %tw_time_zone_guioffset%}</text> </text> <button style="button_quarter_width"> <placement x="%indent%" y="%row16a_y%"/> - <text>None</text> + <text>{@tz_offset_none=None}</text> <action function="set">tw_time_zone_guioffset=0</action> </button> <button style="button_quarter_width"> <placement x="%btn4_col2_x%" y="%row16a_y%"/> - <text>15</text> + <text>{@tz_offset_15=15}</text> <action function="set">tw_time_zone_guioffset=15</action> </button> <button style="button_quarter_width"> <placement x="%btn4_col3_x%" y="%row16a_y%"/> - <text>30</text> + <text>{@tz_offset_30=30}</text> <action function="set">tw_time_zone_guioffset=30</action> </button> <button style="button_quarter_width"> <placement x="%btn4_col4_x%" y="%row16a_y%"/> - <text>45</text> + <text>{@tz_offset_45=45}</text> <action function="set">tw_time_zone_guioffset=45</action> </button> <checkbox> <placement x="%indent%" y="%row18a_y%"/> <font resource="font_m" color="%text_color%"/> - <text>Use daylight savings time (DST)</text> + <text>{@use_dst_chk=Use daylight savings time (DST)}</text> <data variable="tw_time_zone_guidst"/> <image checked="checkbox_true" unchecked="checkbox_false"/> </checkbox> @@ -2933,14 +2934,14 @@ <text color="%text_color%"> <font resource="font_m"/> <placement x="%indent%" y="%row20_y%"/> - <text>Current Time Zone: %tw_time_zone%</text> + <text>{@curr_tz=Current Time Zone: %tw_time_zone%}</text> </text> <button> <highlight color="%highlight_color%"/> <placement x="%center_x%" y="%row21a_y%"/> <font resource="font_m" color="%text_button_color%"/> - <text>Set Time Zone</text> + <text>{@set_tz_btn=Set Time Zone}</text> <image resource="main_button_half_height"/> <action function="setguitimezone"/> </button> @@ -2961,18 +2962,18 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Settings</text> + <text>{@settings_hdr=Settings}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Screen Settings</text> + <text>{@settings_screen_hdr=Screen Settings}</text> </text> <template name="tabs_settings"/> <fill color="%text_color%"> - <placement x="%center_x%" y="%row_tab_y%" w="%tab4_width%" h="%tab_indicator_height%"/> + <placement x="%tab5_col3_x%" y="%row_tab_y%" w="%tab5_width%" h="%tab_indicator_height%"/> </fill> <button> @@ -2980,7 +2981,7 @@ <font resource="font_m" color="%text_color%"/> <condition var1="tw_screen_timeout_secs" op="=" var2="0"/> <condition var1="tw_no_screen_timeout" op="!=" var2="1"/> - <text>Enable screen timeout</text> + <text>{@enable_timeout_chk=Enable screen timeout}</text> <image resource="checkbox_false"/> <action function="set">tw_screen_timeout_secs=60</action> </button> @@ -2990,7 +2991,7 @@ <font resource="font_m" color="%text_color%"/> <condition var1="tw_screen_timeout_secs" op="!=" var2="0"/> <condition var1="tw_no_screen_timeout" op="!=" var2="1"/> - <text>Enable screen timeout</text> + <text>{@enable_timeout_chk=Enable screen timeout}</text> <image resource="checkbox_true"/> <action function="set">tw_screen_timeout_secs=0</action> </button> @@ -2999,14 +3000,14 @@ <condition var1="tw_screen_timeout_secs" op="!=" var2="0"/> <condition var1="tw_no_screen_timeout" op="!=" var2="1"/> <placement x="indent" y="%row5_y%" w="%content_width%"/> - <text>Screen timeout in seconds:</text> + <text>{@screen_to_slider=Screen timeout in seconds:}</text> <data variable="tw_screen_timeout_secs" min="15" max="300"/> </slidervalue> <slidervalue> <condition var1="tw_has_brightnesss_file" var2="1"/> <placement x="indent" y="%row10_y%" w="%content_width%"/> - <text>Brightness: %tw_brightness_pct%%</text> + <text>{@screen_bright_slider=Brightness: %tw_brightness_pct%%}</text> <data variable="tw_brightness_pct" min="10" max="100"/> <actions> <action function="set">tw_brightness=%tw_brightness_max%</action> @@ -3032,35 +3033,35 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Settings</text> + <text>{@settings_hdr=Settings}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Vibration Settings</text> + <text>{@vibration_hdr=Vibration}</text> </text> <template name="tabs_settings"/> <fill color="%text_color%"> - <placement x="%tab4_col4_x%" y="%row_tab_y%" w="%tab4_width%" h="%tab_indicator_height%"/> + <placement x="%tab5_col4_x%" y="%row_tab_y%" w="%tab5_width%" h="%tab_indicator_height%"/> </fill> <slidervalue> <placement x="indent" y="%row4_y%" w="%content_width%"/> - <text>Button Vibration:</text> + <text>{@button_vibration=Button Vibration:}</text> <data variable="tw_button_vibrate" min="0" max="300"/> </slidervalue> <slidervalue> <placement x="indent" y="%row9_y%" w="%content_width%"/> - <text>Keyboard Vibration:</text> + <text>{@kb_vibration=Keyboard Vibration:}</text> <data variable="tw_keyboard_vibrate" min="0" max="300"/> </slidervalue> <slidervalue> <placement x="indent" y="%row14_y%" w="%content_width%"/> - <text>Action Vibration:</text> + <text>{@act_vibration=Action Vibration:}</text> <data variable="tw_action_vibrate" min="0" max="500"/> </slidervalue> @@ -3075,83 +3076,126 @@ </action> </page> + <page name="settings_language"> + <template name="page"/> + + <text style="text_l"> + <placement x="%col1_x_header%" y="%row3_header_y%"/> + <text>{@settings_hdr=Settings}</text> + </text> + + <text style="text_m"> + <placement x="%col1_x_header%" y="%row4_header_y%"/> + <text>{@language_hdr=Language - %tw_language_display%}</text> + </text> + + <template name="tabs_settings"/> + + <fill color="%text_color%"> + <placement x="%tab5_col5_x%" y="%row_tab_y%" w="%tab5_width%" h="%tab_indicator_height%"/> + </fill> + + <listbox> + <placement x="%indent%" y="%row3_y%" w="%content_width%" h="%listbox_settings_height%"/> + <text>{@select_language=Select Language:}</text> + <icon selected="radio_true" unselected="radio_false" /> + <data name="tw_language" /> + </listbox> + + <button style="main_button_half_height"> + <placement x="%center_x%" y="%row21a_y%"/> + <text>{@set_language_btn=Set Language}</text> + <action function="setlanguage"></action> + </button> + + <action> + <touch key="home" /> + <action function="page">main</action> + </action> + + <action> + <touch key="back" /> + <action function="page">settings</action> + </action> + </page> + <page name="advanced"> <template name="page"/> <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Advanced</text> + <text>{@advanced_hdr=Advanced}</text> </text> <button style="main_button"> <placement x="%indent%" y="%row2a_y%"/> - <text>Copy Log to SD</text> + <text>{@copy_log_btn=Copy Log}</text> <actions> <action function="set">tw_back=advanced</action> <action function="set">tw_action=copylog</action> - <action function="set">tw_text1=Copy Log to SD Card?</action> - <action function="set">tw_action_text1=Copying Log to SD Card...</action> - <action function="set">tw_complete_text1=Log Copy Complete</action> - <action function="set">tw_slider_text=Swipe to Confirm</action> + <action function="set">tw_text1={@copy_log_confirm=Copy Log to SD Card?}</action> + <action function="set">tw_action_text1={@copying_log=Copying Log to SD Card...}</action> + <action function="set">tw_complete_text1={@copy_log_complete=Log Copy Complete}</action> + <action function="set">tw_slider_text={@swipe_to_confirm=Swipe to Confirm}</action> <action function="page">confirm_action</action> </actions> </button> <button style="main_button"> <placement x="%center_x%" y="%row2a_y%"/> - <text>Fix Permissions</text> + <text>{@fix_perm_btn=Fix Permissions}</text> <action function="page">fixperms</action> </button> <button style="main_button"> <condition var1="tw_allow_partition_sdcard" var2="1"/> <placement x="%indent%" y="%row8_y%"/> - <text>Partition SD Card</text> + <text>{@part_sd_btn=Partition SD Card}</text> <action function="page">partsdcard</action> </button> <button style="main_button"> <placement x="%center_x%" y="%row8_y%"/> - <text>File Manager</text> + <text>{@file_manager_btn=File Manager}</text> <action function="page">filemanagerlist</action> </button> <button style="main_button"> <placement x="%indent%" y="%row13a_y%"/> - <text>Terminal</text> + <text>{@terminal_btn=Terminal}</text> <action function="page">terminalfolder</action> </button> <button style="main_button"> <placement x="%center_x%" y="%row13a_y%"/> - <text>Reload Theme</text> + <text>{@reload_theme_btn=Reload Theme}</text> <action function="reload"/> </button> <button style="main_button"> <placement x="%indent%" y="%row19_y%"/> - <text>ADB Sideload</text> + <text>{@adb_sideload_btn=ADB Sideload}</text> <action function="page">sideload</action> </button> <button style="main_button"> <condition var1="tw_show_dumlock" var2="1"/> <placement x="%center_x%" y="%row19_y%"/> - <text>HTC Dumlock</text> + <text>{@dumlock_btn=HTC Dumlock}</text> <action function="page">htcdumlock</action> </button> <button style="main_button"> <condition var1="tw_has_injecttwrp" var2="1"/> <placement x="%center_x%" y="%row19_y%"/> - <text>Re-Inject TWRP</text> + <text>{@inject_twrp_btn=Inject TWRP}</text> <actions> <action function="set">tw_back=advanced</action> <action function="set">tw_action=reinjecttwrp</action> - <action function="set">tw_text1=Re-Inject TWRP?</action> - <action function="set">tw_action_text1=Re-Injecting TWRP...</action> - <action function="set">tw_complete_text1=TWRP Injection Complete</action> - <action function="set">tw_slider_text=Swipe to Confirm</action> + <action function="set">tw_text1={@inject_twrp_confirm=Re-Inject TWRP?}</action> + <action function="set">tw_action_text1={@injecting_twrp=Re-Injecting TWRP...}</action> + <action function="set">tw_complete_text1={@inject_twrp_complete=TWRP Injection Complete}</action> + <action function="set">tw_slider_text={@swipe_to_confirm=Swipe to Confirm}</action> <action function="page">confirm_action</action> </actions> </button> @@ -3172,27 +3216,27 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Advanced</text> + <text>{@advanced_hdr=Advanced}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Partition SD Card</text> + <text>{@part_sd_hdr=Partition SD Card}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>You will lose all files on your SD card!</text> + <text>{@part_sd_lose=You will lose all files on your SD card!}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row3_y%" placement="5"/> - <text>This action cannot be undone!</text> + <text>{@part_sd_undo=This action cannot be undone!}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row5_y%" placement="5"/> - <text>EXT Size:</text> + <text>{@part_sd_ext_sz=EXT Size:}</text> </text> <text style="text_m"> @@ -3202,19 +3246,19 @@ <button style="button_quarter_width"> <placement x="%indent%" y="%row6_y%"/> - <text>-</text> + <text>{@part_sd_m=-}</text> <action function="addsubtract">tw_sdext_size-128</action> </button> <button style="button_quarter_width"> <placement x="%btn4_col4_x%" y="%row6_y%"/> - <text>+</text> + <text>{@part_sd_p=+}</text> <action function="addsubtract">tw_sdext_size+128</action> </button> <text style="text_m_accent"> <placement x="%center_x%" y="%row9_y%" placement="5"/> - <text>Swap Size:</text> + <text>{@part_sd_swap_sz=Swap Size:}</text> </text> <text style="text_m"> @@ -3224,19 +3268,19 @@ <button style="button_quarter_width"> <placement x="%indent%" y="%row10_y%"/> - <text>-</text> + <text>{@part_sd_m=-}</text> <action function="addsubtract">tw_swap_size-32</action> </button> <button style="button_quarter_width"> <placement x="%btn4_col4_x%" y="%row10_y%"/> - <text>+</text> + <text>{@part_sd_p=+}</text> <action function="addsubtract">tw_swap_size+32</action> </button> <text style="text_m_accent"> <placement x="%center_x%" y="%row13_y%" placement="5"/> - <text>File System:</text> + <text>{@file_system=File System:}</text> </text> <text style="text_m"> @@ -3257,7 +3301,7 @@ </button> <slider> - <text>Swipe to Partition</text> + <text>{@swipe_part_sd=Swipe to Partition}</text> <action function="page">partsdcardaction</action> <actions> <action function="set">tw_back=partsdcard</action> @@ -3265,9 +3309,9 @@ <action function="set">tw_has_action2=1</action> <action function="set">tw_action2=set</action> <action function="set">tw_action2_param=tw_zip_location=/sdcard</action> - <action function="set">tw_action_text1=Partitioning SD Card...</action> - <action function="set">tw_action_text2=This will take a few minutes.</action> - <action function="set">tw_complete_text1=Partitioning Complete</action> + <action function="set">tw_action_text1={@partitioning_sd=Partitioning SD Card...}</action> + <action function="set">tw_action_text2={@partitioning_sd2=This will take a few minutes.}</action> + <action function="set">tw_complete_text1={@part_sd_complete=Partitioning Complete}</action> <action function="page">action_page</action> </actions> </slider> @@ -3288,52 +3332,52 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Advanced</text> + <text>{@advanced_hdr=Advanced}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>HTC Dumlock</text> + <text>{@dumlock_hdr=HTC Dumlock}</text> </text> <button style="main_button_half_height_full_width"> <placement x="%indent%" y="%row15a_y%"/> - <text>Restore Original Boot</text> + <text>{@dumlock_restore_btn=Restore Original Boot}</text> <actions> <action function="set">tw_back=htcdumlock</action> <action function="set">tw_action=htcdumlockrestoreboot</action> - <action function="set">tw_text1=Restore original boot image?</action> - <action function="set">tw_action_text1=Restoring Original Boot...</action> - <action function="set">tw_complete_text1=Restore Original Boot Complete</action> - <action function="set">tw_slider_text=Swipe to Confirm</action> + <action function="set">tw_text1={@dumlock_restore_confirm=Restore original boot image?}</action> + <action function="set">tw_action_text1={@dumlock_restoring=Restoring Original Boot...}</action> + <action function="set">tw_complete_text1={@dumlock_restore_complete=Restore Original Boot Complete}</action> + <action function="set">tw_slider_text={@swipe_to_confirm=Swipe to Confirm}</action> <action function="page">confirm_action</action> </actions> </button> <button style="main_button_half_height_full_width"> <placement x="%indent%" y="%row18a_y%"/> - <text>Reflash Recovery</text> + <text>{@dumlock_reflash_btn=Reflash Recovery}</text> <actions> <action function="set">tw_back=htcdumlock</action> <action function="set">tw_action=htcdumlockreflashrecovery</action> - <action function="set">tw_text1=Reflash recovery to boot?</action> - <action function="set">tw_action_text1=Flashing recovery to boot...</action> - <action function="set">tw_complete_text1=Recovery Flash to Boot Complete</action> - <action function="set">tw_slider_text=Swipe to Confirm</action> + <action function="set">tw_text1={@dumlock_reflash_confirm=Reflash recovery to boot?}</action> + <action function="set">tw_action_text1={@dumlock_reflashing=Flashing recovery to boot...}</action> + <action function="set">tw_complete_text1={@dumlock_reflash_complete=Recovery Flash to Boot Complete}</action> + <action function="set">tw_slider_text={@swipe_to_confirm=Swipe to Confirm}</action> <action function="page">confirm_action</action> </actions> </button> <button style="main_button_half_height_full_width"> <placement x="%indent%" y="%row21a_y%"/> - <text>Install HTC Dumlock</text> + <text>{@dumlock_install_btn=Install HTC Dumlock}</text> <actions> <action function="set">tw_back=htcdumlock</action> <action function="set">tw_action=installhtcdumlock</action> - <action function="set">tw_text1=Install HTC dumlock files to ROM?</action> - <action function="set">tw_action_text1=Installing HTC Dumlock...</action> - <action function="set">tw_complete_text1=HTC Dumlock Install Complete</action> - <action function="set">tw_slider_text=Swipe to Confirm</action> + <action function="set">tw_text1={@dumlock_install_confirm=Install HTC dumlock files to ROM?}</action> + <action function="set">tw_action_text1={@dumlock_installing=Installing HTC Dumlock...}</action> + <action function="set">tw_complete_text1={@dumlock_install_complete=HTC Dumlock Install Complete}</action> + <action function="set">tw_slider_text={@swipe_to_confirm=Swipe to Confirm}</action> <action function="page">confirm_action</action> </actions> </button> @@ -3358,7 +3402,7 @@ </image> <slider> - <text>Swipe to Unlock</text> + <text>{@swipe_to_unlock=Swipe to Unlock}</text> <action function="overlay"/> </slider> </page> @@ -3368,12 +3412,12 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>File Manager</text> + <text>{@fm_hdr=File Manager}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Select a File or Folder</text> + <text>{@fm_sel_file=Select a File or Folder}</text> </text> <template name="sort_options"/> @@ -3392,14 +3436,14 @@ <actions> <action function="set">tw_filename1=tw_file_location1</action> <action function="set">tw_fm_isfolder=1</action> - <action function="set">tw_fm_type=Folder</action> + <action function="set">tw_fm_type={@fm_type_folder=Folder}</action> <action function="page">filemanageroptions</action> </actions> </button> <action> <actions> - <action function="set">tw_fm_type=File</action> + <action function="set">tw_fm_type={@fm_type_file=File}</action> <action function="set">tw_fm_isfolder=0</action> </actions> </action> @@ -3425,17 +3469,17 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>File Manager</text> + <text>{@fm_hdr=File Manager}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Choose Action</text> + <text>{@fm_choose_act=Choose Action}</text> </text> <text style="text_m_accent"> <placement x="%indent%" y="%row2_y%"/> - <text>%tw_fm_type% selected:</text> + <text>{@fm_selected=%tw_fm_type% selected:}</text> </text> <text style="text_m"> @@ -3446,10 +3490,10 @@ <button style="main_button_half_height"> <condition var1="tw_fm_isfolder" var2="0"/> <placement x="%indent%" y="%row15a_y%"/> - <text>Copy File</text> + <text>{@fm_copy_file_btn=Copy File}</text> <actions> <action function="set">tw_filemanager_command=cp</action> - <action function="set">tw_fm_text1=Copying</action> + <action function="set">tw_fm_text1={@fm_copying=Copying}</action> <action function="page">choosedestinationfolder</action> </actions> </button> @@ -3457,30 +3501,30 @@ <button style="main_button_half_height"> <condition var1="tw_fm_isfolder" var2="1"/> <placement x="%indent%" y="%row15a_y%"/> - <text>Copy Folder</text> + <text>{@fm_copy_folder_btn=Copy Folder}</text> <actions> <action function="set">tw_filemanager_command=cd "%tw_file_location1%" && cd .. && cp -R</action> - <action function="set">tw_fm_text1=Copying</action> + <action function="set">tw_fm_text1={@fm_copying=Copying}</action> <action function="page">choosedestinationfolder</action> </actions> </button> <button style="main_button_half_height"> <placement x="%center_x%" y="%row15a_y%"/> - <text>Move</text> + <text>{@fm_move_btn=Move}</text> <actions> <action function="set">tw_filemanager_command=mv</action> - <action function="set">tw_fm_text1=Moving</action> + <action function="set">tw_fm_text1={@fm_moving=Moving}</action> <action function="page">choosedestinationfolder</action> </actions> </button> <button style="main_button_half_height"> <placement x="%indent%" y="%row18a_y%"/> - <text>chmod 755</text> + <text>{@fm_chmod755_btn=chmod 755}</text> <actions> <action function="set">tw_filemanager_command=chmod 755</action> - <action function="set">tw_fm_text1=chmod 755</action> + <action function="set">tw_fm_text1={@fm_chmod755ing=chmod 755}</action> <action function="set">tw_fm_text2=</action> <action function="set">tw_fm_text3=</action> <action function="set">tw_include_text3=0</action> @@ -3491,7 +3535,7 @@ <button style="main_button_half_height"> <placement x="%center_x%" y="%row18a_y%"/> - <text>chmod</text> + <text>{@fm_chmod_btn=chmod}</text> <actions> <action function="set">tw_filemanager_rename=0000</action> <action function="set">tw_fm_text2=</action> @@ -3504,10 +3548,10 @@ <button style="main_button_half_height"> <placement x="%indent%" y="%row21a_y%"/> - <text>Delete</text> + <text>{@fm_delete_btn=Delete}</text> <actions> <action function="set">tw_filemanager_command=rm -rf</action> - <action function="set">tw_fm_text1=Deleting</action> + <action function="set">tw_fm_text1={@fm_deleting=Deleting}</action> <action function="set">tw_fm_text2=</action> <action function="set">tw_fm_text3=</action> <action function="set">tw_include_text3=0</action> @@ -3519,10 +3563,10 @@ <button style="main_button_half_height"> <condition var1="tw_fm_isfolder" var2="0"/> <placement x="%center_x%" y="%row21a_y%"/> - <text>Rename File</text> + <text>{@fm_rename_file_btn=Rename File}</text> <actions> <action function="set">tw_filemanager_rename=tw_selection1</action> - <action function="set">tw_fm_text1=Renaming</action> + <action function="set">tw_fm_text1={@fm_renaming=Renaming}</action> <action function="set">tw_filemanager_command=mv</action> <action function="page">filemanagerrenamefile</action> </actions> @@ -3531,10 +3575,10 @@ <button style="main_button_half_height"> <condition var1="tw_fm_isfolder" var2="1"/> <placement x="%center_x%" y="%row21a_y%"/> - <text>Rename Folder</text> + <text>{@fm_rename_folder_btn=Rename Folder}</text> <actions> <action function="set">tw_filemanager_rename=tw_selection1</action> - <action function="set">tw_fm_text1=Renaming</action> + <action function="set">tw_fm_text1={@fm_renaming=Renaming}</action> <action function="set">tw_filemanager_command=cd "%tw_file_location1%" && cd .. && mv</action> <action function="page">filemanagerrenamefolder</action> </actions> @@ -3556,12 +3600,12 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>File Manager</text> + <text>{@fm_hdr=File Manager}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Select Destination Folder</text> + <text>{@fm_sel_dest=Select Destination Folder}</text> </text> <template name="sort_options"/> @@ -3602,17 +3646,17 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>File Manager</text> + <text>{@fm_hdr=File Manager}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Rename %tw_fm_type%</text> + <text>{@fm_rename_hdr=Rename} %tw_fm_type%</text> </text> <text style="text_m_accent"> <placement x="%indent%" y="%row2_y%"/> - <text>Name:</text> + <text>{@name=Name:}</text> </text> <input> @@ -3635,7 +3679,7 @@ <button style="main_button_half_height"> <placement x="%indent%" y="%row10_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <action function="page">filemanageroptions</action> </button> @@ -3657,17 +3701,17 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>File Manager</text> + <text>{@fm_hdr=File Manager}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Rename %tw_fm_type%</text> + <text>{@fm_rename_hdr=Rename} %tw_fm_type%</text> </text> <text style="text_m_accent"> <placement x="%indent%" y="%row2_y%"/> - <text>Name:</text> + <text>{@name=Name:}</text> </text> <input> @@ -3690,7 +3734,7 @@ <button style="main_button_half_height"> <placement x="%indent%" y="%row10_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <action function="page">filemanageroptions</action> </button> @@ -3712,17 +3756,17 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>File Manager</text> + <text>{@fm_hdr=File Manager}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Set Permissions</text> + <text>{@fm_set_perms_hdr=Set Permissions}</text> </text> <text style="text_m_accent"> <placement x="%indent%" y="%row2_y%"/> - <text>Permissions:</text> + <text>{@fm_perms=Permissions:}</text> </text> <input> @@ -3744,7 +3788,7 @@ <button style="main_button_half_height"> <placement x="%indent%" y="%row10_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <action function="page">filemanageroptions</action> </button> @@ -3766,12 +3810,12 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>File Manager</text> + <text>{@fm_hdr=File Manager}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Confirm Action</text> + <text>{@confirm_action=Confirm Action}</text> </text> <text style="text_m_accent"> @@ -3796,11 +3840,11 @@ <text style="text_m"> <placement x="%center_x%" y="%row8_y%" placement="5"/> - <text>Press back button to cancel.</text> + <text>{@back_cancel=Press back button to cancel.}</text> </text> <slider> - <text>Swipe to Confirm</text> + <text>{@swipe_to_confirm=Swipe to Confirm}</text> <action function="page">filemanageraction</action> </slider> @@ -3820,7 +3864,7 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>File Manager</text> + <text>{@fm_hdr=File Manager}</text> </text> <text style="text_m"> @@ -3839,7 +3883,7 @@ </conditions> <actions> <action function="set">tw_back=filemanagerlist</action> - <action function="set">tw_complete_text1=File Operation Complete</action> + <action function="set">tw_complete_text1={@fm_complete=File Operation Complete}</action> <action function="page">action_complete</action> </actions> </action> @@ -3850,7 +3894,7 @@ <condition var1="tw_operation_status" op="!=" var2="0"/> </conditions> <actions> - <action function="set">tw_complete_text1=File Operation Complete</action> + <action function="set">tw_complete_text1={@fm_complete=File Operation Complete}</action> <action function="page">action_complete</action> </actions> </action> @@ -3876,17 +3920,17 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Mount</text> + <text>{@mount_hdr=Mount}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Decrypt Data</text> + <text>{@decrypt_data_hdr=Decrypt Data}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>Enter Password:</text> + <text>{@decrypt_data_enter_pass=Enter Password:}</text> </text> <input> @@ -3909,12 +3953,12 @@ <text style="text_m_fail"> <condition var1="tw_password_fail" var2="1"/> <placement x="%indent%" y="%row5_y%"/> - <text>Password failed, please try again!</text> + <text>{@decryt_data_failed=Password failed, please try again!}</text> </text> <button style="main_button_half_height"> <placement x="%indent%" y="%row10_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <actions> <action function="set">tw_page_done=1</action> <action function="page">main</action> @@ -3929,17 +3973,17 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Mount</text> + <text>{@mount_hdr=Mount}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Decrypt Data</text> + <text>{@decrypt_data_hdr=Decrypt Data}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>Enter Pattern:</text> + <text>{@decrypt_data_enter_pattern=Enter Pattern.}</text> </text> <patternpassword> @@ -3953,7 +3997,7 @@ <button style="main_button_half_height"> <placement x="%indent%" y="%row21a_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <actions> <action function="set">tw_page_done=1</action> <action function="page">main</action> @@ -3966,12 +4010,12 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Mount</text> + <text>{@mount_hdr=Mount}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Decrypt Data - Trying Decryption</text> + <text>{@decrypt_data_trying=Trying Decryption}</text> </text> <template name="console"/> @@ -4010,12 +4054,12 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Terminal Command</text> + <text>{@term_hdr=Terminal Command}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Browse to Starting Folder</text> + <text>{@term_sel_folder_hdr=Browse to Starting Folder}</text> </text> <template name="sort_options"/> @@ -4050,7 +4094,7 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Terminal Command</text> + <text>{term_hdr=Terminal Command}</text> </text> <text style="text_m"> @@ -4077,7 +4121,7 @@ <highlight color="%highlight_color%"/> <placement x="%btn4_col4_x%" y="%row12a_y%"/> <font resource="font_m" color="%text_button_color%"/> - <text>Kill</text> + <text>{@term_kill_btn=Kill}</text> <image resource="tab_4"/> <action function="killterminal"/> </button> @@ -4100,35 +4144,35 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Advanced</text> + <text>{@advanced_hdr=Advanced}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>ADB Sideload</text> + <text>{@adb_sideload_hdr=ADB Sideload}</text> </text> <checkbox> <placement x="%indent%" y="%row2_y%"/> - <text>Wipe Dalvik Cache</text> + <text>{@sideload_wipe_dalvik_chk=Wipe Dalvik Cache}</text> <data variable="tw_wipe_dalvik"/> </checkbox> <checkbox> <placement x="%indent%" y="%row3a_y%"/> - <text>Wipe Cache</text> + <text>{@sideload_wipe_cache_chk=Wipe Cache}</text> <data variable="tw_wipe_cache"/> </checkbox> <slider> - <text>Swipe to start Sideload</text> + <text>{@swipe_to_sideload=Swipe to Start Sideload}</text> <action function="page">partsdcardaction</action> <actions> <action function="set">tw_back=advanced</action> <action function="set">tw_action=adbsideload</action> - <action function="set">tw_action_text1=ADB Sideload</action> - <action function="set">tw_action_text2=Usage: adb sideload filename.zip</action> - <action function="set">tw_complete_text1=ADB Sideload Complete</action> + <action function="set">tw_action_text1={@sideload_confirm=ADB Sideload}</action> + <action function="set">tw_action_text2={@sideload_usage=Usage: adb sideload filename.zip}</action> + <action function="set">tw_complete_text1={@sideload_complete=ADB Sideload Complete}</action> <action function="set">tw_has_cancel=1</action> <action function="set">tw_show_reboot=1</action> <action function="set">tw_cancel_action=adbsideloadcancel</action> @@ -4152,43 +4196,43 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Advanced</text> + <text>{@advanced_hdr=Advanced}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>Fix Permissions</text> + <text>{@fix_perms_hdr=Fix Permissions}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>Note: Fixing permissions is rarely needed.</text> + <text>{@fix_perms_note=Note: Fixing permissions is rarely needed.}</text> </text> <checkbox> <placement x="%indent%" y="%row4_y%"/> - <text>Also fix SELinux Contexts</text> + <text>{@fix_perms_selinux_chk=Also fix SELinux Contexts}</text> <data variable="tw_fixperms_restorecon"/> </checkbox> <text style="text_m_fail"> <placement x="%center_x%" y="%row6_y%" placement="5"/> - <text>Fixing SELinux Contexts may cause</text> + <text>{@fix_perms_sel_note1=Fixing SELinux Contexts may cause}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row7_y%" placement="5"/> - <text>your device to not boot properly.</text> + <text>{@fix_perms_sel_note2=your device to not boot properly.}</text> </text> <slider> - <text>Swipe to Fix Permissions</text> + <text>{@swipe_to_fix_perms=Swipe to Fix Permissions}</text> <actions> <action function="set">tw_back=advanced</action> <action function="set">tw_action=fixpermissions</action> - <action function="set">tw_action_text1=Fixing Permissions...</action> - <action function="set">tw_complete_text1=Fix Permissions Complete</action> - <action function="set">tw_slider_text=Swipe to Confirm</action> + <action function="set">tw_action_text1={@fixing_perms=Fixing Permissions...}</action> + <action function="set">tw_complete_text1={@fix_perms_complete=Fix Permissions Complete}</action> + <action function="set">tw_slider_text={@swipe_to_confirm=Swipe to Confirm}</action> <action function="set">tw_show_reboot=1</action> <action function="page">action_page</action> </actions> @@ -4210,40 +4254,40 @@ <text style="text_l"> <placement x="%col1_x_header%" y="%row3_header_y%"/> - <text>Reboot</text> + <text>{@reboot_hdr=Reboot}</text> </text> <text style="text_m"> <placement x="%col1_x_header%" y="%row4_header_y%"/> - <text>SuperSU Check</text> + <text>{@su_hdr=SuperSU Check}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>Your device does not appear to be rooted.</text> + <text>{@su_note1=Your device does not appear to be rooted.}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row4_y%" placement="5"/> - <text>Install SuperSU now?</text> + <text>{@su_note2=Install SuperSU now?}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row5_y%" placement="5"/> - <text>This will root your device.</text> + <text>{@su_note3=This will root your device.}</text> </text> <button style="main_button_half_height"> <placement x="%indent%" y="%row18a_y%"/> - <text>Do not Install</text> + <text>{@su_cancel=Do not Install}</text> <action function="set">tw_page_done=1</action> </button> <slider> - <text>Swipe to Install</text> + <text>{@swipe_su_to_install=Swipe to Install}</text> <actions> <action function="set">tw_action=installsu</action> - <action function="set">tw_action_text1=Installing SuperSU</action> + <action function="set">tw_action_text1={@su_installing=Installing SuperSU}</action> <action function="set">tw_action_text2=</action> <action function="page">singleaction_page</action> </actions> @@ -4281,14 +4325,14 @@ </fill> <partitionlist style="partitionlist_storage"> - <text>Select Storage</text> + <text>{@sel_storage_list=Select Storage}</text> <data name="tw_storage_path"/> <listtype name="storage"/> </partitionlist> <button style="button_third_width"> <placement x="%dialog_button_x%" y="%row14_y%"/> - <text>OK</text> + <text>{@ok_btn=OK}</text> <actions> <action function="set">tw_clear_destination=%tw_back%</action> <action function="overlay"/> diff --git a/gui/theme/common/watch.xml b/gui/theme/common/watch.xml index 62d0b017f..2ed266aad 100644..100755 --- a/gui/theme/common/watch.xml +++ b/gui/theme/common/watch.xml @@ -184,19 +184,19 @@ <button style="main_button"> <placement x="%col1_x_left%" y="%row1_y%"/> - <text>Install</text> + <text>{@install_btn=Install}</text> <action function="page">install_type</action> </button> <button style="main_button"> <placement x="%col1_x_right%" y="%row1_y%"/> - <text>Wipe</text> + <text>{@wipe_btn=Wipe}</text> <action function="page">wipe_type1</action> </button> <button style="main_button"> <placement x="%col1_x_left%" y="%row6_y%"/> - <text>Backup</text> + <text>{@backup_btn=Backup}</text> <actions> <action function="set">tw_back=main</action> <action function="page">backup_selectstorage</action> @@ -205,13 +205,13 @@ <button style="main_button"> <placement x="%col1_x_right%" y="%row6_y%"/> - <text>Restore</text> + <text>{@restore_btn=Restore}</text> <action function="page">restore</action> </button> <button style="main_button"> <placement x="%col1_x_left%" y="%row11_y%"/> - <text>Reboot</text> + <text>{@reboot_btn=Reboot}</text> <action function="page">reboot</action> </button> @@ -228,39 +228,39 @@ <button style="main_button"> <placement x="%col1_x_left%" y="%row1_y%"/> - <text>Mount</text> + <text>{@mount_btn=Mount}</text> <action function="page">mount</action> </button> <button style="main_button"> <placement x="%col1_x_right%" y="%row1_y%"/> - <text>Settings</text> + <text>{@settings_btn=Settings}</text> <action function="page">settings</action> </button> <button style="main_button"> <placement x="%col1_x_left%" y="%row6_y%"/> - <text>Files</text> + <text>{@files_btn=Files}</text> <action function="page">filemanagerlist</action> </button> <button style="main_button"> <placement x="%col1_x_right%" y="%row6_y%"/> - <text>Copy Log</text> + <text>{@copy_log_btn=Copy Log}</text> <actions> <action function="set">tw_back=main3</action> <action function="set">tw_action=copylog</action> - <action function="set">tw_text1=Copy Log to SD Card?</action> - <action function="set">tw_action_text1=Copying Log to SD Card...</action> - <action function="set">tw_complete_text1=Log Copy Complete</action> - <action function="set">tw_slider_text= Confirm</action> + <action function="set">tw_text1={@copy_log_confirm=Copy Log to SD Card?}</action> + <action function="set">tw_action_text1={@copying_log=Copying Log to SD Card...}</action> + <action function="set">tw_complete_text1={@copy_log_complete=Log Copy Complete}</action> + <action function="set">tw_slider_text={@swipe_confirm= Confirm}</action> <action function="page">confirm_action</action> </actions> </button> <button style="main_button"> <placement x="%col1_x_right%" y="%row11_y%"/> - <text>Advanced</text> + <text>{@advanced_btn=Advanced}</text> <action function="page">advanced</action> </button> @@ -289,12 +289,12 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Install > Select Type</text> + <text>{@install_hdr=Install} > {@select_type_hdr=Select Type}</text> </text> <button style="main_button_full_width"> <placement x="%col1_x_left%" y="%row1_y%"/> - <text>Install Zip</text> + <text>{@install_zip_btn=Install Zip}</text> <actions> <action function="queueclear"/> <action function="set">tw_selectimage=0</action> @@ -304,7 +304,7 @@ <button style="main_button_full_width"> <placement x="%col1_x_left%" y="%row6_y%"/> - <text>Install Image</text> + <text>{@install_image_btn=Install Image}</text> <actions> <action function="queueclear"/> <action function="set">tw_selectimage=1</action> @@ -314,7 +314,7 @@ <button style="main_button_full_width"> <placement x="%col1_x_left%" y="%row11_y%"/> - <text>ADB Sideload</text> + <text>{@adb_sideload_btn=ADB Sideload}</text> <action function="page">sideload</action> </button> @@ -337,13 +337,13 @@ <text style="text_m"> <condition var1="tw_selectimage" var2="0"/> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Install Zip > Select File</text> + <text>{@install_zip_hdr=Install Zip} > {@install_select_file_hdr=Select File}</text> </text> <text style="text_m"> <condition var1="tw_selectimage" var2="1"/> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Install Image > Select File</text> + <text>{@install_image_hdr=Install Image} > {@install_select_file_hdr=Select File}</text> </text> <fileselector> @@ -371,7 +371,7 @@ <highlight color="%highlight_color%"/> <image resource="q_btn_storage"/> <actions> - <action function="set">tw_storagetext=Install > Select Storage</action> + <action function="set">tw_storagetext={@install_hdr=Install} > {@select_storage_hdr=Select Storage}</action> <action function="set">tw_back=install</action> <action function="page">select_storage</action> </actions> @@ -414,12 +414,12 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Install Zip > Queue</text> + <text>{@install_zip_hdr=Install Zip} > {@queue_hdr=Queue}</text> </text> <text style="text_m_accent"> <placement x="%indent%" y="%row1_y%"/> - <text>File %tw_zip_queue_count% of 10:</text> + <text>{@zip_queue_count_s=File %tw_zip_queue_count% of 10:}</text> </text> <text style="text_m"> @@ -429,7 +429,7 @@ <text style="text_m_accent"> <placement x="%indent%" y="%row4_y%"/> - <text>Folder:</text> + <text>{@folder=Folder:}</text> </text> <text style="text_m"> @@ -439,7 +439,7 @@ <text style="text_m"> <placement x="%indent%" y="%row8_y%"/> - <text>Press back button to clear the queue.</text> + <text>{@zip_back_clear=Press back button to clear the queue.}</text> </text> <button> @@ -495,19 +495,19 @@ <text style="text_m"> <condition var1="tw_selectimage" var2="0"/> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Install Zip > Options</text> + <text>{@install_zip_hdr=Install Zip} > {@options_hdr=Options}</text> </text> <checkbox> <placement x="%indent%" y="%row1_y%"/> - <text>Zip file signature verification</text> + <text>{@zip_sig_chk=Zip file signature verification}</text> <data variable="tw_signed_zip_verify"/> </checkbox> <checkbox> <condition var1="tw_has_injecttwrp" var2="1"/> <placement x="%indent%" y="%row2a_y%"/> - <text>Inject TWRP after install</text> + <text>{@inject_twrp_chk=Inject TWRP after install}</text> <data variable="tw_inject_after_zip"/> </checkbox> @@ -543,12 +543,12 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Install Zip > Confirm Flash</text> + <text>{@install_zip_hdr=Install Zip} > {@confirm_flash_hdr=Confirm Flash}</text> </text> <text style="text_m_accent"> <placement x="%indent%" y="%row1_y%"/> - <text>File:</text> + <text>{@file=File:}</text> </text> <text style="text_m"> @@ -564,12 +564,12 @@ <text style="text_m_accent"> <placement x="%indent%" y="%row4_y%"/> - <text>Queue:</text> + <text>{@zip_queue=Queue:}</text> </text> <text style="text_m"> <placement x="%indent%" y="%row5_y%"/> - <text>%tw_zip_queue_count% of 10 files queued</text> + <text>{@zip_queue_count_s=File %tw_zip_queue_count% of 10:}</text> </text> <button> @@ -580,21 +580,21 @@ <listbox style="listbox_options"> <placement x="%col1_x_left%" y="%row8_y%" w="%content_width%" h="80"/> - <listitem name="Zip file signature verification"> + <listitem name="{@zip_sig_chk=Zip signature verification}"> <data variable="tw_signed_zip_verify"/> </listitem> </listbox> <text style="text_m_accent"> <placement x="%indent%" y="%row7_y%"/> - <text>Options:</text> + <text>{@options=Options:}</text> </text> <text style="text_m"> <condition var1="tw_has_injecttwrp" var2="1"/> <condition var1="tw_inject_after_zip" var2="1"/> <placement x="%indent%" y="%row9_y%"/> - <text>Inject TWRP after install</text> + <text>{@inject_twrp_chk=Inject TWRP after install}</text> </text> <button> @@ -604,7 +604,7 @@ </button> <slider> - <text> Confirm</text> + <text>{@swipe_confirm= Confirm}</text> <action function="flash">flash_zip</action> </slider> @@ -629,7 +629,7 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Installing Zip: %tw_file%</text> + <text>{@installing_zip=Installing Zip: %tw_file%}</text> </text> <template name="console"/> @@ -650,20 +650,20 @@ <text style="text_m_fail"> <condition var1="tw_operation_status" op="!=" var2="0"/> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Installation Failed</text> + <text>{@install_failed=Installation Failed}</text> </text> <text style="text_m"> <condition var1="tw_operation_status" var2="0"/> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Installation Successful</text> + <text>{@install_successful=Installation Successful}</text> </text> <template name="console"/> <button style="main_button_half_height"> <placement x="%col1_x_left%" y="%row13_y%"/> - <text>Wipe cache/dalvik</text> + <text>{@wipe_cache_dalvik_btn=Wipe cache/dalvik}</text> <actions> <action function="set">tw_back=flash_done</action> <action function="set">tw_action=wipe</action> @@ -671,30 +671,30 @@ <action function="set">tw_has_action2=1</action> <action function="set">tw_action2=wipe</action> <action function="set">tw_action2_param=dalvik</action> - <action function="set">tw_text1=Wipe Cache & Dalvik?</action> - <action function="set">tw_action_text1=Wiping Cache & Dalvik...</action> - <action function="set">tw_complete_text1=Cache & Dalvik Wipe Complete</action> - <action function="set">tw_slider_text= Wipe</action> + <action function="set">tw_text1={@wipe_cache_dalvik_confirm=Wipe Cache & Dalvik?}</action> + <action function="set">tw_action_text1={@wiping_cache_dalvik=Wiping Cache & Dalvik...}</action> + <action function="set">tw_complete_text1={@wipe_cache_dalvik_complete=Cache & Dalvik Wipe Complete}</action> + <action function="set">tw_slider_text={@swipe_wipe_s= Wipe}</action> <action function="page">confirm_action</action> </actions> </button> <button style="main_button_half_height"> <placement x="%col1_x_right%" y="%row13_y%"/> - <text>Reboot System</text> + <text>{@reboot_system_btn=Reboot System}</text> <actions> <action function="set">tw_back=main2</action> <action function="set">tw_action=reboot</action> <action function="set">tw_action_param=system</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=No OS Installed! Are you</action> - <action function="set">tw_text2=sure you wish to reboot?</action> + <action function="set">tw_text1={@no_os1=No OS Installed! Are you}</action> + <action function="set">tw_text2={@no_osrb=sure you wish to reboot?}</action> <action function="set">tw_text3=</action> <action function="set">tw_text4=</action> - <action function="set">tw_action_text1=Rebooting...</action> + <action function="set">tw_action_text1={@rebooting=Rebooting...}</action> <action function="set">tw_action_text2=</action> - <action function="set">tw_complete_text1=Rebooting...</action> - <action function="set">tw_slider_text= Reboot</action> + <action function="set">tw_complete_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_slider_text={@swipe_reboot_s= Reboot}</action> <action function="page">rebootcheck</action> </actions> </button> @@ -723,7 +723,7 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Install Image > Select Target Partition</text> + <text>{@install_image_hdr=Install Image} > {install_sel_target=Select Target Partition}</text> </text> <partitionlist style="partitionlist_headerless_rb"> @@ -763,12 +763,12 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Install Image > Confirm Flash</text> + <text>{@install_image_hdr=Install Image} > {@confirm_flash_hdr=Confirm Flash}</text> </text> <text style="text_m_accent"> <placement x="%indent%" y="%row1_y%"/> - <text>File:</text> + <text>{@file=File:}</text> </text> <text style="text_m"> @@ -784,7 +784,7 @@ <text style="text_m_accent"> <placement x="%indent%" y="%row4_y%"/> - <text>Target Partition:</text> + <text>{@target_partition=Target Partition:}</text> </text> <text style="text_m"> @@ -799,14 +799,14 @@ </button> <slider> - <text> Confirm</text> + <text>{@swipe_confirm= Confirm}</text> <actions> <action function="set">tw_back=flashimage_confirm</action> <action function="set">tw_action=flashimage</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_action_text1=Flashing Image...</action> + <action function="set">tw_action_text1={@flashing_image=Flashing Image...}</action> <action function="set">tw_action_text2=</action> - <action function="set">tw_complete_text1=Image Flashed</action> + <action function="set">tw_complete_text1={@image_flashed=Image Flashed}</action> <action function="page">action_page</action> </actions> <action function="flashimage"/> @@ -858,7 +858,7 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Confirm Action</text> + <text>{@confirm_action=Confirm Action}</text> </text> <text style="text_m_accent"> @@ -897,7 +897,7 @@ <text style="text_m"> <placement x="%center_x%" y="%row8_y%" placement="5"/> - <text>Press back button to cancel.</text> + <text>{@back_cancel=Press back button to cancel.}</text> </text> <slider> @@ -936,7 +936,7 @@ <button style="main_button_half_height"> <condition var1="tw_has_cancel" var2="1"/> <placement x="%col1_x_right%" y="%row13_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <action function="%tw_cancel_action%">%tw_cancel_param%</action> </button> @@ -1008,20 +1008,20 @@ <text style="text_m_fail"> <condition var1="tw_operation_status" op="!=" var2="0"/> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>%tw_complete_text1% Failed</text> + <text>%tw_complete_text1% {@failed=Failed}</text> </text> <text style="text_m"> <condition var1="tw_operation_status" var2="0"/> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>%tw_complete_text1% Successful</text> + <text>%tw_complete_text1% {@successful=Successful}</text> </text> <template name="console"/> <button style="main_button_half_height"> <placement x="%col1_x_left%" y="%row13_y%"/> - <text>Back</text> + <text>{@back_btn=Back}</text> <actions> <action function="set">tw_clear_destination=%tw_back%</action> <action function="page">clear_vars</action> @@ -1030,20 +1030,20 @@ <button style="main_button_half_height"> <placement x="%col1_x_right%" y="%row13_y%"/> - <text>Reboot System</text> + <text>{@reboot_system_btn=Reboot System}</text> <actions> <action function="set">tw_back=main2</action> <action function="set">tw_action=reboot</action> <action function="set">tw_action_param=system</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=No OS Installed! Are you</action> - <action function="set">tw_text2=sure you wish to reboot?</action> + <action function="set">tw_text1={@no_os1=No OS Installed! Are you}</action> + <action function="set">tw_text2={@no_osrb=sure you wish to reboot?}</action> <action function="set">tw_text3=</action> <action function="set">tw_text4=</action> - <action function="set">tw_action_text1=Rebooting...</action> + <action function="set">tw_action_text1={@rebooting=Rebooting...}</action> <action function="set">tw_action_text2=</action> - <action function="set">tw_complete_text1=Rebooting...</action> - <action function="set">tw_slider_text= Reboot</action> + <action function="set">tw_complete_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_slider_text={@swipe_reboot_s= Reboot}</action> <action function="page">rebootcheck</action> </actions> </button> @@ -1112,18 +1112,18 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Wipe > Select Type</text> + <text>{@wipe_hdr=Wipe} > {@select_type_hdr=Select Type}</text> </text> <button style="main_button_full_width"> <placement x="%col1_x_left%" y="%row1_y%"/> - <text>Factory Reset</text> + <text>{@factory_reset_btn=Factory Reset}</text> <action function="page">wipe</action> </button> <button style="main_button_full_width"> <placement x="%col1_x_left%" y="%row6_y%"/> - <text>Advanced Wipe</text> + <text>{@advanced_wipe_btn=Advanced Wipe}</text> <actions> <action function="set">partitionlisterror=0</action> <action function="page">advancedwipe</action> @@ -1155,13 +1155,13 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Wipe > Select Type</text> + <text>{@wipe_hdr=Wipe} > {@select_type_hdr=Select Type}</text> </text> <button style="main_button_full_width"> <condition var1="tw_has_data_media" var2="1"/> <placement x="%col1_x_left%" y="%row1_y%"/> - <text>Format Data</text> + <text>{@format_data_btn=Format Data}</text> <action function="page">formatdata</action> </button> @@ -1171,24 +1171,24 @@ <condition var1="tw_has_data_media" var2="0"/> </conditions> <placement x="%col1_x_left%" y="%row1_y%"/> - <text>Wipe Encryption</text> + <text>{@wipe_enc_btn=Wipe Encryption}</text> <actions> <action function="set">tw_back=wipe</action> <action function="set">tw_action=wipe</action> <action function="set">tw_action_param=DATAMEDIA</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=Wipe Encryption from Data?</action> + <action function="set">tw_text1={@wipe_enc_confirm=Wipe Encryption from Data?}</action> <action function="set">tw_text2=</action> - <action function="set">tw_action_text1=Formatting Data...</action> - <action function="set">tw_complete_text1=Data Format Complete</action> - <action function="set">tw_slider_text= Format Data</action> + <action function="set">tw_action_text1={@formatting_data=Formatting Data...}</action> + <action function="set">tw_complete_text1={@format_data_complete=Data Format Complete}</action> + <action function="set">tw_slider_text={@swipe_format_data_s= Format Data}</action> <action function="page">confirm_action</action> </actions> </button> <button style="main_button_full_width"> <placement x="%col1_x_left%" y="%row6_y%"/> - <text>File System Options</text><actions> + <text>{@file_sys_opt=File System Options}</text><actions> <action function="set">partitionlisterror=0</action> <action function="page">partitionoptions_select</action> </actions> @@ -1219,18 +1219,18 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Wipe > Factory Reset</text> + <text>{@wipe_hdr=Wipe} > {@factory_reset_hdr=Factory Reset}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row1_y%" placement="5"/> - <text>Wipes Data, Cache, and Dalvik</text> + <text>{@factory_reset1=Wipes Data, Cache, and Dalvik}</text> </text> <text style="text_m_accent"> <condition var1="tw_has_data_media" var2="1"/> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>(not including internal storage)</text> + <text>{@factory_reset2=(not including internal storage)}</text> </text> <text style="text_m_accent"> @@ -1239,38 +1239,38 @@ <condition var1="fileexists" var2="/and-sec"/> </conditions> <placement x="%center_x%" y="%row3_y%" placement="5"/> - <text>Android Secure</text> + <text>{@android_secure=Android Secure}</text> </text> <text style="text_m_accent"> <condition var1="tw_has_sdext_partition" var2="1"/> <placement x="%center_x%" y="%row4_y%" placement="5"/> - <text>SD-EXT</text> + <text>{@sdext=SD-EXT}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row6_y%" placement="5"/> - <text>Most of the time this is</text> + <text>{@factory_reset3=Most of the time this is}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row7_y%" placement="5"/> - <text>the only wipe that you need.</text> + <text>{@factory_reset4=the only wipe that you need.}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row9_y%" placement="5"/> - <text>Press back button to cancel.</text> + <text>{@back_cancel=Press back button to cancel.}</text> </text> <slider> - <text> Wipe</text> + <text>{@swipe_wipe_s= Wipe}</text> <actions> <action function="set">tw_back=wipe</action> <action function="set">tw_action=wipe</action> <action function="set">tw_action_param=data</action> - <action function="set">tw_action_text1=Factory Reset...</action> - <action function="set">tw_complete_text1=Factory Reset Complete</action> + <action function="set">tw_action_text1={@factory_resetting=Factory Reset...}</action> + <action function="set">tw_complete_text1={@factory_reset_complete=Factory Reset Complete}</action> <action function="page">action_page</action> </actions> </slider> @@ -1297,7 +1297,7 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Wipe > Advanced Wipe > Select Partitions</text> + <text>{@wipe_hdr=Wipe} > {@advanced_wipe_hdr=Advanced Wipe} > {@sel_part_hdr=Select Partitions}</text> </text> <partitionlist style="partitionlist_headerless_cb"> @@ -1311,14 +1311,14 @@ </fill> <slider> - <text> Wipe</text> + <text>{@swipe_wipe_s= Wipe}</text> <actions> <action function="set">tw_back=advancedwipe</action> <action function="set">tw_action=wipe</action> <action function="set">tw_action_param=LIST</action> - <action function="set">tw_text1=Wipe Selected Partition(s)?</action> - <action function="set">tw_action_text1=Wiping Partition(s)...</action> - <action function="set">tw_complete_text1=Wipe Complete</action> + <action function="set">tw_text1={@wipe_sel_confirm=Wipe Selected Partition(s)?}</action> + <action function="set">tw_action_text1={@wiping_part=Wiping Partition(s)...}</action> + <action function="set">tw_complete_text1={@wipe_complete=Wipe Complete}</action> <action function="page">action_page</action> </actions> </slider> @@ -1341,22 +1341,22 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Wipe > Format Data</text> + <text>{@wipe_hdr=Wipe} > {@format_data_hdr=Format Data}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row1_y%" placement="5"/> - <text>Format Data will wipe all of your apps,</text> + <text>{@format_data_wtc1=Format Data will wipe all of your apps,}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>backups and media. This cannot be undone.</text> + <text>{@format_data_wtc2=backups and media. This cannot be undone.}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row3_y%" placement="5"/> - <text>Type yes to continue. Press back to cancel.</text> + <text>{@yes_continue=Type yes to continue. Press back to cancel.}</text> </text> <input> @@ -1391,8 +1391,8 @@ <action function="set">tw_back=formatdata</action> <action function="set">tw_action=wipe</action> <action function="set">tw_action_param=DATAMEDIA</action> - <action function="set">tw_action_text1=Formatting Data...</action> - <action function="set">tw_complete_text1=Data Format Complete</action> + <action function="set">tw_action_text1={@formatting_data=Formatting Data...}</action> + <action function="set">tw_complete_text1={@format_data_complete=Data Format Complete}</action> <action function="page">action_page</action> </actions> </action> @@ -1434,7 +1434,7 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Wipe > File System Options > Select Partitions</text> + <text>{@wipe_hdr=Wipe} > {@file_sys_opt=File System Options} > {@sel_part_hdr=Select Partitions}</text> </text> <partitionlist style="partitionlist_headerless_cb"> @@ -1447,27 +1447,10 @@ <placement x="%col1_x_left%" y="row10a_y" w="%content_width%" h="input_line_width"/> </fill> - <text style="text_m"> - <placement x="%col1_x_left%" y="%row11_y%"/> - <text>Select only one partition!</text> - </text> - <text style="text_m_fail"> <condition var1="partitionlisterror" var2="1"/> <placement x="%col1_x_left%" y="%row12_y%"/> - <text>Invalid selection!</text> - </text> - - <text style="text_m"> - <condition var1="partitionlisterror" var2="1"/> - <placement x="%col1_x_left%" y="%row13_y%"/> - <text>Not all listed partitions</text> - </text> - - <text style="text_m"> - <condition var1="partitionlisterror" var2="1"/> - <placement x="%col1_x_left%" y="%row14_y%"/> - <text>can be modified.</text> + <text>{@invalid_part_sel=Invalid partition selection}</text> </text> <button> @@ -1498,78 +1481,78 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Wipe > File System Options > Select Action</text> + <text>{@wipe_hdr=Wipe} > {@file_sys_opt=File System Options} > {@sel_act_hdr=Select Action}</text> </text> <text style="text_m_accent"> <placement x="%col1_x_left%" y="%row1_y%"/> - <text>Partition: %tw_partition_name%</text> + <text>{@partition=Partition: %tw_partition_name%}</text> </text> <text style="text_m_accent"> <placement x="%col1_x_right%" y="%row1_y%"/> - <text>File system: %tw_partition_file_system%</text> + <text>{@part_curr_fs=File system: %tw_partition_file_system%}</text> </text> <text style="text_m"> <condition var1="tw_partition_is_present" var2="1"/> <placement x="%col1_x_left%" y="%row2a_y%"/> - <text>Present: Yes</text> + <text>{@part_present_yes=Present: Yes}</text> </text> <text style="text_m"> <condition var1="tw_partition_is_present" var2="0"/> <placement x="%col1_x_left%" y="%row2a_y%"/> - <text>Present: No</text> + <text>{@part_present_no=Present: No}</text> </text> <text style="text_m"> <condition var1="tw_partition_removable" var2="1"/> <placement x="%col1_x_right%" y="%row2a_y%"/> - <text>Removable: Yes</text> + <text>{@part_removable_yes=Removable: Yes}</text> </text> <text style="text_m"> <condition var1="tw_partition_removable" var2="0"/> <placement x="%col1_x_right%" y="%row2a_y%"/> - <text>Removable: No</text> + <text>{@part_removable_no=Removable: No}</text> </text> <text style="text_m"> <placement x="%col1_x_left%" y="%row3a_y%"/> - <text>Size: %tw_partition_size%MB</text> + <text>{@part_size=Size: %tw_partition_size%MB}</text> </text> <text style="text_m"> <placement x="%col1_x_right%" y="%row3a_y%"/> - <text>Used: %tw_partition_used%MB</text> + <text>{@part_used=Used: %tw_partition_used%MB}</text> </text> <text style="text_m"> <placement x="%col1_x_left%" y="%row4a_y%"/> - <text>Free: %tw_partition_free%MB</text> + <text>{@part_free=Free: %tw_partition_free%MB}</text> </text> <text style="text_m"> <placement x="%col1_x_right%" y="%row4a_y%"/> - <text>Backup Size: %tw_partition_backup_size%MB</text> + <text>{@part_backup_size=Backup Size: %tw_partition_backup_size%MB}</text> </text> <button style="main_button"> <condition var1="tw_partition_can_resize" op="=" var2="1"/> <placement x="%col1_x_left%" y="%row6_y%"/> - <text>Resize</text> + <text>{@resize_btn_s=Resize}</text> <actions> <action function="set">tw_back=partitionoptions</action> <action function="set">tw_action=resize</action> <action function="set">tw_action_param=%tw_partition_mount_point%</action> <action function="set">tw_has_action2=1</action> <action function="set">tw_action2=getpartitiondetails</action> - <action function="set">tw_text1=Resize %tw_partition_name%?</action> + <action function="set">tw_text1={@resize_confirm=Resize %tw_partition_name%?}</action> <action function="set">tw_text2=</action> - <action function="set">tw_action_text1=Resizing...</action> - <action function="set">tw_complete_text1=Resize Complete</action> - <action function="set">tw_slider_text= Resize</action> + <action function="set">tw_action_text1={@resizing=Resizing...}</action> + <action function="set">tw_complete_text1={@resize_complete=Resize Complete}</action> + <action function="set">tw_slider_text={@swipe_resize_s= Resize}</action> <action function="page">confirm_action</action> </actions> </button> @@ -1577,17 +1560,17 @@ <button style="main_button"> <condition var1="tw_partition_can_repair" op="=" var2="1"/> <placement x="%col1_x_right%" y="%row6_y%"/> - <text>Repair</text> + <text>{@repair_btn_s=Repair}</text> <actions> <action function="set">tw_back=partitionoptions</action> <action function="set">tw_action=repair</action> <action function="set">tw_action_param=%tw_partition_mount_point%</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=Repair %tw_partition_name%?</action> + <action function="set">tw_text1={@repair_confirm=Repair %tw_partition_name%?}</action> <action function="set">tw_text2=</action> - <action function="set">tw_action_text1=Repairing...</action> - <action function="set">tw_complete_text1=Repair Complete</action> - <action function="set">tw_slider_text= Repair</action> + <action function="set">tw_action_text1={@repairing=Repairing...}</action> + <action function="set">tw_complete_text1={@repair_complete=Repair Complete}</action> + <action function="set">tw_slider_text={@swipe_repair_s= Repair}</action> <action function="page">confirm_action</action> </actions> </button> @@ -1601,7 +1584,7 @@ <button style="main_button"> <placement x="%col1_x_right%" y="%row11_y%"/> - <text>Change</text> + <text>{@change_fs_btn_s=Change}</text> <action function="page">selectfilesystem</action> </button> @@ -1643,7 +1626,7 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Partition: %tw_partition_name% > Select File System</text> + <text>{@change_fs_for_hdr_s=Partition: %tw_partition_name% > Select File System}</text> </text> <button style="main_button"> @@ -1656,13 +1639,13 @@ <action function="set">tw_action_param=%tw_partition_mount_point%</action> <action function="set">tw_action_new_file_system=ext2</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=Change %tw_partition_name% to EXT2?</action> - <action function="set">tw_text2=</action> - <action function="set">tw_text3=Not all file systems are supported</action> - <action function="set">tw_text4=by all kernels. Proceed with caution!</action> - <action function="set">tw_action_text1=Formatting...</action> - <action function="set">tw_complete_text1=Format Complete</action> - <action function="set">tw_slider_text= Change</action> + <action function="set">tw_text1={@change_fs_confirm=Change %tw_partition_name%?}</action> + <action function="set">tw_text2=EXT2</action> + <action function="set">tw_text3={@change_fs_warn1=Some ROMs or kernels may not support some}</action> + <action function="set">tw_text4={@change_fs_warn2=file systems. Proceed with caution!}</action> + <action function="set">tw_action_text1={@formatting=Formatting...}</action> + <action function="set">tw_complete_text1={@format_complete=Format Complete}</action> + <action function="set">tw_slider_text={@swipe_change_s= Change}</action> <action function="page">confirm_action</action> </actions> </button> @@ -1677,13 +1660,13 @@ <action function="set">tw_action_param=%tw_partition_mount_point%</action> <action function="set">tw_action_new_file_system=ext3</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=Change %tw_partition_name% to EXT3?</action> - <action function="set">tw_text2=</action> - <action function="set">tw_text3=Not all file systems are supported</action> - <action function="set">tw_text4=by all kernels. Proceed with caution!</action> - <action function="set">tw_action_text1=Formatting...</action> - <action function="set">tw_complete_text1=Format Complete</action> - <action function="set">tw_slider_text= Change</action> + <action function="set">tw_text1={@change_fs_confirm=Change %tw_partition_name%?}</action> + <action function="set">tw_text2=EXT3</action> + <action function="set">tw_text3={@change_fs_warn1=Some ROMs or kernels may not support some}</action> + <action function="set">tw_text4={@change_fs_warn2=file systems. Proceed with caution!}</action> + <action function="set">tw_action_text1={@formatting=Formatting...}</action> + <action function="set">tw_complete_text1={@format_complete=Format Complete}</action> + <action function="set">tw_slider_text={@swipe_change_s= Change}</action> <action function="page">confirm_action</action> </actions> </button> @@ -1698,13 +1681,13 @@ <action function="set">tw_action_param=%tw_partition_mount_point%</action> <action function="set">tw_action_new_file_system=ext4</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=Change %tw_partition_name% to EXT4?</action> - <action function="set">tw_text2=</action> - <action function="set">tw_text3=Not all file systems are supported by all kernels.</action> - <action function="set">tw_text4=Proceed with caution!</action> - <action function="set">tw_action_text1=Formatting...</action> - <action function="set">tw_complete_text1=Format Complete</action> - <action function="set">tw_slider_text= Change</action> + <action function="set">tw_text1={@change_fs_confirm=Change %tw_partition_name%?}</action> + <action function="set">tw_text2=EXT4</action> + <action function="set">tw_text3={@change_fs_warn1=Some ROMs or kernels may not support some}</action> + <action function="set">tw_text4={@change_fs_warn2=file systems. Proceed with caution!}</action> + <action function="set">tw_action_text1={@formatting=Formatting...}</action> + <action function="set">tw_complete_text1={@format_complete=Format Complete}</action> + <action function="set">tw_slider_text={@swipe_change_s= Change}</action> <action function="page">confirm_action</action> </actions> </button> @@ -1719,13 +1702,13 @@ <action function="set">tw_action_param=%tw_partition_mount_point%</action> <action function="set">tw_action_new_file_system=vfat</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=Change %tw_partition_name% to FAT?</action> - <action function="set">tw_text2=</action> - <action function="set">tw_text3=Not all file systems are supported</action> - <action function="set">tw_text4=by all kernels. Proceed with caution!</action> - <action function="set">tw_action_text1=Formatting...</action> - <action function="set">tw_complete_text1=Format Complete</action> - <action function="set">tw_slider_text= Change</action> + <action function="set">tw_text1={@change_fs_confirm=Change %tw_partition_name%?}</action> + <action function="set">tw_text2=FAT</action> + <action function="set">tw_text3={@change_fs_warn1=Some ROMs or kernels may not support some}</action> + <action function="set">tw_text4={@change_fs_warn2=file systems. Proceed with caution!}</action> + <action function="set">tw_action_text1={@formatting=Formatting...}</action> + <action function="set">tw_complete_text1={@format_complete=Format Complete}</action> + <action function="set">tw_slider_text={@swipe_change_s= Change}</action> <action function="page">confirm_action</action> </actions> </button> @@ -1740,13 +1723,13 @@ <action function="set">tw_action_param=%tw_partition_mount_point%</action> <action function="set">tw_action_new_file_system=exfat</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=Change %tw_partition_name% to exFAT?</action> - <action function="set">tw_text2=</action> - <action function="set">tw_text3=Not all file systems are supported</action> - <action function="set">tw_text4=by all kernels. Proceed with caution!</action> - <action function="set">tw_action_text1=Formatting...</action> - <action function="set">tw_complete_text1=Format Complete</action> - <action function="set">tw_slider_text= Change</action> + <action function="set">tw_text1={@change_fs_confirm=Change %tw_partition_name%?}</action> + <action function="set">tw_text2=exFAT</action> + <action function="set">tw_text3={@change_fs_warn1=Some ROMs or kernels may not support some}</action> + <action function="set">tw_text4={@change_fs_warn2=file systems. Proceed with caution!}</action> + <action function="set">tw_action_text1={@formatting=Formatting...}</action> + <action function="set">tw_complete_text1={@format_complete=Format Complete}</action> + <action function="set">tw_slider_text={@swipe_change_s= Change}</action> <action function="page">confirm_action</action> </actions> </button> @@ -1761,13 +1744,13 @@ <action function="set">tw_action_param=%tw_partition_mount_point%</action> <action function="set">tw_action_new_file_system=f2fs</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=Change %tw_partition_name% to F2FS?</action> - <action function="set">tw_text2=</action> - <action function="set">tw_text3=Not all file systems are supported</action> - <action function="set">tw_text4=by all kernels. Proceed with caution!</action> - <action function="set">tw_action_text1=Formatting...</action> - <action function="set">tw_complete_text1=Format Complete</action> - <action function="set">tw_slider_text= Change</action> + <action function="set">tw_text1={@change_fs_confirm=Change %tw_partition_name%?}</action> + <action function="set">tw_text2=F2FS</action> + <action function="set">tw_text3={@change_fs_warn1=Some ROMs or kernels may not support some}</action> + <action function="set">tw_text4={@change_fs_warn2=file systems. Proceed with caution!}</action> + <action function="set">tw_action_text1={@formatting=Formatting...}</action> + <action function="set">tw_complete_text1={@format_complete=Format Complete}</action> + <action function="set">tw_slider_text={@swipe_change_s= Change}</action> <action function="page">confirm_action</action> </actions> </button> @@ -1790,7 +1773,7 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Backup > Select Storage</text> + <text>{@backup_hdr=Backup} > {@select_storage_hdr=Select Storage}</text> </text> <partitionlist style="partitionlist_headerless_rb"> @@ -1849,7 +1832,7 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Backup > Select Partitions</text> + <text>{@backup_hdr=Backup} > {@sel_part_hdr=Select Partitions}</text> </text> <partitionlist style="partitionlist_headerless_cb"> @@ -1916,18 +1899,18 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Backup > Options</text> + <text>{@backup_hdr=Backup} > {@options_hdr=Options}</text> </text> <listbox style="scrolllist"> <placement x="%col1_x_left%" y="%row2_header_y%" w="%content_width%" h="%partitionlist_wipe_height%"/> - <listitem name="Enable compression"> + <listitem name="{@enable_backup_comp_chk=Enable compression}"> <data variable="tw_use_compression"/> </listitem> - <listitem name="Skip MD5 generation during backup"> + <listitem name="{@skip_md5_backup_chk=Skip MD5 generation during backup}"> <data variable="tw_skip_md5_generate"/> </listitem> - <listitem name="Disable Free Space Check"> + <listitem name="{@disable_backup_space_chk=Disable Free Space Check}"> <data variable="tw_disable_free_space"/> </listitem> </listbox> @@ -2002,12 +1985,12 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Backup > Confirm Backup</text> + <text>{@backup_hdr=Backup} > {@backup_confirm_hdr=Confirm Backup{</text> </text> <text style="text_m_accent"> <placement x="%col1_x_left%" y="%row1_y%"/> - <text>Name:</text> + <text>{@name=Name:}</text> </text> <text style="text_m"> @@ -2035,7 +2018,7 @@ <text style="text_m_accent"> <placement x="%col1_x_left%" y="%row3a_y%"/> - <text>Partitions:</text> + <text>{@partitions=Partitions:}</text> </text> <partitionlist style="partitionlist_summary"> @@ -2055,7 +2038,7 @@ <text style="text_m_accent"> <placement x="%col1_x_right%" y="%row1_y%"/> - <text>Storage:</text> + <text>{@storage=Storage:}</text> </text> <text style="text_m"> @@ -2074,7 +2057,7 @@ <text style="text_m_accent"> <placement x="%col1_x_right%" y="%row3a_y%"/> - <text>Encryption:</text> + <text>{@encryption=Encryption:}</text> </text> <text style="text_m"> @@ -2083,7 +2066,7 @@ <condition var1="tw_encrypt_backup" var2="0"/> </conditions> <placement x="%col1_x_right%" y="%row4a_y%"/> - <text>Disabled</text> + <text>{@disabled=Disabled}</text> </text> <text style="text_m"> @@ -2092,7 +2075,7 @@ <condition var1="tw_encrypt_backup" var2="1"/> </conditions> <placement x="%col1_x_right%" y="%row4a_y%"/> - <text>Enabled</text> + <text>{@enabled=Enabled}</text> </text> <button> @@ -2106,20 +2089,20 @@ <listbox style="listbox_options"> <placement x="%col1_x_right%" y="%row7_y%" w="%content_half_width%" h="80"/> - <listitem name="Enable Compression"> + <listitem name="{@enable_backup_comp_chk=Enable compression}"> <data variable="tw_use_compression"/> </listitem> - <listitem name="Skip MD5 generation"> + <listitem name="{@skip_md5_backup_chk=Skip MD5 generation during backup}"> <data variable="tw_skip_md5_generate"/> </listitem> - <listitem name="Skip Free Space Check"> + <listitem name="{@disable_backup_space_chk=Disable Free Space Check}"> <data variable="tw_disable_free_space"/> </listitem> </listbox> <text style="text_m_accent"> <placement x="%col1_x_right%" y="%row6_y%"/> - <text>Options:</text> + <text>{@options=Options:}</text> </text> <button> @@ -2132,7 +2115,7 @@ </button> <slider> - <text> Confirm</text> + <text>{@swipe_confirm= Confirm}</text> <action function="page">backup_run</action> </slider> @@ -2149,7 +2132,7 @@ <page name="backup_name1"> <action> - <condition var1="tw_backup_name" op="=" var2="(Auto Generate)"/> + <condition var1="tw_backup_name" op="=" var2="{@auto_generate=(Auto Generate)}"/> <action function="generatebackupname"/> </action> @@ -2165,12 +2148,12 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Backup > Set Backup Name</text> + <text>{@backup_hdr=Backup} > {@backup_name_hdr=Set Backup Name}</text> </text> <text style="text_m_accent"> <placement x="%col1_x_left%" y="%row1_y%"/> - <text>Name:</text> + <text>{@name=Name:}</text> </text> <input> @@ -2198,21 +2181,21 @@ <text style="text_m_fail"> <condition var1="tw_fileexists" var2="1"/> <placement x="%col1_x_left%" y="%row3_input_y%"/> - <text>A backup with that name already exists!</text> + <text>{@backup_name_exists=A backup with that name already exists!}</text> </text> <button style="main_button_half_height"> <placement x="%col1_x_left%" y="%row4_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <actions> - <action function="set">tw_backup_name=(Auto Generate)</action> + <action function="set">tw_backup_name={@auto_generate=(Auto Generate)}</action> <action function="page">backup_confirm</action> </actions> </button> <button style="main_button_half_height"> <placement x="%col1_x_right%" y="%row4_y%"/> - <text>Append Date</text> + <text>{@append_date_btn=Append Date}</text> <action function="appenddatetobackupname"/> </button> @@ -2221,7 +2204,7 @@ <action> <touch key="home"/> <actions> - <action function="set">tw_backup_name=(Auto Generate)</action> + <action function="set">tw_backup_name={@auto_generate=(Auto Generate)}</action> <action function="page">main</action> </actions> </action> @@ -2229,7 +2212,7 @@ <action> <touch key="back"/> <actions> - <action function="set">tw_backup_name=(Auto Generate)</action> + <action function="set">tw_backup_name={@auto_generate=(Auto Generate)}</action> <action function="page">backup_confirm</action> </actions> </action> @@ -2242,12 +2225,12 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Backup > Enable Encryption</text> + <text>{@backup_hdr=Backup} > {@encrypt_backup=Encrypt your Backup?}</text> </text> <text style="text_m_accent"> <placement x="%col1_x_left%" y="%row1_y%"/> - <text>Enter Password:</text> + <text>{@enter_pass=Enter Password:}</text> </text> <input> @@ -2270,12 +2253,12 @@ <text style="text_m_fail"> <condition var1="tw_password_not_match" var2="1"/> <placement x="%col1_x_left%" y="%row3_input_y%"/> - <text>Passwords do not match!</text> + <text>{@pass_not_match=Passwords do not match!}</text> </text> <button style="main_button_half_height"> <placement x="%col1_x_right%" y="%row4_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <actions> <action function="set">tw_encrypt_backup=0</action> <action function="set">tw_backup_password=</action> @@ -2306,12 +2289,12 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Backup > Enable Encryption</text> + <text>{@backup_hdr=Backup} > {@encrypt_backup=Encrypt your Backup?}</text> </text> <text style="text_m_accent"> <placement x="%col1_x_left%" y="%row1_y%"/> - <text>Enter Password again:</text> + <text>{@enter_pass2=Enter Password again:}</text> </text> <input> @@ -2328,7 +2311,7 @@ <button style="main_button_half_height"> <placement x="%col1_x_right%" y="%row4_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <actions> <action function="set">tw_encrypt_backup=0</action> <action function="set">tw_backup_password=</action> @@ -2401,7 +2384,7 @@ <button style="main_button_half_height"> <placement x="%col1_x_right%" y="%row13_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <action function="cancelbackup"/> </button> @@ -2414,7 +2397,7 @@ <condition var1="tw_cancel_backup" var2="0"/> <actions> <action function="set">tw_back=backup_selectpartitions</action> - <action function="set">tw_complete_text1=Backup Complete</action> + <action function="set">tw_complete_text1={@backup_complete=Backup Complete}</action> <action function="set">tw_show_reboot=1</action> <action function="page">action_complete</action> </actions> @@ -2425,7 +2408,7 @@ <condition var1="tw_cancel_backup" var2="1"/> <actions> <action function="set">tw_back=backup_selectpartitions</action> - <action function="set">tw_complete_text1=Backup Cancelled</action> + <action function="set">tw_complete_text1={@backup_cancel=Backup Cancelled}</action> <action function="set">tw_show_reboot=1</action> <action function="page">action_complete</action> </actions> @@ -2439,7 +2422,7 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Restore > Select Backup</text> + <text>{@restore_hdr=Restore} > {@sel_backup_hdr=Select Backup}</text> </text> <fileselector> @@ -2456,7 +2439,7 @@ <highlight color="%highlight_color%"/> <image resource="q_btn_storage"/> <actions> - <action function="set">tw_storagetext=Restore > Select Storage</action> + <action function="set">tw_storagetext={@restore_btn=Restore} > {@select_storage_btn=Select Storage}</action> <action function="set">tw_back=restore</action> <action function="page">select_storage</action> </actions> @@ -2506,12 +2489,12 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Restore > Encrypted Backup</text> + <text>{@restore_hdr=Restore} > {@restore_enc_backup_hdr=Encrypted Backup}</text> </text> <text style="text_m_accent"> <placement x="%col1_x_left%" y="%row1_y%"/> - <text>Enter Password:</text> + <text>{@enter_pass=Enter Password:}</text> </text> <input> @@ -2534,12 +2517,12 @@ <text style="text_m_fail"> <condition var1="tw_password_fail" var2="1"/> <placement x="%col1_x_left%" y="%row3_input_y%"/> - <text>Password failed, please try again!</text> + <text>{@restore_dec_fail=Password failed, please try again!}</text> </text> <button style="main_button_half_height"> <placement x="%col1_x_left%" y="%row4_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <actions> <action function="set">tw_page_done=1</action> <action function="page">restore</action> @@ -2548,16 +2531,17 @@ <button style="main_button_half_height"> <placement x="%col1_x_right%" y="%row4_y%"/> - <text>Delete Backup</text> + <text>{@del_backup_btn=Delete Backup}</text> <actions> <action function="set">tw_back=restore</action> <action function="set">tw_action=cmd</action> <action function="set">tw_action_param=cd %tw_backups_folder% && rm -rf "%tw_restore_name%"</action> - <action function="set">tw_text1=Delete Backup? %tw_restore_name%</action> - <action function="set">tw_text2=This cannot be undone!</action> - <action function="set">tw_action_text1=Deleting Backup...</action> - <action function="set">tw_complete_text1=Backup Delete Complete</action> - <action function="set">tw_slider_text=Delete</action> + <action function="set">tw_text1={@del_backup_confirm=Delete Backup?}</action> + <action function="set">tw_text2=%tw_restore_name%</action> + <action function="set">tw_text4={@del_backup_confirm2=This cannot be undone!}</action> + <action function="set">tw_action_text1={@deleting_backup=Deleting Backup...}</action> + <action function="set">tw_complete_text1={@backup_deleted=Backup Delete Complete}</action> + <action function="set">tw_slider_text={@swipe_delete_s= Delete}</action> <action function="page">confirm_action</action> </actions> </button> @@ -2582,7 +2566,7 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Restore > Trying Decryption</text> + <text>{@restore_hdr=Restore} > {@restore_try_decrypt_s=Trying Decryption}</text> </text> <template name="console"/> @@ -2623,7 +2607,7 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Restore > Select Partitions</text> + <text>{@restore_hdr=Restore} > {@sel_part_hdr=Select Partitions}</text> </text> <partitionlist style="partitionlist_headerless_cb"> @@ -2651,12 +2635,12 @@ <action function="set">tw_back=restore</action> <action function="set">tw_action=cmd</action> <action function="set">tw_action_param=cd %tw_backups_folder% && rm -rf "%tw_restore_name%"</action> - <action function="set">tw_text1=Delete Backup?</action> + <action function="set">tw_text1={@del_backup_confirm=Delete Backup?}</action> <action function="set">tw_text2=%tw_restore_name%</action> - <action function="set">tw_text4=This cannot be undone!</action> - <action function="set">tw_action_text1=Deleting Backup...</action> - <action function="set">tw_complete_text1=Backup Delete Complete</action> - <action function="set">tw_slider_text= Delete</action> + <action function="set">tw_text4={@del_backup_confirm2=This cannot be undone!}</action> + <action function="set">tw_action_text1={@deleting_backup=Deleting Backup...}</action> + <action function="set">tw_complete_text1={@backup_deleted=Backup Delete Complete}</action> + <action function="set">tw_slider_text={@swipe_delete_s= Delete}</action> <action function="page">confirm_action</action> </actions> </button> @@ -2696,12 +2680,12 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Restore > Options</text> + <text>{@restore_hdr=Restore} > {@options_hdr=Options}</text> </text> <listbox style="scrolllist"> <placement x="%col1_x_left%" y="%row2_header_y%" w="%content_width%" h="%partitionlist_wipe_height%"/> - <listitem name="Enable MD5 verification of backup files"> + <listitem name="{@retore_enable_md5_chk=Enable MD5 Verification of Backup Files}"> <data variable="tw_skip_md5_check"/> </listitem> </listbox> @@ -2746,12 +2730,12 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Restore > Rename Backup</text> + <text>{@restore_hdr=Restore} > {@rename_backup_hdr=Rename Backup}</text> </text> <text style="text_m_accent"> <placement x="%col1_x_left%" y="%row1_y%"/> - <text>Name:</text> + <text>{@name=Name:}</text> </text> <input> @@ -2763,11 +2747,11 @@ <action function="set">tw_back=restore</action> <action function="set">tw_action=cmd</action> <action function="set">tw_action_param=cd %tw_backups_folder% && mv "%tw_restore_name%" "%tw_backup_rename%"</action> - <action function="set">tw_text1=Rename Backup?</action> - <action function="set">tw_text2=This cannot be undone!</action> - <action function="set">tw_action_text1=Renaming Backup...</action> - <action function="set">tw_complete_text1=Backup Rename Complete</action> - <action function="set">tw_slider_text=Rename</action> + <action function="set">tw_text1={@rename_backup_confirm=Rename Backup?}</action> + <action function="set">tw_text2={@rename_backup_confirm2=This cannot be undone!}</action> + <action function="set">tw_action_text1={@renaming_backup=Renaming Backup...}</action> + <action function="set">tw_complete_text1={@rename_backup_complete=Backup Rename Complete}</action> + <action function="set">tw_slider_text={@swipe_rename= Rename}</action> <action function="set">tw_filecheck=%tw_backups_folder%/%tw_backup_rename%</action> <action function="set">tw_existpage=renamebackup</action> <action function="set">tw_notexistpage=confirm_action</action> @@ -2787,12 +2771,12 @@ <text style="text_m_fail"> <condition var1="tw_fileexists" var2="1"/> <placement x="%col1_x_left%" y="%row3_input_y%"/> - <text>A backup with that name already exists!</text> + <text>{@backup_name_exists=A backup with that name already exists!}</text> </text> <button style="main_button_half_height"> <placement x="%col1_x_left%" y="%row4_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <action function="page">restore_confirm</action> </button> @@ -2816,12 +2800,12 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Restore > Confirm</text> + <text>{@restore_hdr=Restore} > {@confirm_hdr=Confirm}</text> </text> <text style="text_m_accent"> <placement x="%indent%" y="%row1_y%"/> - <text>Name:</text> + <text>{@name=Name:}</text> </text> <text style="text_m"> @@ -2846,7 +2830,7 @@ <text style="text_m_accent"> <placement x="%indent%" y="%row3a_y%"/> - <text>Partitions:</text> + <text>{@partitions=Partitions:}</text> </text> <partitionlist style="partitionlist_summary"> @@ -2866,14 +2850,14 @@ <listbox style="listbox_options"> <placement x="%col1_x_right%" y="%row4a_y%" w="%content_half_width%" h="80"/> - <listitem name="MD5 verification"> + <listitem name="{@retore_enable_md5_chk=Enable MD5 Verification of Backup Files}"> <data variable="tw_skip_md5_check"/> </listitem> </listbox> <text style="text_m_accent"> <placement x="%col1_x_right%" y="%row3a_y%"/> - <text>Options:</text> + <text>{@options=Options:}</text> </text> <button> @@ -2886,7 +2870,7 @@ </button> <slider> - <text> Restore</text> + <text>{@swipe_restore_s= Restore}</text> <action function="page">restore_run</action> </slider> @@ -2924,7 +2908,7 @@ <condition var1="tw_operation_state" var2="1"/> <actions> <action function="set">tw_back=restore</action> - <action function="set">tw_complete_text1=Restore Complete</action> + <action function="set">tw_complete_text1={@restore_complete=Restore Complete}</action> <action function="set">tw_show_reboot=1</action> <action function="page">action_complete</action> </actions> @@ -2942,7 +2926,7 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Mount > %tw_storage_display_name%</text> + <text>{@mount_hdr=Mount} > %tw_storage_display_name%</text> </text> <partitionlist style="partitionlist_headerless_cb"> @@ -2957,7 +2941,7 @@ <button style="checkbox"> <condition var1="tw_mount_system_ro" op="=" var2="0"/> <placement x="%col1_x_left%" y="%row11_y%" textplacement="6"/> - <text>Mount System RO</text> + <text>{@mount_sys_ro_s_chk=Mount System RO}</text> <image resource="checkbox_false"/> <action function="mountsystemtoggle">1</action> </button> @@ -2965,7 +2949,7 @@ <button style="checkbox"> <condition var1="tw_mount_system_ro" op="!=" var2="0"/> <placement x="%col1_x_left%" y="%row11_y%" textplacement="6"/> - <text>Mount System RO</text> + <text>{@mount_sys_ro_s_chk=Mount System RO}</text> <image resource="checkbox_true"/> <actions> <action function="set">tw_lifetime_writes=2</action> @@ -2980,7 +2964,7 @@ </conditions> <placement x="%col1_x_left%" y="%row13_y%" textplacement="6"/> <image resource="checkbox_false"/> - <text>Enable MTP</text> + <text>{@enable_mtp_btn=Enable MTP}</text> <action function="startmtp"/> </button> @@ -2991,7 +2975,7 @@ </conditions> <placement x="%col1_x_left%" y="%row13_y%" textplacement="6"/> <image resource="checkbox_true"/> - <text>Enable MTP</text> + <text>{@disable_mtp_btn=Disable MTP}</text> <action function="stopmtp"/> </button> @@ -3000,7 +2984,7 @@ <highlight color="%highlight_color%"/> <image resource="q_btn_storage"/> <actions> - <action function="set">tw_storagetext=Mount > Select Storage</action> + <action function="set">tw_storagetext={@mount_hdr=Mount} > {@select_storage_hdr=Select Storage}</action> <action function="set">tw_back=mount</action> <action function="page">select_storage</action> </actions> @@ -3031,13 +3015,13 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Mount > %tw_storage_display_name%</text> + <text>{@mount_hdr=Mount} > %tw_storage_display_name%</text> </text> <button style="main_button_full_width"> <condition var1="tw_has_usb_storage" var2="1"/> <placement x="%col1_x_left%" y="%row1_y%"/> - <text>Mount USB Storage</text> + <text>{@mount_usb_storage_btn=Mount USB Storage}</text> <action function="page">usb_mount</action> </button> @@ -3047,7 +3031,7 @@ <condition var1="tw_is_decrypted" var2="0"/> </conditions> <placement x="%col1_x_left%" y="%row6_y%"/> - <text>Decrypt Data</text> + <text>{@decrypt_data_btn=Decrypt Data}</text> <action function="page">decrypt</action> </button> @@ -3076,27 +3060,27 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Mount > USB Storage</text> + <text>{@mount_hdr=Mount} > {usb_storage_hdr=USB Storage}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row1_y%" placement="5"/> - <text>Device mounted as USB Storage</text> + <text>{@usb_stor_mnt1=USB Storage Mounted}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row3_y%" placement="5"/> - <text>Be sure to safely remove your device</text> + <text>{@usb_stor_mnt2=Be sure to safely remove your device}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row4_y%" placement="5"/> - <text>from your computer before unmounting!</text> + <text>{@usb_stor_mnt3=from your computer before unmounting!}</text> </text> <button style="main_button"> <placement x="%btn4_col2_x%" y="%row11_y%"/> - <text>Unmount</text> + <text>{@unmount_btn=Unmount}</text> <action function="page">usb_umount</action> </button> @@ -3146,23 +3130,23 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Reboot Menu</text> + <text>{@reboot_hdr=Reboot Menu}</text> </text> <button style="main_button"> <condition var1="tw_reboot_system" var2="1"/> <placement x="%col1_x_left%" y="%row1_y%"/> - <text>System</text> + <text>{@rb_system_btn=System}</text> <actions> <action function="set">tw_back=reboot</action> <action function="set">tw_action=reboot</action> <action function="set">tw_action_param=system</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=No OS Installed! Are you</action> - <action function="set">tw_text2=sure you wish to reboot?</action> - <action function="set">tw_action_text1=Rebooting...</action> - <action function="set">tw_complete_text1=Rebooting...</action> - <action function="set">tw_slider_text=Reboot</action> + <action function="set">tw_text1={@no_os1=No OS Installed! Are you}</action> + <action function="set">tw_text2={@no_osrb=sure you wish to reboot?}</action> + <action function="set">tw_action_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_complete_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_slider_text={@swipe_reboot_s= Reboot}</action> <action function="page">rebootcheck</action> </actions> </button> @@ -3170,17 +3154,17 @@ <button style="main_button"> <condition var1="tw_reboot_poweroff" var2="1"/> <placement x="%col1_x_right%" y="%row1_y%"/> - <text>Power Off</text> + <text>{@rb_poweroff_btn=Power Off}</text> <actions> <action function="set">tw_back=reboot</action> <action function="set">tw_action=reboot</action> <action function="set">tw_action_param=poweroff</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=No OS Installed! Are you</action> - <action function="set">tw_text2=sure you wish to power off?</action> - <action function="set">tw_action_text1=Turning Off...</action> - <action function="set">tw_complete_text1=Turning Off...</action> - <action function="set">tw_slider_text=Power Off</action> + <action function="set">tw_text1={@no_os1=No OS Installed! Are you}</action> + <action function="set">tw_text2={@no_ospo=sure you wish to power off?}</action> + <action function="set">tw_action_text1={@turning_off=Turning Off...}</action> + <action function="set">tw_complete_text1={@turning_off=Turning Off...}</action> + <action function="set">tw_slider_text={@swipe_power_off_s=Power Off}</action> <action function="page">rebootcheck</action> </actions> </button> @@ -3188,17 +3172,17 @@ <button style="main_button"> <condition var1="tw_reboot_recovery" var2="1"/> <placement x="%col1_x_left%" y="%row6_y%"/> - <text>Recovery</text> + <text>{@rb_recovery_btn=Recovery}</text> <actions> <action function="set">tw_back=reboot</action> <action function="set">tw_action=reboot</action> <action function="set">tw_action_param=recovery</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=No OS Installed! Are you</action> - <action function="set">tw_text2=sure you wish to reboot?</action> - <action function="set">tw_action_text1=Rebooting...</action> - <action function="set">tw_complete_text1=Rebooting...</action> - <action function="set">tw_slider_text=Reboot</action> + <action function="set">tw_text1={@no_os1=No OS Installed! Are you}</action> + <action function="set">tw_text2={@no_osrb=sure you wish to reboot?}</action> + <action function="set">tw_action_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_complete_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_slider_text={@swipe_reboot_s= Reboot}</action> <action function="page">rebootcheck</action> </actions> </button> @@ -3206,17 +3190,17 @@ <button style="main_button"> <condition var1="tw_reboot_bootloader" var2="1"/> <placement x="%col1_x_right%" y="%row6_y%"/> - <text>Bootloader</text> + <text>{@rb_bootloader_btn=Bootloader}</text> <actions> <action function="set">tw_back=reboot</action> <action function="set">tw_action=reboot</action> <action function="set">tw_action_param=bootloader</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=No OS Installed! Are you</action> - <action function="set">tw_text2=sure you wish to reboot?</action> - <action function="set">tw_action_text1=Rebooting...</action> - <action function="set">tw_complete_text1=Rebooting...</action> - <action function="set">tw_slider_text=Reboot</action> + <action function="set">tw_text1={@no_os1=No OS Installed! Are you}</action> + <action function="set">tw_text2={@no_osrb=sure you wish to reboot?}</action> + <action function="set">tw_action_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_complete_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_slider_text={@swipe_reboot_s= Reboot}</action> <action function="page">rebootcheck</action> </actions> </button> @@ -3224,17 +3208,17 @@ <button style="main_button"> <condition var1="tw_download_mode" var2="1"/> <placement x="%col1_x_left%" y="%row11_y%"/> - <text>Download</text> + <text>{@rb_download_btn=Download}</text> <actions> <action function="set">tw_back=reboot</action> <action function="set">tw_action=reboot</action> <action function="set">tw_action_param=download</action> <action function="set">tw_has_action2=0</action> - <action function="set">tw_text1=No OS Installed! Are you</action> - <action function="set">tw_text2=sure you wish to reboot?</action> - <action function="set">tw_action_text1=Rebooting...</action> - <action function="set">tw_complete_text1=Rebooting...</action> - <action function="set">tw_slider_text=Reboot</action> + <action function="set">tw_text1={@no_os1=No OS Installed! Are you}</action> + <action function="set">tw_text2={@no_osrb=sure you wish to reboot?}</action> + <action function="set">tw_action_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_complete_text1={@rebooting=Rebooting...}</action> + <action function="set">tw_slider_text={@swipe_reboot_s= Reboot}</action> <action function="page">rebootcheck</action> </actions> </button> @@ -3257,54 +3241,54 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Unmodified System Partition</text> + <text>{@sys_ro_hdr=Unmodified System Partition}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row1_y%" placement="5"/> - <text>TWRP has detected an unmodified system partition</text> + <text>{@sys_ro_keep=Keep System Read only?}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>TWRP can leave your system partition unmodified</text> + <text>{@sys_rop1=TWRP can leave your system partition unmodified}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row3_y%" placement="5"/> - <text>to make it easier for you to take official updates.</text> + <text>{@sys_rop2=to make it easier for you to take official updates.}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row4_y%" placement="5"/> - <text>TWRP will be unable to prevent the stock ROM from</text> + <text>{@sys_rop3=TWRP will be unable to prevent the stock ROM from}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row5_y%" placement="5"/> - <text>replacing TWRP and will not offer to root your device.</text> + <text>{@sys_rop4=replacing TWRP and will not offer to root your device.}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row7_y%" placement="5"/> - <text>Installing zips or performing adb operations may still</text> + <text>{@sys_rop5=Installing zips or performing adb operations may still}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row8_y%" placement="5"/> - <text>modify the system partition.</text> + <text>{@sys_rop6=modify the system partition.}</text> </text> <checkbox> <condition var1="tw_is_encrypted" var2="0"/> <placement x="%indent%" y="%row10_y%"/> - <text>Never show this screen during boot again</text> + <text>{@sys_ro_never_show_chk=Never show this screen during boot again}</text> <data variable="tw_never_show_system_ro_page"/> </checkbox> <button style="main_button_half_height"> <placement x="%col1_x_left%" y="%row13_y%"/> - <text>Keep Read Only</text> + <text>{@sys_ro_keep_ro_btn=Keep Read Only}</text> <actions> <action function="mountsystemtoggle">1</action> <action function="set">tw_page_done=1</action> @@ -3314,7 +3298,7 @@ <button style="main_button_half_height"> <placement x="%col1_x_right%" y="%row13_y%"/> - <text>Allow Modifications</text> + <text>{@swipe_allow_mod_s=Allow Modifications}</text> <actions> <action function="mountsystemtoggle">0</action> <action function="set">tw_page_done=1</action> @@ -3330,36 +3314,36 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Settings</text> + <text>{@settings_hdr=Settings}</text> </text> <button style="main_button"> <placement x="%col1_x_left%" y="%row1_y%"/> - <text>General</text> + <text>{@settings_gen_btn=General}</text> <action function="page">settings_general</action> </button> <button style="main_button"> <placement x="%col1_x_right%" y="%row1_y%"/> - <text>Time Zone</text> + <text>{@settings_tz_btn=Time Zone}</text> <action function="page">settings_timezone</action> </button> <button style="main_button"> <placement x="%col1_x_left%" y="%row6_y%"/> - <text>Screen</text> + <text>{@settings_screen_btn=Screen}</text> <action function="page">settings_screen</action> </button> <button style="main_button"> <placement x="%col1_x_right%" y="%row6_y%"/> - <text>Vibration</text> + <text>{@settings_vibration_btn=Vibration}</text> <action function="page">settings_vibration</action> </button> <button style="main_button"> <placement x="%col1_x_left%" y="%row11_y%"/> - <text>Language</text> + <text>{@settings_language_btn=Language}</text> <action function="page">settings_language</action> </button> @@ -3388,30 +3372,30 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Settings > General</text> + <text>{@settings_hdr=Settings} > {@settings_gen_s_hdr=General}</text> </text> <listbox style="scrolllist"> <placement x="%col1_x_left%" y="%row2_header_y%" w="%content_width%" h="%listbox_settings_height%"/> - <listitem name="Zip file signature verification"> + <listitem name="{@zip_sig_chk=Zip signature verification}"> <data variable="tw_signed_zip_verify"/> </listitem> - <listitem name="Use rm -rf instead of formatting"> + <listitem name="{@use_rmrf_chk=Use rm -rf instead of formatting}"> <data variable="tw_rm_rf"/> </listitem> - <listitem name="Skip MD5 generation during backup"> + <listitem name="{@skip_md5_backup_chk=Skip MD5 generation during backup}"> <data variable="tw_skip_md5_generate"/> </listitem> - <listitem name="Enable MD5 verification of backup files"> + <listitem name="{@retore_enable_md5_chk=Enable MD5 verification of backup files}"> <data variable="tw_skip_md5_check"/> </listitem> - <listitem name="Use 24-hour clock"> + <listitem name="{@use24clock_chk=Use 24-hour clock}"> <data variable="tw_military_time"/> </listitem> - <listitem name="Simulate actions for theme testing"> + <listitem name="{@simact_chk=Simulate actions for theme testing}"> <data variable="tw_simulate_actions"/> </listitem> - <listitem name="Simulate failure for actions"> + <listitem name="{@simfail_chk=Simulate failure for actions}"> <data variable="tw_simulate_fail"/> <condition var1="tw_simulate_actions" var2="1"/> </listitem> @@ -3435,7 +3419,7 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Settings > Time Zone</text> + <text>{@settings_hdr=Settings} > {@time_zone_hdr=Time Zone}</text> </text> <text color="%text_color%"> @@ -3447,30 +3431,30 @@ <listbox style="listbox_headerless"> <placement x="%col1_x_left%" y="%row2_header_y%" w="%content_width%" h="%listbox_timezone_height%"/> <data name="tw_time_zone_guisel"/> - <listitem name="(UTC -11) Samoa, Midway Island">BST11;BDT</listitem> - <listitem name="(UTC -10) Hawaii">HST10;HDT</listitem> - <listitem name="(UTC -9) Alaska">AST9;ADT</listitem> - <listitem name="(UTC -8) Pacific Time">PST8;PDT,M3.2.0,M11.1.0</listitem> - <listitem name="(UTC -7) Mountain Time">MST7;MDT,M3.2.0,M11.1.0</listitem> - <listitem name="(UTC -6) Central Time">CST6;CDT,M3.2.0,M11.1.0</listitem> - <listitem name="(UTC -5) Eastern Time">EST5;EDT,M3.2.0,M11.1.0</listitem> - <listitem name="(UTC -4) Atlantic Time">AST4;ADT</listitem> - <listitem name="(UTC -3) Brazil, Buenos Aires">GRNLNDST3;GRNLNDDT</listitem> - <listitem name="(UTC -2) Mid-Atlantic">FALKST2;FALKDT</listitem> - <listitem name="(UTC -1) Azores, Cape Verde">AZOREST1;AZOREDT</listitem> - <listitem name="(UTC 0) London, Dublin, Lisbon">GMT0;BST,M3.5.0,M10.5.0</listitem> - <listitem name="(UTC +1) Berlin, Brussels, Paris">CET-1;CEST,M3.5.0,M10.5.0</listitem> - <listitem name="(UTC +2) Athens, Istanbul, South Africa">WET-2;WET,M3.5.0,M10.5.0</listitem> - <listitem name="(UTC +3) Moscow, Baghdad">SAUST-3;SAUDT</listitem> - <listitem name="(UTC +4) Abu Dhabi, Tbilisi, Muscat">WST-4;WDT</listitem> - <listitem name="(UTC +5) Yekaterinburg, Islamabad">PAKST-5;PAKDT</listitem> - <listitem name="(UTC +6) Almaty, Dhaka, Colombo">TASHST-6;TASHDT</listitem> - <listitem name="(UTC +7) Bangkok, Hanoi, Jakarta">THAIST-7;THAIDT</listitem> - <listitem name="(UTC +8) Beijing, Singapore, Hong Kong">TAIST-8;TAIDT</listitem> - <listitem name="(UTC +9) Tokyo, Seoul, Yakutsk">JST-9;JSTDT</listitem> - <listitem name="(UTC +10) Eastern Australia, Guam">EET-10;EETDT</listitem> - <listitem name="(UTC +11) Vladivostok, Solomon Islands">MET-11;METDT</listitem> - <listitem name="(UTC +12) Auckland, Wellington, Fiji">NZST-12;NZDT</listitem> + <listitem name="{@utcm11=(UTC -11) Samoa, Midway Island}">BST11;BDT</listitem> + <listitem name="{@utcm10=(UTC -10) Hawaii}">HST10;HDT</listitem> + <listitem name="{@utcm9=(UTC -9) Alaska}">AST9;ADT</listitem> + <listitem name="{@utcm8=(UTC -8) Pacific Time}">PST8;PDT,M3.2.0,M11.1.0</listitem> + <listitem name="{@utcm7=(UTC -7) Mountain Time}">MST7;MDT,M3.2.0,M11.1.0</listitem> + <listitem name="{@utcm6=(UTC -6) Central Time}">CST6;CDT,M3.2.0,M11.1.0</listitem> + <listitem name="{@utcm5=(UTC -5) Eastern Time}">EST5;EDT,M3.2.0,M11.1.0</listitem> + <listitem name="{@utcm4=(UTC -4) Atlantic Time}">AST4;ADT</listitem> + <listitem name="{@utcm3=(UTC -3) Brazil, Buenos Aires}">GRNLNDST3;GRNLNDDT</listitem> + <listitem name="{@utcm2=(UTC -2) Mid-Atlantic}">FALKST2;FALKDT</listitem> + <listitem name="{@utcm1=(UTC -1) Azores, Cape Verde}">AZOREST1;AZOREDT</listitem> + <listitem name="{@utc0=(UTC 0) London, Dublin, Lisbon}">GMT0;BST,M3.5.0,M10.5.0</listitem> + <listitem name="{@utcp1=(UTC +1) Berlin, Brussels, Paris}">CET-1;CEST,M3.5.0,M10.5.0</listitem> + <listitem name="{@utcp2=(UTC +2) Athens, Istanbul, South Africa}">WET-2;WET,M3.5.0,M10.5.0</listitem> + <listitem name="{@utcp3=(UTC +3) Moscow, Baghdad}">SAUST-3;SAUDT</listitem> + <listitem name="{@utcp4=(UTC +4) Abu Dhabi, Tbilisi, Muscat}">WST-4;WDT</listitem> + <listitem name="{@utcp5=(UTC +5) Yekaterinburg, Islamabad}">PAKST-5;PAKDT</listitem> + <listitem name="{@utcp6=(UTC +6) Almaty, Dhaka, Colombo}">TASHST-6;TASHDT</listitem> + <listitem name="{@utcp7=(UTC +7) Bangkok, Hanoi, Jakarta}">THAIST-7;THAIDT</listitem> + <listitem name="{@utcp8=(UTC +8) Beijing, Singapore, Hong Kong}">TAIST-8;TAIDT</listitem> + <listitem name="{@utcp9=(UTC +9) Tokyo, Seoul, Yakutsk}">JST-9;JSTDT</listitem> + <listitem name="{@utcp10=(UTC +10) Eastern Australia, Guam}">EET-10;EETDT</listitem> + <listitem name="{@utcp11=(UTC +11) Vladivostok, Solomon Islands}">MET-11;METDT</listitem> + <listitem name="{@utcp12=(UTC +12) Auckland, Wellington, Fiji}">NZST-12;NZDT</listitem> </listbox> <button> @@ -3517,7 +3501,7 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Settings > Time Zone</text> + <text>{@settings_hdr=Settings} > {@time_zone_hdr=Time Zone}</text> </text> <text color="%text_color%"> @@ -3529,19 +3513,19 @@ <checkbox> <placement x="%col1_x_left%" y="%row1_y%"/> <font resource="font_m" color="%text_color%"/> - <text>Use daylight savings time (DST)</text> + <text>{@use_dst_chk=Use daylight savings time (DST)}</text> <data variable="tw_time_zone_guidst"/> <image checked="checkbox_true" unchecked="checkbox_false"/> </checkbox> <text style="text_m_accent"> <placement x="%col1_x_left%" y="%row4_y%"/> - <text>Select Offset (usually 0): %tw_time_zone_guioffset%</text> + <text>{@sel_tz_offset=Select Offset (usually 0): %tw_time_zone_guioffset%}</text> </text> <button style="main_button_quarter_width"> <placement x="%col1_x_left%" y="%row6_y%"/> - <text>0</text> + <text>{@tz_offset_0=0}</text> <actions> <action function="set">tw_time_zone_guioffset=0</action> <action function="setguitimezone"/> @@ -3550,7 +3534,7 @@ <button style="main_button_quarter_width"> <placement x="%btn4_col2_x%" y="%row6_y%"/> - <text>15</text> + <text>{@tz_offset_15=15}</text> <actions> <action function="set">tw_time_zone_guioffset=15</action> <action function="setguitimezone"/> @@ -3559,7 +3543,7 @@ <button style="main_button_quarter_width"> <placement x="%btn4_col3_x%" y="%row6_y%"/> - <text>30</text> + <text>{@tz_offset_30=30}</text> <actions> <action function="set">tw_time_zone_guioffset=30</action> <action function="setguitimezone"/> @@ -3568,7 +3552,7 @@ <button style="main_button_quarter_width"> <placement x="%btn4_col4_x%" y="%row6_y%"/> - <text>45</text> + <text>{@tz_offset_45=45}</text> <actions> <action function="set">tw_time_zone_guioffset=45</action> <action function="setguitimezone"/> @@ -3587,7 +3571,7 @@ <text style="text_m_accent"> <placement x="%btn4_col2_x%" y="%row11_y%"/> - <text>Current Time Zone:</text> + <text>{@curr_tz_s=Current Time Zone:}</text> </text> <text style="text_m"> @@ -3624,14 +3608,14 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Settings > Screen Timeout</text> + <text>{@settings_hdr=Settings} > {@settings_screen_timeout_hdr=Screen Timeout}</text> </text> <button style="checkbox"> <condition var1="tw_screen_timeout_secs" op="=" var2="0"/> <condition var1="tw_no_screen_timeout" op="!=" var2="1"/> <placement x="%indent%" y="%row1_y%" textplacement="6"/> - <text>Enable screen timeout</text> + <text>{@enable_timeout_chk=Enable screen timeout}</text> <image resource="checkbox_false"/> <action function="set">tw_screen_timeout_secs=60</action> </button> @@ -3640,7 +3624,7 @@ <condition var1="tw_screen_timeout_secs" op="!=" var2="0"/> <condition var1="tw_no_screen_timeout" op="!=" var2="1"/> <placement x="%indent%" y="%row1_y%" textplacement="6"/> - <text>Enable screen timeout</text> + <text>{@enable_timeout_chk=Enable screen timeout}</text> <image resource="checkbox_true"/> <action function="set">tw_screen_timeout_secs=0</action> </button> @@ -3648,14 +3632,14 @@ <slidervalue> <condition var1="tw_no_screen_timeout" op="!=" var2="1"/> <placement x="col1_x_left" y="%row2a_y%" w="%content_width%"/> - <text>Screen timeout in seconds (0=disabled): %tw_screen_timeout_secs%</text> + <text>{@screen_to_slider_s=Screen timeout in seconds (0=disabled): %tw_screen_timeout_secs%}</text> <data variable="tw_screen_timeout_secs" min="15" max="300"/> </slidervalue> <text style="text_m_fail"> <condition var1="tw_no_screen_timeout" op="=" var2="1"/> <placement x="%center_x%" y="%row1_y%" placement="5"/> - <text>Screen timeout setting unavailable</text> + <text>{@screen_to_na=Screen timeout setting unavailable}</text> </text> <button> @@ -3683,13 +3667,13 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Settings > Screen Brightness</text> + <text>{@settings_hdr=Settings} > {@settings_screen_bright_btn=Screen Brightness}</text> </text> <slidervalue> <condition var1="tw_has_brightnesss_file" var2="1"/> <placement x="col1_x_left" y="%row1_y%" w="%content_width%"/> - <text>Brightness: %tw_brightness_pct%%</text> + <text>{@screen_bright_slider=Brightness: %tw_brightness_pct%%}</text> <data variable="tw_brightness_pct" min="10" max="100"/> <actions> <action function="set">tw_brightness=%tw_brightness_max%</action> @@ -3702,7 +3686,7 @@ <text style="text_m_fail"> <condition var1="tw_has_brightnesss_file" var2="0"/> <placement x="%center_x%" y="%row1_y%" placement="5"/> - <text>Brightness setting unavailable</text> + <text>{@screen_bright_na=Brightness setting unavailable}</text> </text> <button> @@ -3730,12 +3714,12 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Settings > Vibration - Button Vibration</text> + <text>{@settings_hdr=Settings} > {@vibration_hdr=Vibration} - {@button_vibration_hdr=Button Vibration}</text> </text> <slidervalue> <placement x="col1_x_left" y="%row1_y%" w="%content_width%"/> - <text>Button Vibration:</text> + <text>{@button_vibration=Button Vibration:}</text> <data variable="tw_button_vibrate" min="0" max="300"/> </slidervalue> @@ -3764,12 +3748,12 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Settings > Vibration - Keyboard Vibration</text> + <text>{@settings_hdr=Settings} > {@vibration_hdr=Vibration} - {@kb_vibration_hdr=Keyboard Vibration}</text> </text> <slidervalue> <placement x="col1_x_left" y="%row1_y%" w="%content_width%"/> - <text>Keyboard Vibration:</text> + <text>{@kb_vibration=Keyboard Vibration:}</text> <data variable="tw_keyboard_vibrate" min="0" max="300"/> </slidervalue> @@ -3805,12 +3789,12 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Settings > Vibration - Action Vibration</text> + <text>{@settings_hdr=Settings} > {@vibration_hdr=Vibration} - {@act_vibration_hdr=Action Vibration}</text> </text> <slidervalue> <placement x="col1_x_left" y="%row1_y%" w="%content_width%"/> - <text>Action Vibration:</text> + <text>{@act_vibration=Action Vibration:}</text> <data variable="tw_action_vibrate" min="0" max="500"/> </slidervalue> @@ -3832,6 +3816,40 @@ </action> </page> + <page name="settings_language"> + <template name="page"/> + + <template name="statusbar"/> + + <text style="text_m"> + <placement x="%col1_x_left%" y="%row1_header_y%"/> + <text>{@settings_hdr=Settings} > {@language_hdr=Language} - %tw_language_display%</text> + </text> + + <object type="listbox" style="scrolllist"> + <placement x="%col1_x_left%" y="%row2_header_y%" w="%content_width%" h="%fileselector_filemanager_height%"/> + <icon selected="radio_true" unselected="radio_false" /> + <data name="tw_language" /> + </object> + + <button> + <placement x="%btn4_col4_x%" y="%row11_y%"/> + <highlight color="%highlight_color%"/> + <image resource="q_btn_folder"/> + <action function="setlanguage"></action> + </button> + + <object type="action"> + <touch key="home" /> + <action function="page">main</action> + </object> + + <object type="action"> + <touch key="back" /> + <action function="page">settings</action> + </object> + </page> + <page name="advanced"> <template name="page"/> @@ -3839,52 +3857,52 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Advanced</text> + <text>{@advanced_hdr=Advanced}</text> </text> <button style="main_button"> <placement x="%col1_x_left%" y="%row1_y%"/> - <text>Terminal</text> + <text>{@terminal_btn=Terminal}</text> <action function="page">terminalfolder</action> </button> <button style="main_button"> <placement x="%col1_x_right%" y="%row1_y%"/> - <text>Fix Perms</text> + <text>{@fix_perm_s_btn=Fix Perms}</text> <action function="page">fixperms</action> </button> <button style="main_button"> <placement x="%col1_x_left%" y="%row6_y%"/> - <text>Reload Theme</text> + <text>{@reload_theme_btn=Reload Theme}</text> <action function="reload"/> </button> <button style="main_button"> <condition var1="tw_allow_partition_sdcard" var2="1"/> <placement x="%col1_x_right%" y="%row6_y%"/> - <text>SD Card</text> + <text>{@part_sd_s_btn=SD Card}</text> <action function="page">partsdcard</action> </button> <button style="main_button"> <condition var1="tw_show_dumlock" var2="1"/> <placement x="%col1_x_left%" y="%row11_y%"/> - <text>HTC Dumlock</text> + <text>{@dumlock_btn=HTC Dumlock}</text> <action function="page">htcdumlock</action> </button> <button style="main_button"> <condition var1="tw_has_injecttwrp" var2="1"/> <placement x="%col1_x_right%" y="%row11_y%"/> - <text>Inject TWRP</text> + <text>{@inject_twrp_btn=Inject TWRP}</text> <actions> <action function="set">tw_back=advanced</action> <action function="set">tw_action=reinjecttwrp</action> - <action function="set">tw_text1=Re-Inject TWRP?</action> - <action function="set">tw_action_text1=Re-Injecting TWRP...</action> - <action function="set">tw_complete_text1=TWRP Injection Complete</action> - <action function="set">tw_slider_text= Confirm</action> + <action function="set">tw_text1={@inject_twrp_confirm=Re-Inject TWRP?}</action> + <action function="set">tw_action_text1={@injecting_twrp=Re-Injecting TWRP...}</action> + <action function="set">tw_complete_text1={@inject_twrp_complete=TWRP Injection Complete}</action> + <action function="set">tw_slider_text={@swipe_confirm= Confirm}</action> <action function="page">confirm_action</action> </actions> </button> @@ -3907,22 +3925,22 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Advanced > Partition SD Card</text> + <text>{@advanced_hdr=Advanced} > {@part_sd_hdr=Partition SD Card}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row1_y%" placement="5"/> - <text>You will lose all files on your SD card!</text> + <text>{@part_sd_lose=You will lose all files on your SD card!}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>This action cannot be undone!</text> + <text>{@part_sd_undo=This action cannot be undone!}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row4_y%" placement="5"/> - <text>EXT Size:</text> + <text>{@part_sd_ext_sz=EXT Size:}</text> </text> <text style="text_m"> @@ -3932,13 +3950,13 @@ <button style="main_button_quarter_width"> <placement x="%indent%" y="%row6_y%"/> - <text>-</text> + <text>{@part_sd_m=-}</text> <action function="addsubtract">tw_sdext_size-128</action> </button> <button style="main_button_quarter_width"> <placement x="%btn4_col4_x%" y="%row6_y%"/> - <text>+</text> + <text>{@part_sd_p=+}</text> <action function="addsubtract">tw_sdext_size+128</action> </button> @@ -3967,22 +3985,22 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Advanced > Partition SD Card</text> + <text>{@advanced_hdr=Advanced} > {@part_sd_hdr=Partition SD Card}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row1_y%" placement="5"/> - <text>You will lose all files on your SD card!</text> + <text>{@part_sd_lose=You will lose all files on your SD card!}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>This action cannot be undone!</text> + <text>{@part_sd_undo=This action cannot be undone!}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row4_y%" placement="5"/> - <text>Swap Size:</text> + <text>{@part_sd_swap_sz=Swap Size:}</text> </text> <text style="text_m"> @@ -3992,13 +4010,13 @@ <button style="main_button_quarter_width"> <placement x="%indent%" y="%row6_y%"/> - <text>-</text> + <text>{@part_sd_m=-}</text> <action function="addsubtract">tw_swap_size-32</action> </button> <button style="main_button_quarter_width"> <placement x="%btn4_col4_x%" y="%row6_y%"/> - <text>+</text> + <text>{@part_sd_p=+}</text> <action function="addsubtract">tw_swap_size+32</action> </button> @@ -4034,22 +4052,22 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Advanced > Partition SD Card</text> + <text>{@advanced_hdr=Advanced} > {@part_sd_hdr=Partition SD Card}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row1_y%" placement="5"/> - <text>You will lose all files on your SD card!</text> + <text>{@part_sd_lose=You will lose all files on your SD card!}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>This action cannot be undone!</text> + <text>{@part_sd_undo=This action cannot be undone!}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row4_y%" placement="5"/> - <text>File System:</text> + <text>{@file_system=File System:}</text> </text> <text style="text_m"> @@ -4101,36 +4119,36 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Advanced > Partition SD Card</text> + <text>{@advanced_hdr=Advanced} > {@part_sd_hdr=Partition SD Card}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row1_y%" placement="5"/> - <text>You will lose all files on your SD card!</text> + <text>{@part_sd_lose=You will lose all files on your SD card!}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>This action cannot be undone!</text> + <text>{@part_sd_undo=This action cannot be undone!}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row4_y%" placement="5"/> - <text>EXT Size: %tw_sdext_size%</text> + <text>{@part_sd_ext_sz=EXT Size:} %tw_sdext_size%</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row6_y%" placement="5"/> - <text>Swap Size: %tw_swap_size%</text> + <text>{@part_sd_swap_sz=Swap Size:} %tw_swap_size%</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row8_y%" placement="5"/> - <text>File System: %tw_sdpart_file_system%</text> + <text>{@file_system=File System:} %tw_sdpart_file_system%</text> </text> <slider> - <text>Partition</text> + <text>{@swipe_part_sd_s=Partition}</text> <action function="page">partsdcardaction</action> <actions> <action function="set">tw_back=partsdcard</action> @@ -4138,9 +4156,9 @@ <action function="set">tw_has_action2=1</action> <action function="set">tw_action2=set</action> <action function="set">tw_action2_param=tw_zip_location=/sdcard</action> - <action function="set">tw_action_text1=Partitioning SD Card...</action> - <action function="set">tw_action_text2=This will take a few minutes.</action> - <action function="set">tw_complete_text1=Partitioning Complete</action> + <action function="set">tw_action_text1={@partitioning_sd=Partitioning SD Card...}</action> + <action function="set">tw_action_text2={@partitioning_sd2=This will take a few minutes.}</action> + <action function="set">tw_complete_text1={@part_sd_complete=Partitioning Complete}</action> <action function="page">action_page</action> </actions> </slider> @@ -4163,47 +4181,47 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Advanced > HTC Dumlock</text> + <text>{@advanced_hdr=Advanced} > {@dumlock_hdr=HTC Dumlock}</text> </text> <button style="main_button_full_width"> <placement x="%indent%" y="%row1_y%"/> - <text>Restore Original Boot</text> + <text>{@dumlock_restore_btn=Restore Original Boot}</text> <actions> <action function="set">tw_back=htcdumlock</action> <action function="set">tw_action=htcdumlockrestoreboot</action> - <action function="set">tw_text1=Restore original boot image?</action> - <action function="set">tw_action_text1=Restoring Original Boot...</action> - <action function="set">tw_complete_text1=Restore Original Boot Complete</action> - <action function="set">tw_slider_text= Confirm</action> + <action function="set">tw_text1={@dumlock_restore_confirm=Restore original boot image?}</action> + <action function="set">tw_action_text1={@dumlock_restoring=Restoring Original Boot...}</action> + <action function="set">tw_complete_text1={@dumlock_restore_complete=Restore Original Boot Complete}</action> + <action function="set">tw_slider_text={@swipe_confirm= Confirm}</action> <action function="page">confirm_action</action> </actions> </button> <button style="main_button_full_width"> <placement x="%indent%" y="%row6_y%"/> - <text>Reflash Recovery</text> + <text>{@dumlock_reflash_btn=Reflash Recovery}</text> <actions> <action function="set">tw_back=htcdumlock</action> <action function="set">tw_action=htcdumlockreflashrecovery</action> - <action function="set">tw_text1=Reflash recovery to boot?</action> - <action function="set">tw_action_text1=Flashing recovery to boot...</action> - <action function="set">tw_complete_text1=Recovery Flash to Boot Complete</action> - <action function="set">tw_slider_text= Confirm</action> + <action function="set">tw_text1={@dumlock_reflash_confirm=Reflash recovery to boot?}</action> + <action function="set">tw_action_text1={@dumlock_reflashing=Flashing recovery to boot...}</action> + <action function="set">tw_complete_text1={@dumlock_reflash_complete=Recovery Flash to Boot Complete}</action> + <action function="set">tw_slider_text={@swipe_confirm= Confirm}</action> <action function="page">confirm_action</action> </actions> </button> <button style="main_button_full_width"> <placement x="%indent%" y="%row11_y%"/> - <text>Install HTC Dumlock</text> + <text>{@dumlock_install_btn=Install HTC Dumlock}</text> <actions> <action function="set">tw_back=htcdumlock</action> <action function="set">tw_action=installhtcdumlock</action> - <action function="set">tw_text1=Install HTC dumlock files to ROM?</action> - <action function="set">tw_action_text1=Installing HTC Dumlock...</action> - <action function="set">tw_complete_text1=HTC Dumlock Install Complete</action> - <action function="set">tw_slider_text= Confirm</action> + <action function="set">tw_action_text1={@dumlock_installing=Installing HTC Dumlock...}</action> + <action function="set">tw_complete_text1={@dumlock_install_complete=HTC Dumlock Install Complete}</action> + <action function="set">tw_slider_text={@swipe_to_confirm=Swipe to Confirm}</action> + <action function="set">tw_slider_text={@swipe_confirm= Confirm}</action> <action function="page">confirm_action</action> </actions> </button> @@ -4228,7 +4246,7 @@ </image> <slider> - <text> Unlock</text> + <text>{@swipe_unlock= Unlock}</text> <action function="overlay"/> </slider> </page> @@ -4240,7 +4258,7 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>File Manager > Select File or Folder</text> + <text>{@fm_hdr=File Manager} > {@fm_sel_file=Select a File or Folder}</text> </text> <fileselector> @@ -4259,14 +4277,14 @@ <actions> <action function="set">tw_filename1=tw_file_location1</action> <action function="set">tw_fm_isfolder=1</action> - <action function="set">tw_fm_type=Folder</action> + <action function="set">tw_fm_type={@fm_type_folder=Folder}</action> <action function="page">filemanageroptions</action> </actions> </button> <action> <actions> - <action function="set">tw_fm_type=File</action> + <action function="set">tw_fm_type={@fm_type_file=File}</action> <action function="set">tw_fm_isfolder=0</action> </actions> </action> @@ -4294,16 +4312,16 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>%tw_fm_type%: %tw_filename1%</text> + <text>%tw_fm_type% > %tw_filename1%</text> </text> <button style="main_button"> <condition var1="tw_fm_isfolder" var2="0"/> <placement x="%col1_x_left%" y="%row1_y%"/> - <text>Copy</text> + <text>{@fm_copy_btn=Copy}</text> <actions> <action function="set">tw_filemanager_command=cp</action> - <action function="set">tw_fm_text1=Copying</action> + <action function="set">tw_fm_text1={@fm_copying=Copying}</action> <action function="page">choosedestinationfolder</action> </actions> </button> @@ -4311,30 +4329,30 @@ <button style="main_button"> <condition var1="tw_fm_isfolder" var2="1"/> <placement x="%col1_x_left%" y="%row1_y%"/> - <text>Copy</text> + <text>{@fm_copy_btn=Copy}</text> <actions> <action function="set">tw_filemanager_command=cd "%tw_file_location1%" && cd .. && cp -R</action> - <action function="set">tw_fm_text1=Copying</action> + <action function="set">tw_fm_text1={@fm_copying=Copying}</action> <action function="page">choosedestinationfolder</action> </actions> </button> <button style="main_button"> <placement x="%col1_x_right%" y="%row1_y%"/> - <text>Move</text> + <text>{@fm_move_btn=Move}</text> <actions> <action function="set">tw_filemanager_command=mv</action> - <action function="set">tw_fm_text1=Moving</action> + <action function="set">tw_fm_text1={@fm_moving=Moving}</action> <action function="page">choosedestinationfolder</action> </actions> </button> <button style="main_button"> <placement x="%col1_x_left%" y="%row6_y%"/> - <text>chmod 755</text> + <text>{@fm_chmod755_btn=chmod 755}</text> <actions> <action function="set">tw_filemanager_command=chmod 755</action> - <action function="set">tw_fm_text1=chmod 755</action> + <action function="set">tw_fm_text1={@fm_chmod755ing=chmod 755}</action> <action function="set">tw_fm_text2=</action> <action function="set">tw_fm_text3=</action> <action function="set">tw_include_text3=0</action> @@ -4345,7 +4363,7 @@ <button style="main_button"> <placement x="%col1_x_right%" y="%row6_y%"/> - <text>chmod</text> + <text>{@fm_chmod_btn=chmod}</text> <actions> <action function="set">tw_filemanager_rename=0000</action> <action function="set">tw_fm_text2=</action> @@ -4358,10 +4376,10 @@ <button style="main_button"> <placement x="%col1_x_left%" y="%row11_y%"/> - <text>Delete</text> + <text>{@fm_delete_btn=Delete}</text> <actions> <action function="set">tw_filemanager_command=rm -rf</action> - <action function="set">tw_fm_text1=Deleting</action> + <action function="set">tw_fm_text1={@fm_deleting=Deleting}</action> <action function="set">tw_fm_text2=</action> <action function="set">tw_fm_text3=</action> <action function="set">tw_include_text3=0</action> @@ -4373,10 +4391,10 @@ <button style="main_button"> <condition var1="tw_fm_isfolder" var2="0"/> <placement x="%col1_x_right%" y="%row11_y%"/> - <text>Rename</text> + <text>{@fm_rename_btn=Rename}</text> <actions> <action function="set">tw_filemanager_rename=tw_selection1</action> - <action function="set">tw_fm_text1=Renaming</action> + <action function="set">tw_fm_text1={@fm_renaming=Renaming}</action> <action function="set">tw_filemanager_command=mv</action> <action function="page">filemanagerrenamefile</action> </actions> @@ -4385,10 +4403,10 @@ <button style="main_button"> <condition var1="tw_fm_isfolder" var2="1"/> <placement x="%col1_x_right%" y="%row11_y%"/> - <text>Rename</text> + <text>{@fm_rename_btn=Rename}</text> <actions> <action function="set">tw_filemanager_rename=tw_selection1</action> - <action function="set">tw_fm_text1=Renaming</action> + <action function="set">tw_fm_text1={@fm_renaming=Renaming}</action> <action function="set">tw_filemanager_command=cd "%tw_file_location1%" && cd .. && mv</action> <action function="page">filemanagerrenamefolder</action> </actions> @@ -4412,7 +4430,7 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>File Manager > Select Destination Folder</text> + <text>{@fm_hdr=File Manager} > {@fm_sel_dest=Select Destination Folder}</text> </text> <fileselector> @@ -4455,12 +4473,12 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>File Manager > Rename %tw_fm_type%</text> + <text>{@fm_hdr=File Manager} > {@fm_rename_hdr=Rename} %tw_fm_type%</text> </text> <text style="text_m_accent"> <placement x="%col1_x_left%" y="%row1_y%"/> - <text>Name:</text> + <text>{@name=Name:}</text> </text> <input> @@ -4483,7 +4501,7 @@ <button style="main_button_half_height"> <placement x="%col1_x_left%" y="%row4_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <action function="page">filemanageroptions</action> </button> @@ -4507,12 +4525,12 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>File Manager > Rename %tw_fm_type%</text> + <text>{@fm_hdr=File Manager} > {@fm_rename_hdr=Rename} %tw_fm_type%</text> </text> <text style="text_m_accent"> <placement x="%col1_x_left%" y="%row1_y%"/> - <text>Name:</text> + <text>{@name=Name:}</text> </text> <input> @@ -4535,7 +4553,7 @@ <button style="main_button_half_height"> <placement x="%col1_x_left%" y="%row4_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <action function="page">filemanageroptions</action> </button> @@ -4559,12 +4577,12 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>File Manager > Set Permissions</text> + <text>{@fm_hdr=File Manager} > {@fm_set_perms_hdr=Set Permissions}</text> </text> <text style="text_m_accent"> <placement x="%col1_x_left%" y="%row1_y%"/> - <text>Permissions:</text> + <text>{@fm_perms=Permissions:}</text> </text> <input> @@ -4586,7 +4604,7 @@ <button style="main_button_half_height"> <placement x="%col1_x_left%" y="%row4_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <action function="page">filemanageroptions</action> </button> @@ -4610,7 +4628,7 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>File Manager > Confirm Action</text> + <text>{@fm_hdr=File Manager} > {@confirm_action=Confirm Action}</text> </text> <text style="text_m_accent"> @@ -4635,11 +4653,11 @@ <text style="text_m"> <placement x="%center_x%" y="%row8_y%" placement="5"/> - <text>Press back button to cancel.</text> + <text>{@back_cancel=Press back button to cancel.}</text> </text> <slider> - <text>Confirm</text> + <text>{@swipe_confirm= Confirm}</text> <action function="page">filemanageraction</action> </slider> @@ -4661,7 +4679,7 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>File Manager > %tw_fm_text1%</text> + <text>{@fm_hdr=File Manager} > %tw_fm_text1%</text> </text> <template name="console"/> @@ -4675,7 +4693,7 @@ </conditions> <actions> <action function="set">tw_back=filemanagerlist</action> - <action function="set">tw_complete_text1=File Operation Complete</action> + <action function="set">tw_complete_text1={@fm_complete=File Operation Complete}</action> <action function="page">action_complete</action> </actions> </action> @@ -4686,7 +4704,7 @@ <condition var1="tw_operation_status" op="!=" var2="0"/> </conditions> <actions> - <action function="set">tw_complete_text1=File Operation Complete</action> + <action function="set">tw_complete_text1={@fm_complete=File Operation Complete}</action> <action function="page">action_complete</action> </actions> </action> @@ -4714,12 +4732,12 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Mount > Decrypt Data</text> + <text>{@mount_hdr=Mount} > {@decrypt_data_hdr=Decrypt Data}</text> </text> <text style="text_m_accent"> <placement x="%col1_x_left%" y="%row1_y%"/> - <text>Enter Password:</text> + <text>{@decrypt_data_enter_pass=Enter Password:}</text> </text> <input> @@ -4742,12 +4760,12 @@ <text style="text_m_fail"> <condition var1="tw_password_fail" var2="1"/> <placement x="%col1_x_left%" y="%row3_input_y%"/> - <text>Password failed, please try again!</text> + <text>{@decryt_data_failed=Password failed, please try again!}</text> </text> <button style="main_button_half_height"> <placement x="%col1_x_right%" y="%row4_y%"/> - <text>Cancel</text> + <text>{@cancel_btn=Cancel}</text> <actions> <action function="set">tw_page_done=1</action> <action function="page">main</action> @@ -4764,17 +4782,17 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Mount > Decrypt Data</text> + <text>{@mount_hdr=Mount} > {@decrypt_data_hdr=Decrypt Data}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row5_y%" placement="5"/> - <text>Enter Pattern.</text> + <text>{@decrypt_data_enter_pattern=Enter Pattern.}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row10_y%" placement="5"/> - <text>Press back to cancel.</text> + <text>{@back_cancel=Press back to cancel.}</text> </text> <patternpassword> @@ -4808,7 +4826,7 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Mount > Trying Decryption</text> + <text>{@mount_hdr=Mount} > {@decrypt_data_trying=Trying Decryption}</text> </text> <template name="console"/> @@ -4849,7 +4867,7 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Terminal > Select Starting Folder</text> + <text>{@term_s_hdr=Terminal} > {@term_sel_folder_hdr=Browse to Starting Folder}</text> </text> <fileselector> @@ -4886,7 +4904,7 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Terminal > %tw_terminal_location%</text> + <text>{@term_s_hdr=Terminal} > %tw_terminal_location%</text> </text> <template name="console_terminal"/> @@ -4932,35 +4950,35 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Install > ADB Sideload</text> + <text>{@install_hdr=Install} > {@adb_sideload_hdr=ADB Sideload}</text> </text> <text style="text_m_accent"> <placement x="%indent%" y="%row1_y%"/> - <text>Options:</text> + <text>{@options=Options:}</text> </text> <checkbox> <placement x="%indent%" y="%row2_y%"/> - <text>Wipe Dalvik Cache</text> + <text>{@sideload_wipe_dalvik_chk=Wipe Dalvik Cache}</text> <data variable="tw_wipe_dalvik"/> </checkbox> <checkbox> <placement x="%indent%" y="%row4a_y%"/> - <text>Wipe Cache</text> + <text>{@sideload_wipe_cache_chk=Wipe Cache}</text> <data variable="tw_wipe_cache"/> </checkbox> <slider> - <text> Start</text> + <text>{@swipe_sideload= Start}</text> <action function="page">partsdcardaction</action> <actions> <action function="set">tw_back=install_type</action> <action function="set">tw_action=adbsideload</action> - <action function="set">tw_action_text1=ADB Sideload</action> - <action function="set">tw_action_text2=Usage: adb sideload filename.zip</action> - <action function="set">tw_complete_text1=ADB Sideload Complete</action> + <action function="set">tw_action_text1={@sideload_confirm=ADB Sideload}</action> + <action function="set">tw_action_text2={@sideload_usage=Usage: adb sideload filename.zip}</action> + <action function="set">tw_complete_text1={@sideload_complete=ADB Sideload Complete}</action> <action function="set">tw_has_cancel=1</action> <action function="set">tw_show_reboot=1</action> <action function="set">tw_cancel_action=adbsideloadcancel</action> @@ -4986,38 +5004,38 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Advanced > Fix Permissions</text> + <text>{@advanced_hdr=Advanced} > {@fix_perms_hdr=Fix Permissions}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>Note: Fixing permissions is rarely needed.</text> + <text>{@fix_perms_note=Note: Fixing permissions is rarely needed.}</text> </text> <checkbox> <placement x="%indent%" y="%row4_y%"/> - <text>Also fix SELinux Contexts</text> + <text>{@fix_perms_selinux_chk=Also fix SELinux Contexts}</text> <data variable="tw_fixperms_restorecon"/> </checkbox> <text style="text_m_fail"> <placement x="%center_x%" y="%row6a_y%" placement="5"/> - <text>Fixing SELinux Contexts may cause</text> + <text>{@fix_perms_sel_note1=Fixing SELinux Contexts may cause}</text> </text> <text style="text_m_fail"> <placement x="%center_x%" y="%row7a_y%" placement="5"/> - <text>your device to not boot properly.</text> + <text>{@fix_perms_sel_note2=your device to not boot properly.}</text> </text> <slider> - <text> Fix Perms</text> + <text>{@swipe_fix_perms= Fix Perms}</text> <actions> <action function="set">tw_back=advanced</action> <action function="set">tw_action=fixpermissions</action> - <action function="set">tw_action_text1=Fixing Permissions...</action> - <action function="set">tw_complete_text1=Fix Permissions Complete</action> - <action function="set">tw_slider_text= Confirm</action> + <action function="set">tw_action_text1={@fixing_perms=Fixing Permissions...}</action> + <action function="set">tw_complete_text1={@fix_perms_complete=Fix Permissions Complete}</action> + <action function="set">tw_slider_text={@swipe_confirm= Confirm}</action> <action function="set">tw_show_reboot=1</action> <action function="page">action_page</action> </actions> @@ -5041,35 +5059,35 @@ <text style="text_m"> <placement x="%col1_x_left%" y="%row1_header_y%"/> - <text>Reboot > SuperSU Check</text> + <text>{@reboot_hdr=Reboot} > {@su_hdr=SuperSU Check}</text> </text> <text style="text_m_accent"> <placement x="%center_x%" y="%row2_y%" placement="5"/> - <text>Your device does not appear to be rooted.</text> + <text>{@su_note1=Your device does not appear to be rooted.}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row4_y%" placement="5"/> - <text>Install SuperSU now?</text> + <text>{@su_note2=Install SuperSU now?}</text> </text> <text style="text_m"> <placement x="%center_x%" y="%row5_y%" placement="5"/> - <text>This will root your device.</text> + <text>{@su_note3=This will root your device.}</text> </text> <button style="main_button_full_width"> <placement x="%indent%" y="%row6_y%"/> - <text>Do not Install</text> + <text>{@su_cancel=Do not Install}</text> <action function="set">tw_page_done=1</action> </button> <slider> - <text> Install</text> + <text>{@swipe_su_install= Install}</text> <actions> <action function="set">tw_action=installsu</action> - <action function="set">tw_action_text1=Installing SuperSU</action> + <action function="set">tw_action_text1={@su_installing=Installing SuperSU}</action> <action function="set">tw_action_text2=</action> <action function="page">singleaction_page</action> </actions> diff --git a/gui/theme/landscape_hdpi/ui.xml b/gui/theme/landscape_hdpi/ui.xml index ef967f5a7..824164137 100644 --- a/gui/theme/landscape_hdpi/ui.xml +++ b/gui/theme/landscape_hdpi/ui.xml @@ -94,8 +94,13 @@ <variable name="tab_height" value="72" /> <variable name="tab_indicator_height" value="4" /> <variable name="tab4_width" value="480" /> + <variable name="tab5_width" value="384" /> <variable name="tab4_col2_x" value="480" /> <variable name="tab4_col4_x" value="1440" /> + <variable name="tab5_col2_x" value="384" /> + <variable name="tab5_col3_x" value="768" /> + <variable name="tab5_col4_x" value="1152" /> + <variable name="tab5_col5_x" value="1536" /> <variable name="btn4_col2_x_left" value="282" /> <variable name="btn4_col3_x_left" value="516" /> <variable name="btn4_col4_x_left" value="750" /> @@ -255,7 +260,7 @@ <condition var1="tw_no_cpu_temp" var2="0" /> <font resource="font_m" /> <placement x="%indent%" y="%row1_header_y%" /> - <text>CPU: %tw_cpu_temp% °C</text> + <text>{@cpu_temp=CPU: %tw_cpu_temp% °C}</text> </object> <object type="text" color="%text_color%"> @@ -272,7 +277,7 @@ </conditions> <font resource="font_m" /> <placement x="%indent_right%" y="%row1_header_y%" placement="1" /> - <text>Battery: %tw_battery%</text> + <text>{@battery_pct=Battery: %tw_battery%}</text> </object> <object type="fill" color="#000000"> @@ -456,14 +461,14 @@ <object type="button" style="sort_asc"> <condition var1="tw_gui_sort_order" op="=" var2="1" /> <placement x="%col_button_right%" y="%row1a_y%" /> - <text>Sort by Name</text> + <text>{@sort_by_name=Sort by Name}</text> <action function="set">tw_gui_sort_order=-1</action> </object> <object type="button" style="sort_desc"> <condition var1="tw_gui_sort_order" op="=" var2="-1" /> <placement x="%col_button_right%" y="%row1a_y%" /> - <text>Sort by Name</text> + <text>{@sort_by_name=Sort by Name}</text> <action function="set">tw_gui_sort_order=1</action> </object> @@ -473,21 +478,21 @@ <condition var1="tw_gui_sort_order" op="!=" var2="-1" /> </conditions> <placement x="%col_button_right%" y="%row1a_y%" /> - <text>Sort by Name</text> + <text>{@sort_by_name=Sort by Name}</text> <action function="set">tw_gui_sort_order=1</action> </object> <object type="button" style="sort_asc"> <condition var1="tw_gui_sort_order" op="=" var2="2" /> <placement x="%col_button_right%" y="%row4a_y%" /> - <text>Sort by Date</text> + <text>{@sort_by_date=Sort by Date}</text> <action function="set">tw_gui_sort_order=-2</action> </object> <object type="button" style="sort_desc"> <condition var1="tw_gui_sort_order" op="=" var2="-2" /> <placement x="%col_button_right%" y="%row4a_y%" /> - <text>Sort by Date</text> + <text>{@sort_by_date=Sort by Date}</text> <action function="set">tw_gui_sort_order=2</action> </object> @@ -497,21 +502,21 @@ <condition var1="tw_gui_sort_order" op="!=" var2="-2" /> </conditions> <placement x="%col_button_right%" y="%row4a_y%" /> - <text>Sort by Date</text> + <text>{@sort_by_date=Sort by Date}</text> <action function="set">tw_gui_sort_order=2</action> </object> <object type="button" style="sort_asc"> <condition var1="tw_gui_sort_order" op="=" var2="3" /> <placement x="%col_button_right%" y="%row7a_y%" /> - <text>Sort by Size</text> + <text>{@sort_by_size=Sort by Size}</text> <action function="set">tw_gui_sort_order=-3</action> </object> <object type="button" style="sort_desc"> <condition var1="tw_gui_sort_order" op="=" var2="-3" /> <placement x="%col_button_right%" y="%row7a_y%" /> - <text>Sort by Size</text> + <text>{@sort_by_size=Sort by Size}</text> <action function="set">tw_gui_sort_order=3</action> </object> @@ -521,35 +526,41 @@ <condition var1="tw_gui_sort_order" op="!=" var2="-3" /> </conditions> <placement x="%col_button_right%" y="%row7a_y%" /> - <text>Sort by Size</text> + <text>{@sort_by_size=Sort by Size}</text> <action function="set">tw_gui_sort_order=3</action> </object> </template> <template name="tabs_settings"> <object type="button" style="tab"> - <placement x="0" y="%row1_y%" w="%tab4_width%" h="%tab_height%" /> - <text>GENERAL</text> + <placement x="0" y="%row1_y%" w="%tab5_width%" h="%tab_height%" /> + <text>{@tab_general=GENERAL}</text> <action function="page">settings</action> </object> <object type="button" style="tab"> - <placement x="%tab4_col2_x%" y="%row1_y%" w="%tab4_width%" h="%tab_height%" /> - <text>TIME ZONE</text> + <placement x="%tab5_col2_x%" y="%row1_y%" w="%tab5_width%" h="%tab_height%" /> + <text>{@tab_time_zone=TIME ZONE}</text> <action function="page">settings_timezone</action> </object> <object type="button" style="tab"> - <placement x="%center_x%" y="%row1_y%" w="%tab4_width%" h="%tab_height%" /> - <text>SCREEN</text> + <placement x="%tab5_col3_x%" y="%row1_y%" w="%tab5_width%" h="%tab_height%" /> + <text>{@tab_screen=SCREEN}</text> <action function="page">settings_screen</action> </object> <object type="button" style="tab"> - <placement x="%tab4_col4_x%" y="%row1_y%" w="%tab4_width%" h="%tab_height%" /> - <text>VIBRATION</text> + <placement x="%tab5_col4_x%" y="%row1_y%" w="%tab5_width%" h="%tab_height%" /> + <text>{@tab_vibration=VIBRATION}</text> <action function="page">settings_vibration</action> </object> + + <object type="button" style="tab"> + <placement x="%tab5_col5_x%" y="%row1_y%" w="%tab5_width%" h="%tab_height%" /> + <text>{@tab_language=LANGUAGE}</text> + <action function="page">settings_language</action> + </object> </template> <template name="console"> diff --git a/gui/theme/landscape_mdpi/ui.xml b/gui/theme/landscape_mdpi/ui.xml index 563f16ee4..818c23d17 100644 --- a/gui/theme/landscape_mdpi/ui.xml +++ b/gui/theme/landscape_mdpi/ui.xml @@ -94,8 +94,13 @@ <variable name="tab_height" value="30" />
<variable name="tab_indicator_height" value="2" />
<variable name="tab4_width" value="200" />
+ <variable name="tab5_width" value="160" />
<variable name="tab4_col2_x" value="200" />
<variable name="tab4_col4_x" value="600" />
+ <variable name="tab5_col2_x" value="160" />
+ <variable name="tab5_col3_x" value="320" />
+ <variable name="tab5_col4_x" value="480" />
+ <variable name="tab5_col5_x" value="640" />
<variable name="btn4_col2_x_left" value="117" />
<variable name="btn4_col3_x_left" value="216" />
<variable name="btn4_col4_x_left" value="313" />
@@ -255,7 +260,7 @@ <condition var1="tw_no_cpu_temp" var2="0" />
<font resource="font_m" />
<placement x="%indent%" y="%row1_header_y%" />
- <text>CPU: %tw_cpu_temp% °C</text>
+ <text>{@cpu_temp=CPU: %tw_cpu_temp% °C}</text>
</object>
<object type="text" color="%text_color%">
@@ -272,7 +277,7 @@ </conditions>
<font resource="font_m" />
<placement x="%indent_right%" y="%row1_header_y%" placement="1" />
- <text>Battery: %tw_battery%</text>
+ <text>{@battery_pct=Battery: %tw_battery%}</text>
</object>
<object type="fill" color="#000000">
@@ -456,14 +461,14 @@ <object type="button" style="sort_asc">
<condition var1="tw_gui_sort_order" op="=" var2="1" />
<placement x="%col_button_right%" y="%row1a_y%" />
- <text>Sort by Name</text>
+ <text>{@sort_by_name=Sort by Name}</text>
<action function="set">tw_gui_sort_order=-1</action>
</object>
<object type="button" style="sort_desc">
<condition var1="tw_gui_sort_order" op="=" var2="-1" />
<placement x="%col_button_right%" y="%row1a_y%" />
- <text>Sort by Name</text>
+ <text>{@sort_by_name=Sort by Name}</text>
<action function="set">tw_gui_sort_order=1</action>
</object>
@@ -473,21 +478,21 @@ <condition var1="tw_gui_sort_order" op="!=" var2="-1" />
</conditions>
<placement x="%col_button_right%" y="%row1a_y%" />
- <text>Sort by Name</text>
+ <text>{@sort_by_name=Sort by Name}</text>
<action function="set">tw_gui_sort_order=1</action>
</object>
<object type="button" style="sort_asc">
<condition var1="tw_gui_sort_order" op="=" var2="2" />
<placement x="%col_button_right%" y="%row4a_y%" />
- <text>Sort by Date</text>
+ <text>{@sort_by_date=Sort by Date}</text>
<action function="set">tw_gui_sort_order=-2</action>
</object>
<object type="button" style="sort_desc">
<condition var1="tw_gui_sort_order" op="=" var2="-2" />
<placement x="%col_button_right%" y="%row4a_y%" />
- <text>Sort by Date</text>
+ <text>{@sort_by_date=Sort by Date}</text>
<action function="set">tw_gui_sort_order=2</action>
</object>
@@ -497,21 +502,21 @@ <condition var1="tw_gui_sort_order" op="!=" var2="-2" />
</conditions>
<placement x="%col_button_right%" y="%row4a_y%" />
- <text>Sort by Date</text>
+ <text>{@sort_by_date=Sort by Date}</text>
<action function="set">tw_gui_sort_order=2</action>
</object>
<object type="button" style="sort_asc">
<condition var1="tw_gui_sort_order" op="=" var2="3" />
<placement x="%col_button_right%" y="%row7a_y%" />
- <text>Sort by Size</text>
+ <text>{@sort_by_size=Sort by Size}</text>
<action function="set">tw_gui_sort_order=-3</action>
</object>
<object type="button" style="sort_desc">
<condition var1="tw_gui_sort_order" op="=" var2="-3" />
<placement x="%col_button_right%" y="%row7a_y%" />
- <text>Sort by Size</text>
+ <text>{@sort_by_size=Sort by Size}</text>
<action function="set">tw_gui_sort_order=3</action>
</object>
@@ -521,35 +526,41 @@ <condition var1="tw_gui_sort_order" op="!=" var2="-3" />
</conditions>
<placement x="%col_button_right%" y="%row7a_y%" />
- <text>Sort by Size</text>
+ <text>{@sort_by_size=Sort by Size}</text>
<action function="set">tw_gui_sort_order=3</action>
</object>
</template>
<template name="tabs_settings">
<object type="button" style="tab">
- <placement x="0" y="%row1_y%" w="%tab4_width%" h="%tab_height%" />
- <text>GENERAL</text>
+ <placement x="0" y="%row1_y%" w="%tab5_width%" h="%tab_height%" />
+ <text>{@tab_general=GENERAL}</text>
<action function="page">settings</action>
</object>
<object type="button" style="tab">
- <placement x="%tab4_col2_x%" y="%row1_y%" w="%tab4_width%" h="%tab_height%" />
- <text>TIME ZONE</text>
+ <placement x="%tab5_col2_x%" y="%row1_y%" w="%tab5_width%" h="%tab_height%" />
+ <text>{@tab_time_zone=TIME ZONE}</text>
<action function="page">settings_timezone</action>
</object>
<object type="button" style="tab">
- <placement x="%center_x%" y="%row1_y%" w="%tab4_width%" h="%tab_height%" />
- <text>SCREEN</text>
+ <placement x="%tab5_col3_x%" y="%row1_y%" w="%tab5_width%" h="%tab_height%" />
+ <text>{@tab_screen=SCREEN}</text>
<action function="page">settings_screen</action>
</object>
<object type="button" style="tab">
- <placement x="%tab4_col4_x%" y="%row1_y%" w="%tab4_width%" h="%tab_height%" />
- <text>VIBRATION</text>
+ <placement x="%tab5_col4_x%" y="%row1_y%" w="%tab5_width%" h="%tab_height%" />
+ <text>{@tab_vibration=VIBRATION}</text>
<action function="page">settings_vibration</action>
</object>
+
+ <object type="button" style="tab">
+ <placement x="%tab5_col5_x%" y="%row1_y%" w="%tab5_width%" h="%tab_height%" />
+ <text>{@tab_language=LANGUAGE}</text>
+ <action function="page">settings_language</action>
+ </object>
</template>
<template name="console">
diff --git a/gui/theme/portrait_hdpi/ui.xml b/gui/theme/portrait_hdpi/ui.xml index f8e1181f5..7708f926b 100644 --- a/gui/theme/portrait_hdpi/ui.xml +++ b/gui/theme/portrait_hdpi/ui.xml @@ -82,10 +82,15 @@ <variable name="tab_indicator_height" value="6" /> <variable name="tab3_width" value="360" /> <variable name="tab4_width" value="270" /> + <variable name="tab5_width" value="216" /> <variable name="tab3_col2_x" value="360" /> <variable name="tab3_col3_x" value="720" /> <variable name="tab4_col2_x" value="270" /> <variable name="tab4_col4_x" value="810" /> + <variable name="tab5_col2_x" value="216" /> + <variable name="tab5_col3_x" value="432" /> + <variable name="tab5_col4_x" value="648" /> + <variable name="tab5_col5_x" value="864" /> <variable name="btn3_col2_x" value="384" /> <variable name="btn3_col3_x" value="732" /> <variable name="btn4_col2_x" value="297" /> @@ -247,7 +252,7 @@ <condition var1="tw_no_cpu_temp" var2="0" /> <font resource="font_m" /> <placement x="%indent%" y="%row1_header_y%" /> - <text>CPU: %tw_cpu_temp% °C</text> + <text>{@cpu_temp=CPU: %tw_cpu_temp% °C}</text> </object> <object type="text" color="%text_color%"> @@ -264,7 +269,7 @@ </conditions> <font resource="font_m" /> <placement x="%indent_right%" y="%row1_header_y%" placement="1" /> - <text>Battery: %tw_battery%</text> + <text>{@battery_pct=Battery: %tw_battery%}</text> </object> <object type="fill" color="#000000"> @@ -357,7 +362,7 @@ <condition var1="tw_gui_sort_order" op="=" var2="1" /> <placement x="%indent%" y="%row1a_y%" /> <font resource="font_s" color="%text_button_color%" /> - <text>Name</text> + <text>{@sort_by_name_only=Name}</text> <image resource="sort_asc" /> <action function="set">tw_gui_sort_order=-1</action> </object> @@ -367,7 +372,7 @@ <condition var1="tw_gui_sort_order" op="=" var2="-1" /> <placement x="%indent%" y="%row1a_y%" /> <font resource="font_s" color="%text_button_color%" /> - <text>Name</text> + <text>{@sort_by_name_only=Name}</text> <image resource="sort_desc" /> <action function="set">tw_gui_sort_order=1</action> </object> @@ -380,7 +385,7 @@ </conditions> <placement x="%indent%" y="%row1a_y%" /> <font resource="font_s" color="%text_button_color%" /> - <text>Name</text> + <text>{@sort_by_name_only=Name}</text> <image resource="sort_empty" /> <action function="set">tw_gui_sort_order=1</action> </object> @@ -390,7 +395,7 @@ <condition var1="tw_gui_sort_order" op="=" var2="2" /> <placement x="%btn3_col2_x%" y="%row1a_y%" /> <font resource="font_s" color="%text_button_color%" /> - <text>Date</text> + <text>{@sort_by_date_only=Date}</text> <image resource="sort_asc" /> <action function="set">tw_gui_sort_order=-2</action> </object> @@ -400,7 +405,7 @@ <condition var1="tw_gui_sort_order" op="=" var2="-2" /> <placement x="%btn3_col2_x%" y="%row1a_y%" /> <font resource="font_s" color="%text_button_color%" /> - <text>Date</text> + <text>{@sort_by_date_only=Date}</text> <image resource="sort_desc" /> <action function="set">tw_gui_sort_order=2</action> </object> @@ -413,7 +418,7 @@ </conditions> <placement x="%btn3_col2_x%" y="%row1a_y%" /> <font resource="font_s" color="%text_button_color%" /> - <text>Date</text> + <text>{@sort_by_date_only=Date}</text> <image resource="sort_empty" /> <action function="set">tw_gui_sort_order=2</action> </object> @@ -423,7 +428,7 @@ <condition var1="tw_gui_sort_order" op="=" var2="3" /> <placement x="%btn3_col3_x%" y="%row1a_y%" /> <font resource="font_s" color="%text_button_color%" /> - <text>Size</text> + <text>{@sort_by_size_only=Size}</text> <image resource="sort_asc" /> <action function="set">tw_gui_sort_order=-3</action> </object> @@ -433,7 +438,7 @@ <condition var1="tw_gui_sort_order" op="=" var2="-3" /> <placement x="%btn3_col3_x%" y="%row1a_y%" /> <font resource="font_s" color="%text_button_color%" /> - <text>Size</text> + <text>{@sort_by_size_only=Size}</text> <image resource="sort_desc" /> <action function="set">tw_gui_sort_order=3</action> </object> @@ -446,7 +451,7 @@ </conditions> <placement x="%btn3_col3_x%" y="%row1a_y%" /> <font resource="font_s" color="%text_button_color%" /> - <text>Size</text> + <text>{@sort_by_size_only=Size}</text> <image resource="sort_empty" /> <action function="set">tw_gui_sort_order=3</action> </object> @@ -455,41 +460,47 @@ <template name="tabs_backup"> <object type="button" style="tab"> <placement x="0" y="%row1_y%" w="%tab3_width%" h="%tab_height%" /> - <text>BACKUP</text> + <text>{@tab_backup=BACKUP}</text> <action function="page">backup</action> </object> <object type="button" style="tab"> <placement x="%tab3_col2_x%" y="%row1_y%" w="%tab3_width%" h="%tab_height%" /> - <text>OPTIONS</text> + <text>{@tab_options=OPTIONS}</text> <action function="page">backup_options</action> </object> </template> <template name="tabs_settings"> <object type="button" style="tab"> - <placement x="0" y="%row1_y%" w="%tab4_width%" h="%tab_height%" /> - <text>GENERAL</text> + <placement x="0" y="%row1_y%" w="%tab5_width%" h="%tab_height%" /> + <text>{@tab_general=GENERAL}</text> <action function="page">settings</action> </object> <object type="button" style="tab"> - <placement x="%tab4_col2_x%" y="%row1_y%" w="%tab4_width%" h="%tab_height%" /> - <text>TIME ZONE</text> + <placement x="%tab5_col2_x%" y="%row1_y%" w="%tab5_width%" h="%tab_height%" /> + <text>{@tab_time_zone=TIME ZONE}</text> <action function="page">settings_timezone</action> </object> <object type="button" style="tab"> - <placement x="%center_x%" y="%row1_y%" w="%tab4_width%" h="%tab_height%" /> - <text>SCREEN</text> + <placement x="%tab5_col3_x%" y="%row1_y%" w="%tab5_width%" h="%tab_height%" /> + <text>{@tab_screen=SCREEN}</text> <action function="page">settings_screen</action> </object> <object type="button" style="tab"> - <placement x="%tab4_col4_x%" y="%row1_y%" w="%tab4_width%" h="%tab_height%" /> - <text>VIBRATION</text> + <placement x="%tab5_col4_x%" y="%row1_y%" w="%tab5_width%" h="%tab_height%" /> + <text>{@tab_vibration=VIBRATION}</text> <action function="page">settings_vibration</action> </object> + + <object type="button" style="tab"> + <placement x="%tab5_col5_x%" y="%row1_y%" w="%tab5_width%" h="%tab_height%" /> + <text>{@tab_language=LANGUAGE}</text> + <action function="page">settings_language</action> + </object> </template> <template name="console"> diff --git a/gui/theme/portrait_mdpi/ui.xml b/gui/theme/portrait_mdpi/ui.xml index 1ba10a380..68fd32459 100644 --- a/gui/theme/portrait_mdpi/ui.xml +++ b/gui/theme/portrait_mdpi/ui.xml @@ -82,10 +82,15 @@ <variable name="tab_indicator_height" value="3" /> <variable name="tab3_width" value="160" /> <variable name="tab4_width" value="120" /> + <variable name="tab5_width" value="96" /> <variable name="tab3_col2_x" value="160" /> <variable name="tab3_col3_x" value="320" /> <variable name="tab4_col2_x" value="120" /> <variable name="tab4_col4_x" value="360" /> + <variable name="tab5_col2_x" value="96" /> + <variable name="tab5_col3_x" value="192" /> + <variable name="tab5_col4_x" value="288" /> + <variable name="tab5_col5_x" value="384" /> <variable name="btn3_col2_x" value="170" /> <variable name="btn3_col3_x" value="325" /> <variable name="btn4_col2_x" value="131" /> @@ -247,7 +252,7 @@ <condition var1="tw_no_cpu_temp" var2="0" /> <font resource="font_m" /> <placement x="%indent%" y="%row1_header_y%" /> - <text>CPU: %tw_cpu_temp% °C</text> + <text>{@cpu_temp=CPU: %tw_cpu_temp% °C}</text> </object> <object type="text" color="%text_color%"> @@ -264,7 +269,7 @@ </conditions> <font resource="font_m" /> <placement x="%indent_right%" y="%row1_header_y%" placement="1" /> - <text>Battery: %tw_battery%</text> + <text>{@battery_pct=Battery: %tw_battery%}</text> </object> <object type="fill" color="#000000"> @@ -357,7 +362,7 @@ <condition var1="tw_gui_sort_order" op="=" var2="1" /> <placement x="%indent%" y="%row1a_y%" /> <font resource="font_s" color="%text_button_color%" /> - <text>Name</text> + <text>{@sort_by_name_only=Name}</text> <image resource="sort_asc" /> <action function="set">tw_gui_sort_order=-1</action> </object> @@ -367,7 +372,7 @@ <condition var1="tw_gui_sort_order" op="=" var2="-1" /> <placement x="%indent%" y="%row1a_y%" /> <font resource="font_s" color="%text_button_color%" /> - <text>Name</text> + <text>{@sort_by_name_only=Name}</text> <image resource="sort_desc" /> <action function="set">tw_gui_sort_order=1</action> </object> @@ -380,7 +385,7 @@ </conditions> <placement x="%indent%" y="%row1a_y%" /> <font resource="font_s" color="%text_button_color%" /> - <text>Name</text> + <text>{@sort_by_name_only=Name}</text> <image resource="sort_empty" /> <action function="set">tw_gui_sort_order=1</action> </object> @@ -390,7 +395,7 @@ <condition var1="tw_gui_sort_order" op="=" var2="2" /> <placement x="%btn3_col2_x%" y="%row1a_y%" /> <font resource="font_s" color="%text_button_color%" /> - <text>Date</text> + <text>{@sort_by_date_only=Date}</text> <image resource="sort_asc" /> <action function="set">tw_gui_sort_order=-2</action> </object> @@ -400,7 +405,7 @@ <condition var1="tw_gui_sort_order" op="=" var2="-2" /> <placement x="%btn3_col2_x%" y="%row1a_y%" /> <font resource="font_s" color="%text_button_color%" /> - <text>Date</text> + <text>{@sort_by_date_only=Date}</text> <image resource="sort_desc" /> <action function="set">tw_gui_sort_order=2</action> </object> @@ -413,7 +418,7 @@ </conditions> <placement x="%btn3_col2_x%" y="%row1a_y%" /> <font resource="font_s" color="%text_button_color%" /> - <text>Date</text> + <text>{@sort_by_date_only=Date}</text> <image resource="sort_empty" /> <action function="set">tw_gui_sort_order=2</action> </object> @@ -423,7 +428,7 @@ <condition var1="tw_gui_sort_order" op="=" var2="3" /> <placement x="%btn3_col3_x%" y="%row1a_y%" /> <font resource="font_s" color="%text_button_color%" /> - <text>Size</text> + <text>{@sort_by_size_only=Size}</text> <image resource="sort_asc" /> <action function="set">tw_gui_sort_order=-3</action> </object> @@ -433,7 +438,7 @@ <condition var1="tw_gui_sort_order" op="=" var2="-3" /> <placement x="%btn3_col3_x%" y="%row1a_y%" /> <font resource="font_s" color="%text_button_color%" /> - <text>Size</text> + <text>{@sort_by_size_only=Size}</text> <image resource="sort_desc" /> <action function="set">tw_gui_sort_order=3</action> </object> @@ -446,7 +451,7 @@ </conditions> <placement x="%btn3_col3_x%" y="%row1a_y%" /> <font resource="font_s" color="%text_button_color%" /> - <text>Size</text> + <text>{@sort_by_size_only=Size}</text> <image resource="sort_empty" /> <action function="set">tw_gui_sort_order=3</action> </object> @@ -455,41 +460,47 @@ <template name="tabs_backup"> <object type="button" style="tab"> <placement x="0" y="%row1_y%" w="%tab3_width%" h="%tab_height%" /> - <text>BACKUP</text> + <text>{@tab_backup=BACKUP}</text> <action function="page">backup</action> </object> <object type="button" style="tab"> <placement x="%tab3_col2_x%" y="%row1_y%" w="%tab3_width%" h="%tab_height%" /> - <text>OPTIONS</text> + <text>{@tab_options=OPTIONS}</text> <action function="page">backup_options</action> </object> </template> <template name="tabs_settings"> <object type="button" style="tab"> - <placement x="0" y="%row1_y%" w="%tab4_width%" h="%tab_height%" /> - <text>GENERAL</text> + <placement x="0" y="%row1_y%" w="%tab5_width%" h="%tab_height%" /> + <text>{@tab_general=GENERAL}</text> <action function="page">settings</action> </object> <object type="button" style="tab"> - <placement x="%tab4_col2_x%" y="%row1_y%" w="%tab4_width%" h="%tab_height%" /> - <text>TIME ZONE</text> + <placement x="%tab5_col2_x%" y="%row1_y%" w="%tab5_width%" h="%tab_height%" /> + <text>{@tab_time_zone=TIME ZONE}</text> <action function="page">settings_timezone</action> </object> <object type="button" style="tab"> - <placement x="%center_x%" y="%row1_y%" w="%tab4_width%" h="%tab_height%" /> - <text>SCREEN</text> + <placement x="%tab5_col3_x%" y="%row1_y%" w="%tab5_width%" h="%tab_height%" /> + <text>{@tab_screen=SCREEN}</text> <action function="page">settings_screen</action> </object> <object type="button" style="tab"> - <placement x="%tab4_col4_x%" y="%row1_y%" w="%tab4_width%" h="%tab_height%" /> - <text>VIBRATION</text> + <placement x="%tab5_col4_x%" y="%row1_y%" w="%tab5_width%" h="%tab_height%" /> + <text>{@tab_vibration=VIBRATION}</text> <action function="page">settings_vibration</action> </object> + + <object type="button" style="tab"> + <placement x="%tab5_col5_x%" y="%row1_y%" w="%tab5_width%" h="%tab_height%" /> + <text>{@tab_language=LANGUAGE}</text> + <action function="page">settings_language</action> + </object> </template> <template name="console"> diff --git a/gui/theme/watch_mdpi/ui.xml b/gui/theme/watch_mdpi/ui.xml index f47dfa12c..7c7715a2c 100644 --- a/gui/theme/watch_mdpi/ui.xml +++ b/gui/theme/watch_mdpi/ui.xml @@ -193,14 +193,14 @@ <condition var1="tw_no_cpu_temp" var2="1" /> <font resource="font_m" /> <placement x="%indent%" y="%row1_header_y%" /> - <text>TWRP %tw_version%</text> + <text>{@twrp_watch_header=TWRP %tw_version%}</text> </object> <object type="text" color="%text_color%"> <condition var1="tw_no_cpu_temp" var2="0" /> <font resource="font_m" /> <placement x="%indent%" y="%row1_header_y%" /> - <text>CPU: %tw_cpu_temp% °C</text> + <text>{@cpu_temp=CPU: %tw_cpu_temp% °C}</text> </object> <object type="text" color="%text_color%"> @@ -217,7 +217,7 @@ </conditions> <font resource="font_m" /> <placement x="%indent_right%" y="%row1_header_y%" placement="1" /> - <text>Battery: %tw_battery%</text> + <text>{@battery_pct=Battery: %tw_battery%}</text> </object> <object type="fill" color="#000000"> diff --git a/gui/twmsg.cpp b/gui/twmsg.cpp new file mode 100644 index 000000000..00c693150 --- /dev/null +++ b/gui/twmsg.cpp @@ -0,0 +1,129 @@ +/* + Copyright 2015 _that/TeamWin + This file is part of TWRP/TeamWin Recovery Project. + + TWRP is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + TWRP is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with TWRP. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include "../data.hpp" +#include "pages.hpp" +#include "resources.hpp" + +#include "twmsg.h" + +std::string Message::GetFormatString(const std::string& name) const +{ + std::string resname; + size_t pos = name.find('='); + if (pos == std::string::npos) + resname = name; + else + resname = name.substr(0, pos); + + std::string formatstr = resourceLookup(resname); + bool notfound = formatstr.empty() || formatstr[0] == '['; // HACK: TODO: integrate this with resource-not-found logic + if (notfound && pos != std::string::npos) + // resource not found - use the default format string specified after "=" + formatstr = name.substr(pos + 1); + return formatstr; +} + +// Look up in local replacement vars first, if not found then use outer lookup object +class LocalLookup : public StringLookup +{ + const std::vector<std::string>& vars; + const StringLookup& next; + public: + LocalLookup(const std::vector<std::string>& vars, const StringLookup& next) : vars(vars), next(next) {} + virtual std::string operator()(const std::string& name) const + { + if (!name.empty() && isdigit(name[0])) { // {1}..{9} + int i = atoi(name.c_str()); + if (i > 0 && i <= (int)vars.size()) + return vars[i - 1]; + } + return next(name); + } +}; + +// conversion to final string +Message::operator std::string() const +{ + // do resource lookup + std::string str = GetFormatString(name); + + LocalLookup lookup(variables, varLookup); + + // now insert stuff into curly braces + + size_t pos = 0; + while ((pos = str.find('{', pos)) < std::string::npos) { + size_t end = str.find('}', pos); + if (end == std::string::npos) + break; + + std::string varname = str.substr(pos + 1, end - pos - 1); + std::string vartext = lookup(varname); + + str.replace(pos, end - pos + 1, vartext); + } + // TODO: complain about too many or too few numbered replacement variables + return str; +} + +/* +Resource manager lookup +*/ +class ResourceLookup : public StringLookup +{ +public: + virtual std::string operator()(const std::string& name) const + { + const ResourceManager* res = PageManager::GetResources(); + if (res) + return res->FindString(name); + return name; + } +}; +ResourceLookup resourceLookup; + + +/* +DataManager lookup +*/ +class DataLookup : public StringLookup +{ +public: + virtual std::string operator()(const std::string& name) const + { + std::string value; + if (DataManager::GetValue(name, value) == 0) + return value; + else + return ""; + } +}; +DataLookup dataLookup; + + +// Utility functions to create messages. Short names to make usage convenient. +Message Msg(const char* name) +{ + return Message(msg::kNormal, name, resourceLookup, dataLookup); +} + +Message Msg(msg::Kind kind, const char* name) +{ + return Message(kind, name, resourceLookup, dataLookup); +} diff --git a/gui/twmsg.h b/gui/twmsg.h new file mode 100644 index 000000000..cd035d1f5 --- /dev/null +++ b/gui/twmsg.h @@ -0,0 +1,97 @@ +/* + Copyright 2015 _that/TeamWin + This file is part of TWRP/TeamWin Recovery Project. + + TWRP is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + TWRP is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with TWRP. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef twmsg_h +#define twmsg_h + +#include <cstdlib> +#include <cstring> +#include <string> +#include <sstream> +#include <vector> +#include <errno.h> + +/* +Abstract interface for something that can look up strings by name. +*/ +class StringLookup +{ +public: + virtual std::string operator()(const std::string& name) const = 0; + virtual ~StringLookup() {}; +}; + + +namespace msg +{ + // These get translated to colors in the GUI console + enum Kind + { + kNormal, + kHighlight, + kWarning, + kError + }; + + + template<typename T> std::string to_string(const T& v) + { + std::ostringstream ss; + ss << v; + return ss.str(); + } +} + + +/* +Generic message formatting class. +Designed to decouple message generation from actual resource string lookup and variable insertion, +so that messages can be re-translated at any later time. +*/ +class Message +{ + msg::Kind kind; // severity or similar message kind + std::string name; // the resource string name. may be of format "name=default value". + std::vector<std::string> variables; // collected insertion variables to replace {1}, {2}, ... + const StringLookup& resourceLookup; // object to resolve resource string name into a final format string + const StringLookup& varLookup; // object to resolve any non-numeric insertion strings + + std::string GetFormatString(const std::string& name) const; + +public: + Message(msg::Kind kind, const char* name, const StringLookup& resourceLookup, const StringLookup& varLookup) + : kind(kind), name(name), resourceLookup(resourceLookup), varLookup(varLookup) {} + + // Variable insertion. + template<typename T> + Message& operator()(const T& v) { variables.push_back(msg::to_string(v)); return *this; } + + // conversion to final string + operator std::string() const; + + // Get Message Kind + msg::Kind GetKind() {return kind;}; +}; + + +// Utility functions to create messages with standard resource and data manager lookups. +// Short names to make usage convenient. +Message Msg(const char* name); +Message Msg(msg::Kind kind, const char* name); + +#endif |