diff --git a/deluge/ui/web/common.py b/deluge/ui/web/common.py index a47261f5d..334830180 100644 --- a/deluge/ui/web/common.py +++ b/deluge/ui/web/common.py @@ -39,6 +39,17 @@ from deluge import common _ = lambda x: gettext.gettext(x).decode("utf-8") +def escape(text): + """ + Used by the gettext.js template to escape translated strings + so they don't break the script. + """ + text = text.replace("'", "\\'") + text = text.replace('\r\n', '\\n') + text = text.replace('\r', '\\n') + text = text.replace('\n', '\\n') + return text + class Template(MakoTemplate): """ A template that adds some built-ins to the rendering @@ -46,6 +57,7 @@ class Template(MakoTemplate): builtins = { "_": _, + "escape": escape, "version": common.get_version() } diff --git a/deluge/ui/web/gen_gettext.py b/deluge/ui/web/gen_gettext.py index 3c6c1076f..5bae8c005 100644 --- a/deluge/ui/web/gen_gettext.py +++ b/deluge/ui/web/gen_gettext.py @@ -55,6 +55,6 @@ fp = StringIO.StringIO() fp.write(gettext_tpl) for key in keys: fp.write('// %s\n' % ', '.join(map(lambda x: '%s:%s' % x, strings[key]))) - fp.write("GetText.add('%(key)s', '${_(\"%(key)s\").replace(\"'\", \"\\\\'\")}');\n\n" % locals()) + fp.write("GetText.add('%(key)s', '${escape(_(\"%(key)s\"))}')\n\n" % locals()) fp.seek(0) print fp.read() diff --git a/deluge/ui/web/gettext.js b/deluge/ui/web/gettext.js index b4e0fe48e..f590b4a51 100644 --- a/deluge/ui/web/gettext.js +++ b/deluge/ui/web/gettext.js @@ -25,460 +25,703 @@ function _(string) { return GetText.get(string); } -// Deluge.Torrents.js:113 -GetText.add('#', '${_("#").replace("'", "\\'")}'); +// Deluge.Torrents.js:117 +GetText.add('#', '${escape(_("#"))}') -// Deluge.Menus.js:169 -GetText.add('0', '${_("0").replace("'", "\\'")}'); +// Deluge.Menus.js:164 +GetText.add('0', '${escape(_("0"))}') -// Deluge.Menus.js:171 -GetText.add('1', '${_("1").replace("'", "\\'")}'); +// Deluge.Menus.js:166 +GetText.add('1', '${escape(_("1"))}') -// Deluge.Menus.js:117, Deluge.Menus.js:135 -GetText.add('10 KiB/s', '${_("10 KiB/s").replace("'", "\\'")}'); +// Deluge.Menus.js:112, Deluge.Menus.js:130 +GetText.add('10 KiB/s', '${escape(_("10 KiB/s"))}') -// Deluge.Menus.js:153 -GetText.add('100', '${_("100").replace("'", "\\'")}'); +// Deluge.Menus.js:148 +GetText.add('100', '${escape(_("100"))}') -// Deluge.Menus.js:173 -GetText.add('2', '${_("2").replace("'", "\\'")}'); +// Deluge.Menus.js:168 +GetText.add('2', '${escape(_("2"))}') -// Deluge.Menus.js:155 -GetText.add('200', '${_("200").replace("'", "\\'")}'); +// Deluge.Menus.js:150 +GetText.add('200', '${escape(_("200"))}') -// Deluge.Menus.js:175 -GetText.add('3', '${_("3").replace("'", "\\'")}'); +// Deluge.Menus.js:170 +GetText.add('3', '${escape(_("3"))}') -// Deluge.Menus.js:119, Deluge.Menus.js:137 -GetText.add('30 KiB/s', '${_("30 KiB/s").replace("'", "\\'")}'); +// Deluge.Menus.js:114, Deluge.Menus.js:132 +GetText.add('30 KiB/s', '${escape(_("30 KiB/s"))}') -// Deluge.Menus.js:157 -GetText.add('300', '${_("300").replace("'", "\\'")}'); +// Deluge.Menus.js:152 +GetText.add('300', '${escape(_("300"))}') -// Deluge.Menus.js:123, Deluge.Menus.js:141 -GetText.add('300 KiB/s', '${_("300 KiB/s").replace("'", "\\'")}'); +// Deluge.Menus.js:118, Deluge.Menus.js:136 +GetText.add('300 KiB/s', '${escape(_("300 KiB/s"))}') -// Deluge.Menus.js:177 -GetText.add('5', '${_("5").replace("'", "\\'")}'); +// Deluge.Menus.js:172 +GetText.add('5', '${escape(_("5"))}') -// Deluge.Menus.js:115, Deluge.Menus.js:133 -GetText.add('5 KiB/s', '${_("5 KiB/s").replace("'", "\\'")}'); +// Deluge.Menus.js:110, Deluge.Menus.js:128 +GetText.add('5 KiB/s', '${escape(_("5 KiB/s"))}') -// Deluge.Menus.js:151 -GetText.add('50', '${_("50").replace("'", "\\'")}'); +// Deluge.Menus.js:146 +GetText.add('50', '${escape(_("50"))}') -// Deluge.Menus.js:159 -GetText.add('500', '${_("500").replace("'", "\\'")}'); +// Deluge.Menus.js:154 +GetText.add('500', '${escape(_("500"))}') -// Deluge.Menus.js:121, Deluge.Menus.js:139 -GetText.add('80 KiB/s', '${_("80 KiB/s").replace("'", "\\'")}'); +// Deluge.Menus.js:116, Deluge.Menus.js:134 +GetText.add('80 KiB/s', '${escape(_("80 KiB/s"))}') -// Deluge.Toolbar.js:51, Deluge.Add.js:186, Deluge.Add.Url.js:49, Deluge.ConnectionManager.js:112, Deluge.ConnectionManager.js:370, Deluge.Add.File.js:49, Deluge.EditTrackers.js:58, Deluge.EditTrackers.js:237 -GetText.add('Add', '${_("Add").replace("'", "\\'")}'); +// Deluge.Preferences.Queue.js:69 +GetText.add('Active Torrents', '${escape(_("Active Torrents"))}') -// Deluge.ConnectionManager.js:327 -GetText.add('Add Connection', '${_("Add Connection").replace("'", "\\'")}'); +// Deluge.Toolbar.js:51, Deluge.Add.js:381, Deluge.Add.Url.js:54, Deluge.ConnectionManager.js:64, Deluge.ConnectionManager.js:222, Deluge.Add.File.js:54, Deluge.EditTrackers.js:58, Deluge.EditTrackers.js:237 +GetText.add('Add', '${escape(_("Add"))}') -// Deluge.Add.js:168 -GetText.add('Add Torrents', '${_("Add Torrents").replace("'", "\\'")}'); +// Deluge.ConnectionManager.js:52 +GetText.add('Add Connection', '${escape(_("Add Connection"))}') + +// Deluge.Add.js:183 +GetText.add('Add In Paused State', '${escape(_("Add In Paused State"))}') + +// Deluge.Add.js:363 +GetText.add('Add Torrents', '${escape(_("Add Torrents"))}') // Deluge.EditTrackers.js:39 -GetText.add('Add Tracker', '${_("Add Tracker").replace("'", "\\'")}'); +GetText.add('Add Tracker', '${escape(_("Add Tracker"))}') // Deluge.Add.File.js:46 -GetText.add('Add from File', '${_("Add from File").replace("'", "\\'")}'); +GetText.add('Add from File', '${escape(_("Add from File"))}') // Deluge.Add.Url.js:46 -GetText.add('Add from Url', '${_("Add from Url").replace("'", "\\'")}'); +GetText.add('Add from Url', '${escape(_("Add from Url"))}') -// Deluge.Preferences.Downloads.js:56 -GetText.add('Add torrents in Paused state', '${_("Add torrents in Paused state").replace("'", "\\'")}'); +// Deluge.Preferences.Downloads.js:121 +GetText.add('Add torrents in Paused state', '${escape(_("Add torrents in Paused state"))}') -// Deluge.Torrents.js:180 -GetText.add('Added', '${_("Added").replace("'", "\\'")}'); +// Deluge.Torrents.js:184 +GetText.add('Added', '${escape(_("Added"))}') -// Deluge.Preferences.Downloads.js:29 -GetText.add('Allocation', '${_("Allocation").replace("'", "\\'")}'); +// Deluge.Sidebar.js:198 +GetText.add('All', '${escape(_("All"))}') -// Deluge.Preferences.Daemon.js:26 -GetText.add('Allow Remote Connections', '${_("Allow Remote Connections").replace("'", "\\'")}'); +// Deluge.Add.js:113, Deluge.Preferences.Downloads.js:88 +GetText.add('Allocation', '${escape(_("Allocation"))}') -// Deluge.Details.Options.js:343, Deluge.Preferences.js:55 -GetText.add('Apply', '${_("Apply").replace("'", "\\'")}'); +// Deluge.Preferences.Daemon.js:80 +GetText.add('Allow Remote Connections', '${escape(_("Allow Remote Connections"))}') -// Deluge.Details.Options.js:215, Deluge.Menus.js:184 -GetText.add('Auto Managed', '${_("Auto Managed").replace("'", "\\'")}'); +// Deluge.Details.Options.js:347, Deluge.Preferences.js:91 +GetText.add('Apply', '${escape(_("Apply"))}') -// Deluge.Torrents.js:174 -GetText.add('Avail', '${_("Avail").replace("'", "\\'")}'); +// Deluge.Details.Options.js:215, Deluge.Menus.js:179 +GetText.add('Auto Managed', '${escape(_("Auto Managed"))}') -// Deluge.Preferences.Bandwidth.js:3, Deluge.Details.Options.js:89 -GetText.add('Bandwidth', '${_("Bandwidth").replace("'", "\\'")}'); +// Deluge.Preferences.Downloads.js:80 +GetText.add('Autoadd .torrent files from', '${escape(_("Autoadd .torrent files from"))}') -// Deluge.Menus.js:212 -GetText.add('Bottom', '${_("Bottom").replace("'", "\\'")}'); +// Deluge.Torrents.js:178 +GetText.add('Avail', '${escape(_("Avail"))}') -// Deluge.Add.File.js:71 -GetText.add('Browse', '${_("Browse").replace("'", "\\'")}'); +// Deluge.Preferences.Bandwidth.js:39, Deluge.Details.Options.js:88, Deluge.Add.js:143 +GetText.add('Bandwidth', '${escape(_("Bandwidth"))}') -// Deluge.Add.js:185, Deluge.EditTrackers.js:57, Deluge.EditTrackers.js:116, Deluge.EditTrackers.js:178 -GetText.add('Cancel', '${_("Cancel").replace("'", "\\'")}'); +// Deluge.Preferences.Other.js:62 +GetText.add('Be alerted about new releases', '${escape(_("Be alerted about new releases"))}') -// Deluge.Preferences.js:64 -GetText.add('Categories', '${_("Categories").replace("'", "\\'")}'); +// Deluge.Menus.js:207 +GetText.add('Bottom', '${escape(_("Bottom"))}') -// Deluge.Preferences.js:51, Deluge.ConnectionManager.js:62, Deluge.ConnectionManager.js:365 -GetText.add('Close', '${_("Close").replace("'", "\\'")}'); +// Deluge.Add.File.js:69 +GetText.add('Browse', '${escape(_("Browse"))}') -// Deluge.Preferences.Downloads.js:36 -GetText.add('Compact', '${_("Compact").replace("'", "\\'")}'); +// Deluge.Preferences.Cache.js:39 +GetText.add('Cache', '${escape(_("Cache"))}') -// Deluge.ConnectionManager.js:63, Deluge.ConnectionManager.js:272 -GetText.add('Connect', '${_("Connect").replace("'", "\\'")}'); +// Deluge.Preferences.Cache.js:71 +GetText.add('Cache Expiry (seconds)', '${escape(_("Cache Expiry (seconds)"))}') -// Deluge.ConnectionManager.js:197, Deluge.ConnectionManager.js:269 -GetText.add('Connected', '${_("Connected").replace("'", "\\'")}'); +// Deluge.Preferences.Cache.js:59 +GetText.add('Cache Size (16 KiB Blocks)', '${escape(_("Cache Size (16 KiB Blocks)"))}') -// Deluge.Menus.js:147 -GetText.add('Connection Limit', '${_("Connection Limit").replace("'", "\\'")}'); +// Deluge.Remove.js:53, Deluge.Add.js:380, Deluge.EditTrackers.js:57, Deluge.EditTrackers.js:116, Deluge.EditTrackers.js:178 +GetText.add('Cancel', '${escape(_("Cancel"))}') -// Deluge.Toolbar.js:99, Deluge.ConnectionManager.js:50 -GetText.add('Connection Manager', '${_("Connection Manager").replace("'", "\\'")}'); +// Deluge.Preferences.js:55 +GetText.add('Categories', '${escape(_("Categories"))}') -// Deluge.Preferences.Daemon.js:19 -GetText.add('Connections', '${_("Connections").replace("'", "\\'")}'); +// Deluge.Preferences.Interface.js:176 +GetText.add('Certificate', '${escape(_("Certificate"))}') -// Deluge.Preferences.Downloads.js:23 -GetText.add('Copy of .torrent files to', '${_("Copy of .torrent files to").replace("'", "\\'")}'); +// Deluge.Preferences.Interface.js:115 +GetText.add('Change', '${escape(_("Change"))}') + +// Deluge.Preferences.Interface.js:223 +GetText.add('Change Successful', '${escape(_("Change Successful"))}') + +// Deluge.Preferences.js:90, Deluge.ConnectionManager.js:63, Deluge.ConnectionManager.js:171 +GetText.add('Close', '${escape(_("Close"))}') + +// Deluge.Add.js:136, Deluge.Preferences.Downloads.js:99 +GetText.add('Compact', '${escape(_("Compact"))}') + +// Deluge.Preferences.Interface.js:103 +GetText.add('Confirm Password', '${escape(_("Confirm Password"))}') + +// Deluge.ConnectionManager.js:172, Deluge.ConnectionManager.js:284 +GetText.add('Connect', '${escape(_("Connect"))}') + +// Deluge.ConnectionManager.js:277, Deluge.ConnectionManager.js:322 +GetText.add('Connected', '${escape(_("Connected"))}') + +// Deluge.Menus.js:142 +GetText.add('Connection Limit', '${escape(_("Connection Limit"))}') + +// Deluge.Toolbar.js:99, Deluge.ConnectionManager.js:159 +GetText.add('Connection Manager', '${escape(_("Connection Manager"))}') + +// Deluge.Preferences.Daemon.js:72 +GetText.add('Connections', '${escape(_("Connections"))}') + +// Deluge.Add.Url.js:72 +GetText.add('Cookies', '${escape(_("Cookies"))}') + +// Deluge.Preferences.Downloads.js:74 +GetText.add('Copy of .torrent files to', '${escape(_("Copy of .torrent files to"))}') // Deluge.Toolbar.js:44 -GetText.add('Create', '${_("Create").replace("'", "\\'")}'); +GetText.add('Create', '${escape(_("Create"))}') -// Deluge.Menus.js:111 -GetText.add('D/L Speed Limit', '${_("D/L Speed Limit").replace("'", "\\'")}'); +// Deluge.Menus.js:106 +GetText.add('D/L Speed Limit', '${escape(_("D/L Speed Limit"))}') -// Deluge.Preferences.Daemon.js:3 -GetText.add('Daemon', '${_("Daemon").replace("'", "\\'")}'); +// Deluge.Preferences.Proxy.js:202, Deluge.Preferences.Network.js:227 +GetText.add('DHT', '${escape(_("DHT"))}') -// Deluge.Preferences.Daemon.js:13 -GetText.add('Daemon port', '${_("Daemon port").replace("'", "\\'")}'); +// Deluge.Preferences.Daemon.js:39 +GetText.add('Daemon', '${escape(_("Daemon"))}') + +// Deluge.Preferences.Daemon.js:58 +GetText.add('Daemon port', '${escape(_("Daemon port"))}') // Deluge.Details.Details.js:36 -GetText.add('Details', '${_("Details").replace("'", "\\'")}'); +GetText.add('Details', '${escape(_("Details"))}') -// Deluge.ConnectionManager.js:270 -GetText.add('Disconnect', '${_("Disconnect").replace("'", "\\'")}'); +// Deluge.Preferences.Encryption.js:66, Deluge.Preferences.Encryption.js:82 +GetText.add('Disabled', '${escape(_("Disabled"))}') -// Deluge.js:89, Deluge.Menus.js:400 -GetText.add('Do Not Download', '${_("Do Not Download").replace("'", "\\'")}'); +// Deluge.ConnectionManager.js:279 +GetText.add('Disconnect', '${escape(_("Disconnect"))}') -// Deluge.Toolbar.js:86, Deluge.Menus.js:206, Deluge.EditTrackers.js:231 -GetText.add('Down', '${_("Down").replace("'", "\\'")}'); +// Deluge.js:107, Deluge.Menus.js:406 +GetText.add('Do Not Download', '${escape(_("Do Not Download"))}') -// Deluge.Torrents.js:150 -GetText.add('Down Speed', '${_("Down Speed").replace("'", "\\'")}'); +// Deluge.Preferences.Queue.js:116 +GetText.add('Do not count slow torrents', '${escape(_("Do not count slow torrents"))}') -// Deluge.Add.js:88 -GetText.add('Download Location', '${_("Download Location").replace("'", "\\'")}'); +// Deluge.Toolbar.js:86, Deluge.Menus.js:201, Deluge.EditTrackers.js:231 +GetText.add('Down', '${escape(_("Down"))}') -// Deluge.Preferences.Downloads.js:15 -GetText.add('Download to', '${_("Download to").replace("'", "\\'")}'); +// Deluge.Torrents.js:154 +GetText.add('Down Speed', '${escape(_("Down Speed"))}') -// Deluge.Preferences.Downloads.js:3 -GetText.add('Downloads', '${_("Downloads").replace("'", "\\'")}'); +// Deluge.Add.js:93 +GetText.add('Download Location', '${escape(_("Download Location"))}') -// Deluge.Torrents.js:162 -GetText.add('ETA', '${_("ETA").replace("'", "\\'")}'); +// Deluge.Preferences.Downloads.js:63 +GetText.add('Download to', '${escape(_("Download to"))}') + +// Deluge.Preferences.Downloads.js:39 +GetText.add('Downloads', '${escape(_("Downloads"))}') + +// Deluge.Torrents.js:166 +GetText.add('ETA', '${escape(_("ETA"))}') // Deluge.EditTrackers.js:243 -GetText.add('Edit', '${_("Edit").replace("'", "\\'")}'); +GetText.add('Edit', '${escape(_("Edit"))}') // Deluge.EditTrackers.js:98 -GetText.add('Edit Tracker', '${_("Edit Tracker").replace("'", "\\'")}'); +GetText.add('Edit Tracker', '${escape(_("Edit Tracker"))}') -// Deluge.Details.Options.js:325, Deluge.Menus.js:226, Deluge.EditTrackers.js:160 -GetText.add('Edit Trackers', '${_("Edit Trackers").replace("'", "\\'")}'); +// Deluge.Details.Options.js:329, Deluge.Menus.js:221, Deluge.EditTrackers.js:160 +GetText.add('Edit Trackers', '${escape(_("Edit Trackers"))}') -// Deluge.Add.js:361, Deluge.ConnectionManager.js:164, Deluge.ConnectionManager.js:252, Deluge.ConnectionManager.js:287 -GetText.add('Error', '${_("Error").replace("'", "\\'")}'); +// Deluge.Preferences.Encryption.js:98 +GetText.add('Either', '${escape(_("Either"))}') -// Deluge.Menus.js:396 -GetText.add('Expand All', '${_("Expand All").replace("'", "\\'")}'); +// Deluge.Preferences.Plugins.js:83, Deluge.Preferences.Encryption.js:65, Deluge.Preferences.Encryption.js:81 +GetText.add('Enabled', '${escape(_("Enabled"))}') -// Deluge.Add.js:233, Deluge.Add.File.js:68 -GetText.add('File', '${_("File").replace("'", "\\'")}'); +// Deluge.Preferences.Encryption.js:110 +GetText.add('Encrypt entire stream', '${escape(_("Encrypt entire stream"))}') -// Deluge.Details.Files.js:53, Deluge.Add.js:60 -GetText.add('Filename', '${_("Filename").replace("'", "\\'")}'); +// Deluge.Preferences.Encryption.js:39 +GetText.add('Encryption', '${escape(_("Encryption"))}') -// Deluge.Details.Files.js:47, Deluge.Add.js:52 -GetText.add('Files', '${_("Files").replace("'", "\\'")}'); +// Deluge.Add.js:529, Deluge.ConnectionManager.js:128, Deluge.ConnectionManager.js:391, Deluge.ConnectionManager.js:447 +GetText.add('Error', '${escape(_("Error"))}') + +// Deluge.Menus.js:402 +GetText.add('Expand All', '${escape(_("Expand All"))}') + +// Deluge.Add.js:428, Deluge.Add.File.js:66 +GetText.add('File', '${escape(_("File"))}') + +// Deluge.Details.Files.js:53, Deluge.Add.js:62 +GetText.add('Filename', '${escape(_("Filename"))}') + +// Deluge.Details.Files.js:47, Deluge.Add.js:54 +GetText.add('Files', '${escape(_("Files"))}') // Deluge.Sidebar.js:75 -GetText.add('Filters', '${_("Filters").replace("'", "\\'")}'); +GetText.add('Filters', '${escape(_("Filters"))}') -// Deluge.Preferences.Downloads.js:9 -GetText.add('Folders', '${_("Folders").replace("'", "\\'")}'); +// Deluge.Preferences.Plugins.js:117 +GetText.add('Find More', '${escape(_("Find More"))}') -// Deluge.Menus.js:238 -GetText.add('Force Recheck', '${_("Force Recheck").replace("'", "\\'")}'); +// Deluge.Preferences.Downloads.js:53 +GetText.add('Folders', '${escape(_("Folders"))}') -// Deluge.Preferences.Downloads.js:40 -GetText.add('Full', '${_("Full").replace("'", "\\'")}'); +// Deluge.Menus.js:233 +GetText.add('Force Recheck', '${escape(_("Force Recheck"))}') -// Deluge.Details.Options.js:278 -GetText.add('General', '${_("General").replace("'", "\\'")}'); +// Deluge.Preferences.Encryption.js:64, Deluge.Preferences.Encryption.js:80 +GetText.add('Forced', '${escape(_("Forced"))}') -// Deluge.Preferences.Bandwidth.js:10 -GetText.add('Global Bandwidth Usage', '${_("Global Bandwidth Usage").replace("'", "\\'")}'); +// Deluge.Add.js:129, Deluge.Preferences.Downloads.js:100 +GetText.add('Full', '${escape(_("Full"))}') -// Deluge.Toolbar.js:108 -GetText.add('Help', '${_("Help").replace("'", "\\'")}'); +// Deluge.Preferences.Encryption.js:97 +GetText.add('Full Stream', '${escape(_("Full Stream"))}') -// Deluge.Preferences.Interface.js:29 -GetText.add('Hide filters with zero torrents', '${_("Hide filters with zero torrents").replace("'", "\\'")}'); +// Deluge.Details.Options.js:281, Deluge.Add.js:176, Deluge.Preferences.Queue.js:53 +GetText.add('General', '${escape(_("General"))}') -// Deluge.js:91, Deluge.Menus.js:410 -GetText.add('High Priority', '${_("High Priority").replace("'", "\\'")}'); +// Deluge.Preferences.Other.js:92 +GetText.add('GeoIP Database', '${escape(_("GeoIP Database"))}') -// Deluge.js:92, Deluge.Menus.js:415 -GetText.add('Highest Priority', '${_("Highest Priority").replace("'", "\\'")}'); +// Deluge.Preferences.Bandwidth.js:53 +GetText.add('Global Bandwidth Usage', '${escape(_("Global Bandwidth Usage"))}') -// Deluge.ConnectionManager.js:84, Deluge.ConnectionManager.js:335 -GetText.add('Host', '${_("Host").replace("'", "\\'")}'); +// Deluge.Preferences.Proxy.js:61 +GetText.add('HTTP', '${escape(_("HTTP"))}') -// Deluge.Preferences.Bandwidth.js:57 -GetText.add('Ignore limits on local network', '${_("Ignore limits on local network").replace("'", "\\'")}'); +// Deluge.Preferences.Proxy.js:62 +GetText.add('HTTP with Auth', '${escape(_("HTTP with Auth"))}') -// Deluge.Add.js:246 -GetText.add('Infohash', '${_("Infohash").replace("'", "\\'")}'); +// Deluge.Preferences.Encryption.js:96 +GetText.add('Handshake', '${escape(_("Handshake"))}') -// Deluge.Preferences.Interface.js:3 -GetText.add('Interface', '${_("Interface").replace("'", "\\'")}'); +// Deluge.Toolbar.js:107 +GetText.add('Help', '${escape(_("Help"))}') -// Deluge.Details.Options.js:115, Deluge.Details.Options.js:142 -GetText.add('KiB/s', '${_("KiB/s").replace("'", "\\'")}'); +// Deluge.js:109, Deluge.Menus.js:416 +GetText.add('High Priority', '${escape(_("High Priority"))}') + +// Deluge.js:110, Deluge.Menus.js:421 +GetText.add('Highest Priority', '${escape(_("Highest Priority"))}') + +// Deluge.Preferences.Proxy.js:73, Deluge.ConnectionManager.js:77, Deluge.ConnectionManager.js:193 +GetText.add('Host', '${escape(_("Host"))}') + +// Deluge.Preferences.Bandwidth.js:144 +GetText.add('Ignore limits on local network', '${escape(_("Ignore limits on local network"))}') + +// Deluge.Preferences.Encryption.js:58 +GetText.add('Inbound', '${escape(_("Inbound"))}') + +// Deluge.Preferences.Network.js:53 +GetText.add('Incoming Ports', '${escape(_("Incoming Ports"))}') + +// Deluge.Preferences.Plugins.js:128 +GetText.add('Info', '${escape(_("Info"))}') + +// Deluge.Add.js:441 +GetText.add('Infohash', '${escape(_("Infohash"))}') + +// Deluge.Preferences.Plugins.js:112 +GetText.add('Install', '${escape(_("Install"))}') + +// Deluge.Preferences.Interface.js:39, Deluge.Preferences.Interface.js:54 +GetText.add('Interface', '${escape(_("Interface"))}') + +// Deluge.Preferences.Interface.js:198 +GetText.add('Invalid Password', '${escape(_("Invalid Password"))}') + +// Deluge.Details.Options.js:114, Deluge.Details.Options.js:141 +GetText.add('KiB/s', '${escape(_("KiB/s"))}') + +// Deluge.Preferences.Network.js:221 +GetText.add('LSD', '${escape(_("LSD"))}') + +// Deluge.Preferences.Encryption.js:90 +GetText.add('Level', '${escape(_("Level"))}') // Deluge.Details.Status.js:57, Deluge.Details.Details.js:43 -GetText.add('Loading', '${_("Loading").replace("'", "\\'")}'); +GetText.add('Loading', '${escape(_("Loading"))}') -// Deluge.Login.js:52, Deluge.Login.js:65 -GetText.add('Login', '${_("Login").replace("'", "\\'")}'); +// Deluge.Preferences.Other.js:99 +GetText.add('Location', '${escape(_("Location"))}') -// Deluge.Login.js:107 -GetText.add('Login Failed', '${_("Login Failed").replace("'", "\\'")}'); +// Deluge.Login.js:52, Deluge.Login.js:63 +GetText.add('Login', '${escape(_("Login"))}') -// Deluge.Toolbar.js:116 -GetText.add('Logout', '${_("Logout").replace("'", "\\'")}'); +// Deluge.Login.js:139 +GetText.add('Login Failed', '${escape(_("Login Failed"))}') -// Deluge.Details.Options.js:151 -GetText.add('Max Connections', '${_("Max Connections").replace("'", "\\'")}'); +// Deluge.Toolbar.js:115 +GetText.add('Logout', '${escape(_("Logout"))}') -// Deluge.Details.Options.js:98 -GetText.add('Max Download Speed', '${_("Max Download Speed").replace("'", "\\'")}'); +// Deluge.Details.Options.js:150, Deluge.Add.js:163 +GetText.add('Max Connections', '${escape(_("Max Connections"))}') -// Deluge.Details.Options.js:174 -GetText.add('Max Upload Slots', '${_("Max Upload Slots").replace("'", "\\'")}'); +// Deluge.Add.js:151 +GetText.add('Max Down Speed', '${escape(_("Max Down Speed"))}') -// Deluge.Details.Options.js:124 -GetText.add('Max Upload Speed', '${_("Max Upload Speed").replace("'", "\\'")}'); +// Deluge.Details.Options.js:97 +GetText.add('Max Download Speed', '${escape(_("Max Download Speed"))}') -// Deluge.Preferences.Bandwidth.js:42 -GetText.add('Maximum Connection Attempts per Second', '${_("Maximum Connection Attempts per Second").replace("'", "\\'")}'); +// Deluge.Add.js:157 +GetText.add('Max Up Speed', '${escape(_("Max Up Speed"))}') -// Deluge.Preferences.Bandwidth.js:17, Deluge.Preferences.Bandwidth.js:76 -GetText.add('Maximum Connections', '${_("Maximum Connections").replace("'", "\\'")}'); +// Deluge.Details.Options.js:173, Deluge.Add.js:169 +GetText.add('Max Upload Slots', '${escape(_("Max Upload Slots"))}') -// Deluge.Preferences.Bandwidth.js:27, Deluge.Preferences.Bandwidth.js:86 -GetText.add('Maximum Download Speed (KiB/s)', '${_("Maximum Download Speed (KiB/s)").replace("'", "\\'")}'); +// Deluge.Details.Options.js:123 +GetText.add('Max Upload Speed', '${escape(_("Max Upload Speed"))}') -// Deluge.Preferences.Bandwidth.js:37 -GetText.add('Maximum Half-Open Connections', '${_("Maximum Half-Open Connections").replace("'", "\\'")}'); +// Deluge.Preferences.Bandwidth.js:121 +GetText.add('Maximum Connection Attempts per Second', '${escape(_("Maximum Connection Attempts per Second"))}') -// Deluge.Preferences.Bandwidth.js:22, Deluge.Preferences.Bandwidth.js:81 -GetText.add('Maximum Upload Slots', '${_("Maximum Upload Slots").replace("'", "\\'")}'); +// Deluge.Preferences.Bandwidth.js:61, Deluge.Preferences.Bandwidth.js:164 +GetText.add('Maximum Connections', '${escape(_("Maximum Connections"))}') -// Deluge.Preferences.Bandwidth.js:32, Deluge.Preferences.Bandwidth.js:91 -GetText.add('Maximum Upload Speed (KiB/s)', '${_("Maximum Upload Speed (KiB/s)").replace("'", "\\'")}'); +// Deluge.Preferences.Bandwidth.js:85, Deluge.Preferences.Bandwidth.js:188 +GetText.add('Maximum Download Speed (KiB/s)', '${escape(_("Maximum Download Speed (KiB/s)"))}') -// Deluge.Details.Options.js:259 -GetText.add('Move Completed', '${_("Move Completed").replace("'", "\\'")}'); +// Deluge.Preferences.Bandwidth.js:109 +GetText.add('Maximum Half-Open Connections', '${escape(_("Maximum Half-Open Connections"))}') -// Deluge.Menus.js:244 -GetText.add('Move Storage', '${_("Move Storage").replace("'", "\\'")}'); +// Deluge.Preferences.Bandwidth.js:73, Deluge.Preferences.Bandwidth.js:176 +GetText.add('Maximum Upload Slots', '${escape(_("Maximum Upload Slots"))}') -// Deluge.Preferences.Downloads.js:19 -GetText.add('Move completed to', '${_("Move completed to").replace("'", "\\'")}'); +// Deluge.Preferences.Bandwidth.js:97, Deluge.Preferences.Bandwidth.js:200 +GetText.add('Maximum Upload Speed (KiB/s)', '${escape(_("Maximum Upload Speed (KiB/s)"))}') -// Deluge.Torrents.js:120 -GetText.add('Name', '${_("Name").replace("'", "\\'")}'); +// Deluge.Details.Options.js:262 +GetText.add('Move Completed', '${escape(_("Move Completed"))}') -// Deluge.Preferences.Network.js:1 -GetText.add('Network', '${_("Network").replace("'", "\\'")}'); +// Deluge.Menus.js:239 +GetText.add('Move Storage', '${escape(_("Move Storage"))}') -// Deluge.js:90, Deluge.Menus.js:405 -GetText.add('Normal Priority', '${_("Normal Priority").replace("'", "\\'")}'); +// Deluge.Preferences.Downloads.js:68 +GetText.add('Move completed to', '${escape(_("Move completed to"))}') + +// Deluge.Preferences.Network.js:207 +GetText.add('NAT-PMP', '${escape(_("NAT-PMP"))}') + +// Deluge.Torrents.js:124 +GetText.add('Name', '${escape(_("Name"))}') + +// Deluge.Preferences.Network.js:40 +GetText.add('Network', '${escape(_("Network"))}') + +// Deluge.Preferences.Network.js:190 +GetText.add('Network Extras', '${escape(_("Network Extras"))}') + +// Deluge.Preferences.Network.js:159 +GetText.add('Network Interface', '${escape(_("Network Interface"))}') + +// Deluge.Preferences.Interface.js:99 +GetText.add('New Password', '${escape(_("New Password"))}') + +// Deluge.Preferences.Proxy.js:57 +GetText.add('None', '${escape(_("None"))}') + +// Deluge.js:108, Deluge.Menus.js:411 +GetText.add('Normal Priority', '${escape(_("Normal Priority"))}') // Deluge.Statusbar.js:7 -GetText.add('Not Connected', '${_("Not Connected").replace("'", "\\'")}'); +GetText.add('Not Connected', '${escape(_("Not Connected"))}') -// Deluge.Add.js:362 -GetText.add('Not a valid torrent', '${_("Not a valid torrent").replace("'", "\\'")}'); +// Deluge.Add.js:530 +GetText.add('Not a valid torrent', '${escape(_("Not a valid torrent"))}') // Deluge.Preferences.Notification.js:1 -GetText.add('Notification', '${_("Notification").replace("'", "\\'")}'); +GetText.add('Notification', '${escape(_("Notification"))}') -// Deluge.Preferences.js:57, Deluge.EditTrackers.js:179 -GetText.add('Ok', '${_("Ok").replace("'", "\\'")}'); +// Deluge.ConnectionManager.js:280, Deluge.ConnectionManager.js:288 +GetText.add('Offline', '${escape(_("Offline"))}') -// Deluge.Details.Options.js:50, Deluge.Add.js:81, Deluge.Menus.js:107, Deluge.Preferences.Downloads.js:45 -GetText.add('Options', '${_("Options").replace("'", "\\'")}'); +// Deluge.Preferences.js:92, Deluge.EditTrackers.js:179 +GetText.add('Ok', '${escape(_("Ok"))}') -// Deluge.Menus.js:291, Deluge.Menus.js:338, Deluge.Menus.js:385, Deluge.Preferences.Other.js:1, Deluge.Preferences.Daemon.js:32 -GetText.add('Other', '${_("Other").replace("'", "\\'")}'); +// Deluge.Preferences.Interface.js:95 +GetText.add('Old Password', '${escape(_("Old Password"))}') -// Deluge.Preferences.Interface.js:35, Deluge.Login.js:77, Deluge.ConnectionManager.js:357 -GetText.add('Password', '${_("Password").replace("'", "\\'")}'); +// Deluge.Details.Options.js:50, Deluge.Add.js:84, Deluge.Menus.js:102, Deluge.Preferences.Downloads.js:107 +GetText.add('Options', '${escape(_("Options"))}') -// Deluge.Toolbar.js:65, Deluge.Menus.js:95 -GetText.add('Pause', '${_("Pause").replace("'", "\\'")}'); +// Deluge.Menus.js:297, Deluge.Menus.js:344, Deluge.Menus.js:391, Deluge.Preferences.Other.js:39, Deluge.Preferences.Daemon.js:87 +GetText.add('Other', '${escape(_("Other"))}') -// Deluge.Torrents.js:144, Deluge.Details.Peers.js:64 -GetText.add('Peers', '${_("Peers").replace("'", "\\'")}'); +// Deluge.Preferences.Encryption.js:74 +GetText.add('Outbound', '${escape(_("Outbound"))}') -// Deluge.Preferences.Bandwidth.js:70 -GetText.add('Per Torrent Bandwidth Usage', '${_("Per Torrent Bandwidth Usage").replace("'", "\\'")}'); +// Deluge.Preferences.Network.js:107 +GetText.add('Outgoing Ports', '${escape(_("Outgoing Ports"))}') -// Deluge.Preferences.Daemon.js:40 -GetText.add('Periodically check the website for new releases', '${_("Periodically check the website for new releases").replace("'", "\\'")}'); +// Deluge.Preferences.Proxy.js:100, Deluge.Preferences.Interface.js:82, Deluge.Preferences.Interface.js:213, Deluge.Login.js:75, Deluge.ConnectionManager.js:109 +GetText.add('Password', '${escape(_("Password"))}') -// Deluge.Preferences.Plugins.js:1 -GetText.add('Plugins', '${_("Plugins").replace("'", "\\'")}'); +// Deluge.Toolbar.js:65, Deluge.Menus.js:90 +GetText.add('Pause', '${escape(_("Pause"))}') -// Deluge.Preferences.Daemon.js:9, Deluge.ConnectionManager.js:341 -GetText.add('Port', '${_("Port").replace("'", "\\'")}'); +// Deluge.Preferences.Proxy.js:184 +GetText.add('Peer', '${escape(_("Peer"))}') -// Deluge.Toolbar.js:92, Deluge.Preferences.js:48 -GetText.add('Preferences', '${_("Preferences").replace("'", "\\'")}'); +// Deluge.Preferences.Network.js:214 +GetText.add('Peer Exchange', '${escape(_("Peer Exchange"))}') -// Deluge.Details.Options.js:292 -GetText.add('Prioritize First/Last', '${_("Prioritize First/Last").replace("'", "\\'")}'); +// Deluge.Preferences.Network.js:183 +GetText.add('Peer TOS Byte', '${escape(_("Peer TOS Byte"))}') -// Deluge.Preferences.Downloads.js:52 -GetText.add('Prioritize first and last pieces of torrent', '${_("Prioritize first and last pieces of torrent").replace("'", "\\'")}'); +// Deluge.Torrents.js:148, Deluge.Details.Peers.js:64 +GetText.add('Peers', '${escape(_("Peers"))}') + +// Deluge.Preferences.Bandwidth.js:156 +GetText.add('Per Torrent Bandwidth Usage', '${escape(_("Per Torrent Bandwidth Usage"))}') + +// Deluge.Preferences.Daemon.js:96 +GetText.add('Periodically check the website for new releases', '${escape(_("Periodically check the website for new releases"))}') + +// Deluge.Preferences.Plugins.js:90 +GetText.add('Plugin', '${escape(_("Plugin"))}') + +// Deluge.Preferences.Plugins.js:39 +GetText.add('Plugins', '${escape(_("Plugins"))}') + +// Deluge.Preferences.Proxy.js:80, Deluge.Preferences.Daemon.js:53, Deluge.Preferences.Interface.js:148, Deluge.ConnectionManager.js:85 +GetText.add('Port', '${escape(_("Port"))}') + +// Deluge.Toolbar.js:92, Deluge.Preferences.js:50 +GetText.add('Preferences', '${escape(_("Preferences"))}') + +// Deluge.Details.Options.js:296 +GetText.add('Prioritize First/Last', '${escape(_("Prioritize First/Last"))}') + +// Deluge.Add.js:189 +GetText.add('Prioritize First/Last Pieces', '${escape(_("Prioritize First/Last Pieces"))}') + +// Deluge.Preferences.Downloads.js:116 +GetText.add('Prioritize first and last pieces of torrent', '${escape(_("Prioritize first and last pieces of torrent"))}') // Deluge.Details.Files.js:67 -GetText.add('Priority', '${_("Priority").replace("'", "\\'")}'); +GetText.add('Priority', '${escape(_("Priority"))}') -// Deluge.Details.Options.js:285 -GetText.add('Private', '${_("Private").replace("'", "\\'")}'); +// Deluge.Details.Options.js:288 +GetText.add('Private', '${escape(_("Private"))}') -// Deluge.Details.Files.js:62, Deluge.Torrents.js:132 -GetText.add('Progress', '${_("Progress").replace("'", "\\'")}'); +// Deluge.Preferences.Interface.js:169 +GetText.add('Private Key', '${escape(_("Private Key"))}') -// Deluge.Preferences.Proxy.js:2 -GetText.add('Proxy', '${_("Proxy").replace("'", "\\'")}'); +// Deluge.Details.Files.js:62, Deluge.Torrents.js:136 +GetText.add('Progress', '${escape(_("Progress"))}') -// Deluge.Details.Options.js:197, Deluge.Menus.js:189, Deluge.Preferences.Queue.js:2 -GetText.add('Queue', '${_("Queue").replace("'", "\\'")}'); +// Deluge.Preferences.Proxy.js:175 +GetText.add('Proxy', '${escape(_("Proxy"))}') -// Deluge.Preferences.Bandwidth.js:64 -GetText.add('Rate limit IP overhead', '${_("Rate limit IP overhead").replace("'", "\\'")}'); +// Deluge.Details.Options.js:196, Deluge.Menus.js:184, Deluge.Preferences.Queue.js:39 +GetText.add('Queue', '${escape(_("Queue"))}') -// Deluge.Torrents.js:168 -GetText.add('Ratio', '${_("Ratio").replace("'", "\\'")}'); +// Deluge.Preferences.Queue.js:62 +GetText.add('Queue new torrents to top', '${escape(_("Queue new torrents to top"))}') -// Deluge.Toolbar.js:58, Deluge.Add.js:252, Deluge.ConnectionManager.js:119, Deluge.EditTrackers.js:249 -GetText.add('Remove', '${_("Remove").replace("'", "\\'")}'); +// Deluge.Preferences.Bandwidth.js:150 +GetText.add('Rate limit IP overhead', '${escape(_("Rate limit IP overhead"))}') -// Deluge.Menus.js:232 -GetText.add('Remove Torrent', '${_("Remove Torrent").replace("'", "\\'")}'); +// Deluge.Torrents.js:172 +GetText.add('Ratio', '${escape(_("Ratio"))}') -// Deluge.Details.Options.js:250 -GetText.add('Remove at ratio', '${_("Remove at ratio").replace("'", "\\'")}'); +// Deluge.Remove.js:54, Deluge.Toolbar.js:58, Deluge.Add.js:447, Deluge.ConnectionManager.js:229, Deluge.EditTrackers.js:249 +GetText.add('Remove', '${escape(_("Remove"))}') -// Deluge.Toolbar.js:72, Deluge.Menus.js:101 -GetText.add('Resume', '${_("Resume").replace("'", "\\'")}'); +// Deluge.Remove.js:38, Deluge.Menus.js:227 +GetText.add('Remove Torrent', '${escape(_("Remove Torrent"))}') + +// Deluge.Details.Options.js:253 +GetText.add('Remove at ratio', '${escape(_("Remove at ratio"))}') + +// Deluge.Preferences.Queue.js:208 +GetText.add('Remove torrent when share ratio is reached', '${escape(_("Remove torrent when share ratio is reached"))}') + +// Deluge.Remove.js:55 +GetText.add('Remove with data', '${escape(_("Remove with data"))}') + +// Deluge.Toolbar.js:72, Deluge.Menus.js:96 +GetText.add('Resume', '${escape(_("Resume"))}') // Deluge.EditTrackers.js:117 -GetText.add('Save', '${_("Save").replace("'", "\\'")}'); +GetText.add('Save', '${escape(_("Save"))}') -// Deluge.Torrents.js:138 -GetText.add('Seeders', '${_("Seeders").replace("'", "\\'")}'); +// Deluge.Preferences.Queue.js:153 +GetText.add('Seed Time (m)', '${escape(_("Seed Time (m)"))}') -// Deluge.Add.File.js:67 -GetText.add('Select a torrent', '${_("Select a torrent").replace("'", "\\'")}'); +// Deluge.Torrents.js:142 +GetText.add('Seeders', '${escape(_("Seeders"))}') -// Deluge.Preferences.Interface.js:16 -GetText.add('Show session speed in titlebar', '${_("Show session speed in titlebar").replace("'", "\\'")}'); +// Deluge.Preferences.Queue.js:122 +GetText.add('Seeding', '${escape(_("Seeding"))}') -// Deluge.Preferences.Interface.js:22 -GetText.add('Sidebar', '${_("Sidebar").replace("'", "\\'")}'); +// Deluge.Add.File.js:65 +GetText.add('Select a torrent', '${escape(_("Select a torrent"))}') -// Deluge.Details.Files.js:57, Deluge.Torrents.js:126, Deluge.Add.js:64 -GetText.add('Size', '${_("Size").replace("'", "\\'")}'); +// Deluge.Preferences.Interface.js:127 +GetText.add('Server', '${escape(_("Server"))}') + +// Deluge.Preferences.Interface.js:138 +GetText.add('Session Timeout', '${escape(_("Session Timeout"))}') + +// Deluge.Preferences.Cache.js:53, Deluge.Preferences.Encryption.js:53 +GetText.add('Settings', '${escape(_("Settings"))}') + +// Deluge.Preferences.Queue.js:129 +GetText.add('Share Ratio Limit', '${escape(_("Share Ratio Limit"))}') + +// Deluge.Preferences.Queue.js:141 +GetText.add('Share Time Ratio', '${escape(_("Share Time Ratio"))}') + +// Deluge.Preferences.Interface.js:70 +GetText.add('Show filters with zero torrents', '${escape(_("Show filters with zero torrents"))}') + +// Deluge.Preferences.Interface.js:64 +GetText.add('Show session speed in titlebar', '${escape(_("Show session speed in titlebar"))}') + +// Deluge.Preferences.Interface.js:76 +GetText.add('Show trackers with zero torrents', '${escape(_("Show trackers with zero torrents"))}') + +// Deluge.Details.Files.js:57, Deluge.Torrents.js:130, Deluge.Add.js:66 +GetText.add('Size', '${escape(_("Size"))}') + +// Deluge.Preferences.Proxy.js:58 +GetText.add('Socksv4', '${escape(_("Socksv4"))}') + +// Deluge.Preferences.Proxy.js:59 +GetText.add('Socksv5', '${escape(_("Socksv5"))}') + +// Deluge.Preferences.Proxy.js:60 +GetText.add('Socksv5 with Auth', '${escape(_("Socksv5 with Auth"))}') + +// Deluge.ConnectionManager.js:291 +GetText.add('Start Daemon', '${escape(_("Start Daemon"))}') // Deluge.Sidebar.js:37 -GetText.add('State', '${_("State").replace("'", "\\'")}'); +GetText.add('State', '${escape(_("State"))}') -// Deluge.Details.Status.js:35, Deluge.ConnectionManager.js:77 -GetText.add('Status', '${_("Status").replace("'", "\\'")}'); +// Deluge.Details.Status.js:35, Deluge.ConnectionManager.js:186 +GetText.add('Status', '${escape(_("Status"))}') -// Deluge.ConnectionManager.js:126 -GetText.add('Stop Daemon', '${_("Stop Daemon").replace("'", "\\'")}'); +// Deluge.ConnectionManager.js:237, Deluge.ConnectionManager.js:297, Deluge.ConnectionManager.js:415 +GetText.add('Stop Daemon', '${escape(_("Stop Daemon"))}') // Deluge.Details.Options.js:225 -GetText.add('Stop seed at ratio', '${_("Stop seed at ratio").replace("'", "\\'")}'); +GetText.add('Stop seed at ratio', '${escape(_("Stop seed at ratio"))}') + +// Deluge.Preferences.Queue.js:182 +GetText.add('Stop seeding when share ratio reaches:', '${escape(_("Stop seeding when share ratio reaches:"))}') + +// Deluge.Preferences.Other.js:68 +GetText.add('System Information', '${escape(_("System Information"))}') + +// Deluge.Preferences.Network.js:175 +GetText.add('TOS', '${escape(_("TOS"))}') // Deluge.EditTrackers.js:198 -GetText.add('Tier', '${_("Tier").replace("'", "\\'")}'); +GetText.add('Tier', '${escape(_("Tier"))}') -// Deluge.Menus.js:194 -GetText.add('Top', '${_("Top").replace("'", "\\'")}'); +// Deluge.Menus.js:189 +GetText.add('Top', '${escape(_("Top"))}') -// Deluge.Torrents.js:186, Deluge.EditTrackers.js:126, Deluge.EditTrackers.js:205 -GetText.add('Tracker', '${_("Tracker").replace("'", "\\'")}'); +// Deluge.Preferences.Queue.js:76 +GetText.add('Total Active', '${escape(_("Total Active"))}') + +// Deluge.Preferences.Queue.js:88 +GetText.add('Total Active Downloading', '${escape(_("Total Active Downloading"))}') + +// Deluge.Preferences.Queue.js:100 +GetText.add('Total Active Seeding', '${escape(_("Total Active Seeding"))}') + +// Deluge.Preferences.Proxy.js:196, Deluge.Torrents.js:190, Deluge.EditTrackers.js:126, Deluge.EditTrackers.js:205 +GetText.add('Tracker', '${escape(_("Tracker"))}') // Deluge.Sidebar.js:38 -GetText.add('Tracker Host', '${_("Tracker Host").replace("'", "\\'")}'); +GetText.add('Tracker Host', '${escape(_("Tracker Host"))}') // Deluge.EditTrackers.js:67 -GetText.add('Trackers', '${_("Trackers").replace("'", "\\'")}'); +GetText.add('Trackers', '${escape(_("Trackers"))}') -// Deluge.Menus.js:129 -GetText.add('U/L Speed Limit', '${_("U/L Speed Limit").replace("'", "\\'")}'); +// Deluge.Preferences.Proxy.js:50 +GetText.add('Type', '${escape(_("Type"))}') -// Deluge.Menus.js:125, Deluge.Menus.js:143, Deluge.Menus.js:161, Deluge.Menus.js:179, Deluge.Menus.js:285, Deluge.Menus.js:332, Deluge.Menus.js:379 -GetText.add('Unlimited', '${_("Unlimited").replace("'", "\\'")}'); +// Deluge.Menus.js:124 +GetText.add('U/L Speed Limit', '${escape(_("U/L Speed Limit"))}') -// Deluge.Toolbar.js:79, Deluge.Menus.js:200, Deluge.EditTrackers.js:225 -GetText.add('Up', '${_("Up").replace("'", "\\'")}'); +// Deluge.Preferences.Network.js:201 +GetText.add('UPnP', '${escape(_("UPnP"))}') -// Deluge.Torrents.js:156 -GetText.add('Up Speed', '${_("Up Speed").replace("'", "\\'")}'); +// Deluge.Menus.js:120, Deluge.Menus.js:138, Deluge.Menus.js:156, Deluge.Menus.js:174, Deluge.Menus.js:291, Deluge.Menus.js:338, Deluge.Menus.js:385 +GetText.add('Unlimited', '${escape(_("Unlimited"))}') -// Deluge.Menus.js:220 -GetText.add('Update Tracker', '${_("Update Tracker").replace("'", "\\'")}'); +// Deluge.Toolbar.js:79, Deluge.Menus.js:195, Deluge.EditTrackers.js:225 +GetText.add('Up', '${escape(_("Up"))}') -// Deluge.Menus.js:165 -GetText.add('Upload Slot Limit', '${_("Upload Slot Limit").replace("'", "\\'")}'); +// Deluge.Torrents.js:160 +GetText.add('Up Speed', '${escape(_("Up Speed"))}') -// Deluge.Add.File.js:82 -GetText.add('Uploading your torrent...', '${_("Uploading your torrent...").replace("'", "\\'")}'); +// Deluge.Menus.js:215 +GetText.add('Update Tracker', '${escape(_("Update Tracker"))}') -// Deluge.Add.js:239, Deluge.Add.Url.js:64 -GetText.add('Url', '${_("Url").replace("'", "\\'")}'); +// Deluge.Preferences.Other.js:53 +GetText.add('Updates', '${escape(_("Updates"))}') -// Deluge.ConnectionManager.js:351 -GetText.add('Username', '${_("Username").replace("'", "\\'")}'); +// Deluge.Menus.js:160 +GetText.add('Upload Slot Limit', '${escape(_("Upload Slot Limit"))}') -// Deluge.ConnectionManager.js:90 -GetText.add('Version', '${_("Version").replace("'", "\\'")}'); +// Deluge.Add.File.js:80 +GetText.add('Uploading your torrent...', '${escape(_("Uploading your torrent..."))}') -// Deluge.Preferences.Interface.js:9 -GetText.add('Window', '${_("Window").replace("'", "\\'")}'); +// Deluge.Add.js:434, Deluge.Add.Url.js:64 +GetText.add('Url', '${escape(_("Url"))}') -// Deluge.Login.js:108 -GetText.add('You entered an incorrect password', '${_("You entered an incorrect password").replace("'", "\\'")}'); +// Deluge.Preferences.Network.js:62, Deluge.Preferences.Network.js:116 +GetText.add('Use Random Ports', '${escape(_("Use Random Ports"))}') + +// Deluge.Preferences.Interface.js:161 +GetText.add('Use SSL (paths relative to the Deluge config folder)', '${escape(_("Use SSL (paths relative to the Deluge config folder)"))}') + +// Deluge.Preferences.Proxy.js:93, Deluge.ConnectionManager.js:101 +GetText.add('Username', '${escape(_("Username"))}') + +// Deluge.ConnectionManager.js:199 +GetText.add('Version', '${escape(_("Version"))}') + +// Deluge.Preferences.Proxy.js:190 +GetText.add('Web Seed', '${escape(_("Web Seed"))}') + +// Deluge.Preferences.Other.js:85 +GetText.add('Yes, please send anonymous statistics', '${escape(_("Yes, please send anonymous statistics"))}') + +// Deluge.Login.js:140 +GetText.add('You entered an incorrect password', '${escape(_("You entered an incorrect password"))}') + +// Deluge.Preferences.Interface.js:214 +GetText.add('Your old password was incorrect!', '${escape(_("Your old password was incorrect!"))}') + +// Deluge.Preferences.Interface.js:224 +GetText.add('Your password was successfully changed!', '${escape(_("Your password was successfully changed!"))}') + +// Deluge.Preferences.Interface.js:199 +GetText.add('Your passwords don\'t match!', '${escape(_("Your passwords don\'t match!"))}')