Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Déjà Dup Backups
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
23
Issues
23
List
Boards
Labels
Milestones
Launchpad Bugs
Launchpad Bugs
Merge Requests
4
Merge Requests
4
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
External Wiki
External Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
World
Déjà Dup Backups
Commits
984b7ede
Commit
984b7ede
authored
Aug 02, 2017
by
Michael Terry
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Don't run scheduled backups if the connection is metered. Fixes LP: #430150
parent
02f9b83b
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
168 additions
and
136 deletions
+168
-136
data/org.gnome.DejaDup.gschema.xml
data/org.gnome.DejaDup.gschema.xml
+5
-0
deja-dup/help/deja-dup.pot
deja-dup/help/deja-dup.pot
+1
-1
deja-dup/monitor/monitor.vala
deja-dup/monitor/monitor.vala
+19
-4
libdeja/BackendFile.vala
libdeja/BackendFile.vala
+0
-3
libdeja/CommonUtils.vala
libdeja/CommonUtils.vala
+1
-0
libdeja/Network.vala
libdeja/Network.vala
+14
-13
libdeja/Operation.vala
libdeja/Operation.vala
+0
-2
libdeja/tests/unit/network.vala
libdeja/tests/unit/network.vala
+3
-3
meson.build
meson.build
+2
-2
po/deja-dup.pot
po/deja-dup.pot
+123
-108
No files found.
data/org.gnome.DejaDup.gschema.xml
View file @
984b7ede
...
...
@@ -61,6 +61,11 @@
<summary>
How long to wait between full backups
</summary>
<description>
Déjà Dup needs to occasionally make fresh full backups. This is the number of days to wait between full backups.
</description>
</key>
<key
name=
"allow-metered"
type=
"b"
>
<default>
false
</default>
<summary>
Whether to use metered networks
</summary>
<description>
If false, Déjà Dup will refuse to run scheduled backups over metered network connections (like 4G).
</description>
</key>
<key
name=
"backend"
type=
"s"
>
<choices>
<choice
value=
'auto'
/>
...
...
deja-dup/help/deja-dup.pot
View file @
984b7ede
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2017-08-02
13:45
-0400\n"
"POT-Creation-Date: 2017-08-02
23:17
-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
...
...
deja-dup/monitor/monitor.vala
View file @
984b7ede
...
...
@@ -35,10 +35,16 @@ const OptionEntry[] options = {
{
null
}
};
static
bool
valid_network
()
{
var
network
=
DejaDup
.
Network
.
get
();
return
network
.
connected
&&
!
network
.
metered
;
}
static
bool
network_check
()
{
reactive_check
=
true
;
if
(
DejaDup
.
Network
.
get
().
connected
)
if
(
valid_network
()
)
prepare_next_run
();
// in case network manager was blocking us
reactive_check
=
false
;
return
false
;
...
...
@@ -51,7 +57,7 @@ static void network_changed()
// LP bug 805140) we don't error out too soon.
if
(
netcheck_id
>
0
)
Source
.
remove
(
netcheck_id
);
if
(
DejaDup
.
Network
.
get
().
connected
)
if
(
valid_network
()
)
netcheck_id
=
Timeout
.
add_seconds
(
120
,
network_check
);
}
...
...
@@ -69,7 +75,16 @@ static async bool is_ready(out string when)
when
=
"Testing"
;
return
false
;
}
return
yield
DejaDup
.
Backend
.
get_default
().
is_ready
(
out
when
);
var
backend
=
DejaDup
.
Backend
.
get_default
();
var
network
=
DejaDup
.
Network
.
get
();
if
(!
backend
.
is_native
()
&&
!
network
.
connected
)
{
when
=
_
(
"Backup will begin when a network connection becomes available."
);
return
false
;
}
else
if
(!
backend
.
is_native
()
&&
network
.
metered
)
{
when
=
_
(
"Backup will begin when an unmetered network connection becomes available."
);
return
false
;
}
return
yield
backend
.
is_ready
(
out
when
);
}
static
bool
handle_options
(
out
int
status
)
...
...
@@ -245,8 +260,8 @@ static void watch_settings()
static
void
begin_monitoring
()
{
DejaDup
.
Network
.
ensure_status
.
begin
();
DejaDup
.
Network
.
get
().
notify
[
"connected"
].
connect
(
network_changed
);
DejaDup
.
Network
.
get
().
notify
[
"metered"
].
connect
(
network_changed
);
var
mon
=
VolumeMonitor
.
get
();
mon
.
ref
();
// bug 569418; bad things happen when VM goes away
...
...
libdeja/BackendFile.vala
View file @
984b7ede
...
...
@@ -181,9 +181,6 @@ public class BackendFile : Backend
}
catch
(
IOError
.
FAILED_HANDLED
e
)
{
// Needed user input, so we know we can reach server
return
true
;
}
catch
(
IOError
.
HOST_NOT_FOUND
e
)
{
when
=
_
(
"Backup will begin when a network connection becomes available."
);
return
false
;
}
catch
(
Error
e
)
{
when
=
e
.
message
;
return
false
;
...
...
libdeja/CommonUtils.vala
View file @
984b7ede
...
...
@@ -37,6 +37,7 @@ public const string PERIODIC_KEY = "periodic";
public
const
string
PERIODIC_PERIOD_KEY
=
"periodic-period"
;
public
const
string
DELETE_AFTER_KEY
=
"delete-after"
;
public
const
string
FULL_BACKUP_PERIOD_KEY
=
"full-backup-period"
;
public
const
string
ALLOW_METERED_KEY
=
"allow-metered"
;
public
errordomain
BackupError
{
BAD_CONFIG
,
...
...
libdeja/Network.vala
View file @
984b7ede
...
...
@@ -23,7 +23,8 @@ namespace DejaDup {
public
class
Network
:
Object
{
public
bool
connected
{
get
;
set
;
default
=
true
;}
public
bool
connected
{
get
;
private
set
;
default
=
true
;}
public
bool
metered
{
get
;
private
set
;
default
=
false
;}
public
new
static
Network
get
()
{
if
(
singleton
==
null
)
...
...
@@ -31,12 +32,6 @@ public class Network : Object
return
singleton
;
}
public
async
static
void
ensure_status
()
{
var
network
=
Network
.
get
();
network
.
update_status
();
}
public
async
bool
can_reach
(
string
url
)
{
var
mon
=
NetworkMonitor
.
get_default
();
...
...
@@ -52,19 +47,25 @@ public class Network : Object
construct
{
var
mon
=
NetworkMonitor
.
get_default
();
mon
.
network_changed
.
connect
(
handle_changed
);
update_connected
();
mon
.
notify
[
"network-available"
].
connect
(
update_connected
);
update_metered
();
mon
.
notify
[
"network-metered"
].
connect
(
update_metered
);
}
void
handle_changed
(
bool
available
)
void
update_connected
(
)
{
update_status
()
;
connected
=
NetworkMonitor
.
get_default
().
network_available
;
}
void
update_
status
()
void
update_
metered
()
{
var
mon
=
NetworkMonitor
.
get_default
();
if
(
mon
.
network_available
!=
connected
)
connected
=
mon
.
network_available
;
var
settings
=
DejaDup
.
get_settings
();
var
allow_metered
=
settings
.
get_boolean
(
DejaDup
.
ALLOW_METERED_KEY
);
metered
=
mon
.
network_metered
&&
!
allow_metered
;
}
static
Network
singleton
;
...
...
libdeja/Operation.vala
View file @
984b7ede
...
...
@@ -112,8 +112,6 @@ public abstract class Operation : Object
return
;
}
yield
DejaDup
.
Network
.
ensure_status
();
if
(
backend
is
BackendAuto
)
{
// OK, we're not ready yet. Let's hold off until we are
settings
=
get_settings
();
...
...
libdeja/tests/unit/network.vala
View file @
984b7ede
...
...
@@ -21,12 +21,12 @@ using GLib;
async
void
check_status
(
MainLoop
loop
)
{
yield
DejaDup
.
Network
.
ensure_status
();
var
nw
=
DejaDup
.
Network
.
get
();
var
can_reach
=
yield
nw
.
can_reach
(
"https://
one.ubuntu
.com/"
);
var
can_reach
=
yield
nw
.
can_reach
(
"https://
example
.com/"
);
var
can_reach2
=
yield
nw
.
can_reach
(
"http://nowhere.local/"
);
print
(
"Connected: %d\n"
,
(
int
)
nw
.
connected
);
print
(
"Can reach U1: %d\n"
,
(
int
)
can_reach
);
print
(
"Metered: %d\n"
,
(
int
)
nw
.
metered
);
print
(
"Can reach example.com: %d\n"
,
(
int
)
can_reach
);
print
(
"Can reach local server: %d\n"
,
(
int
)
can_reach2
);
loop
.
quit
();
}
...
...
meson.build
View file @
984b7ede
...
...
@@ -46,7 +46,7 @@ pkglibexecdir = join_paths(libexecdir, meson.project_name())
toolsdir = join_paths(pkglibexecdir, 'tools')
# Dependencies
gio_dep = dependency('gio-2.0', version: '>= 2.4
2
')
gio_dep = dependency('gio-2.0', version: '>= 2.4
6
')
gio_unix_dep = dependency('gio-unix-2.0')
gtk_dep = dependency('gtk+-3.0', version: '>= 3.22')
nautilus_dep = dependency('libnautilus-extension', required: false)
...
...
@@ -64,7 +64,7 @@ msgfmt = find_program('msgfmt')
common_vflags = [
'--pkg=config',
'--pkg=posix',
'--target-glib=2.4
2
',
'--target-glib=2.4
6
',
'--vapidir', vapidir]
common_cflags = [
'-w',
...
...
po/deja-dup.pot
View file @
984b7ede
...
...
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: deja-dup\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-02
13:45
-0400\n"
"POT-Creation-Date: 2017-08-02
23:17
-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
...
...
@@ -24,7 +24,7 @@ msgstr ""
#. "duplicity" and the act of duplicating data for backup. As a whole, the
#. phrase "Déjà Dup" may not be very translatable.
#: data/org.gnome.DejaDup.appdata.xml.in:7 deja-dup/main.vala:293
#: libdeja/CommonUtils.vala:13
8
#: libdeja/CommonUtils.vala:13
9
msgid "Déjà Dup Backup Tool"
msgstr ""
...
...
@@ -62,27 +62,27 @@ msgid "Integrates well into your GNOME desktop"
msgstr ""
#. Translators: "Backups" is a noun
#: data/org.gnome.DejaDup.desktop
.in
:5 deja-dup/main.vala:157
#: data/org.gnome.DejaDup.desktop:5 deja-dup/main.vala:157
#: deja-dup/Prompt.vala:78
msgid "Backups"
msgstr ""
#: data/org.gnome.DejaDup.desktop
.in
:6
#: data/org.gnome.DejaDup.desktop:6
msgid "Change your backup settings"
msgstr ""
#: data/org.gnome.DejaDup.desktop
.in
:8
#: data/org.gnome.DejaDup.desktop:8
#: deja-dup/monitor/deja-dup-monitor.desktop.in:8
msgid "deja-dup"
msgstr ""
#. Translators: Add whatever keywords you want in your language, separated by semicolons
#. These keywords are used when searching for applications in dashes, etc.
#: data/org.gnome.DejaDup.desktop
.in
:19
#: data/org.gnome.DejaDup.desktop:19
msgid "déjà;deja;dup;"
msgstr ""
#: data/org.gnome.DejaDup.desktop
.in
:26
#: data/org.gnome.DejaDup.desktop:26
msgid "Back Up"
msgstr ""
...
...
@@ -216,200 +216,210 @@ msgid ""
"of days to wait between full backups."
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:76
#: data/org.gnome.DejaDup.gschema.xml:66
msgid "Whether to use metered networks"
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:67
msgid ""
"If false, Déjà Dup will refuse to run scheduled backups over metered network "
"connections (like 4G)."
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:81
msgid "Type of location to store backup"
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:
77
#: data/org.gnome.DejaDup.gschema.xml:
82
msgid ""
"The type of backup location. If ‘auto’, a default will be chosen based on "
"what is available."
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:
89
#: data/org.gnome.DejaDup.gschema.xml:
94
msgid "Amazon S3 Access Key ID"
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:9
0
#: data/org.gnome.DejaDup.gschema.xml:9
5
msgid "Your Amazon S3 Access Key Identifier. This acts as your S3 username."
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:9
4
#: data/org.gnome.DejaDup.gschema.xml:9
9
msgid "The Amazon S3 bucket name to use"
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:
95
#: data/org.gnome.DejaDup.gschema.xml:
100
msgid ""
"Which Amazon S3 bucket to store files in. This does not need to exist "
"already. Only legal hostname strings are valid."
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:
99
#: data/org.gnome.DejaDup.gschema.xml:
104
msgid "The Amazon S3 folder"
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:10
0
#: data/org.gnome.DejaDup.gschema.xml:1
17
#: data/org.gnome.DejaDup.gschema.xml:10
5
#: data/org.gnome.DejaDup.gschema.xml:1
22
msgid ""
"An optional folder name to store files in. This folder will be created in "
"the chosen bucket."
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:1
06
#: data/org.gnome.DejaDup.gschema.xml:1
11
msgid "Google Cloud Storage Access Key ID"
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:1
07
#: data/org.gnome.DejaDup.gschema.xml:1
12
msgid ""
"Your Google Cloud Storage Access Key Identifier. This acts as your Google "
"Cloud Storage username."
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:11
1
#: data/org.gnome.DejaDup.gschema.xml:11
6
msgid "The Google Cloud Storage bucket name to use"
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:11
2
#: data/org.gnome.DejaDup.gschema.xml:11
7
msgid ""
"Which Google Cloud Storage bucket to store files in. This does not need to "
"exist already. Only legal hostname strings are valid."
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:1
16
#: data/org.gnome.DejaDup.gschema.xml:1
21
msgid "The Google Cloud Storage folder"
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:12
3
#: data/org.gnome.DejaDup.gschema.xml:12
8
msgid "The email-address of your Google account"
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:12
4
#: data/org.gnome.DejaDup.gschema.xml:12
9
msgid "The email-address of your Google account."
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:1
28
#: data/org.gnome.DejaDup.gschema.xml:1
33
msgid "The folder where backups are stored"
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:1
29
#: data/org.gnome.DejaDup.gschema.xml:1
34
msgid "The folder hierarchy where backups are stored."
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:1
35
#: data/org.gnome.DejaDup.gschema.xml:1
40
msgid "The Rackspace Cloud Files container"
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:1
36
#: data/org.gnome.DejaDup.gschema.xml:1
41
msgid ""
"Which Rackspace Cloud Files container to store files in. This does not need "
"to exist already. Only legal hostname strings are valid."
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:14
0
#: data/org.gnome.DejaDup.gschema.xml:14
5
msgid "Your Rackspace username"
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:14
1
#: data/org.gnome.DejaDup.gschema.xml:14
6
msgid "This is your username for the Rackspace Cloud Files service."
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:1
47
#: data/org.gnome.DejaDup.gschema.xml:1
52
msgid "The OpenStack Swift container"
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:1
48
#: data/org.gnome.DejaDup.gschema.xml:1
53
msgid ""
"Which OpenStack Swift container to store files in. This does not need to "
"exist already. Only legal hostname strings are valid."
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:15
2
#: data/org.gnome.DejaDup.gschema.xml:15
7
msgid "Your OpenStack username"
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:15
3
#: data/org.gnome.DejaDup.gschema.xml:15
8
msgid "This is your username for the OpenStack Swift service."
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:1
57
#: data/org.gnome.DejaDup.gschema.xml:1
62
msgid "Your OpenStack tenant"
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:1
58
#: data/org.gnome.DejaDup.gschema.xml:1
63
msgid "This is your tenant for the OpenStack Swift service."
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:16
2
#: data/org.gnome.DejaDup.gschema.xml:16
7
msgid "Authentication URL"
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:16
3
#: data/org.gnome.DejaDup.gschema.xml:16
8
msgid ""
"This is the Authentication URL, or keystone URL for the OpenStack service"
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:1
69
deja-dup/AssistantRestore.vala:221
#: data/org.gnome.DejaDup.gschema.xml:1
74
deja-dup/AssistantRestore.vala:221
msgid "Backup location"
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:17
0
#: data/org.gnome.DejaDup.gschema.xml:17
5
msgid "Location in which to hold the backup files."
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:1
78
#: data/org.gnome.DejaDup.gschema.xml:1
83
msgid "Folder type"
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:1
79
#: data/org.gnome.DejaDup.gschema.xml:1
84
msgid ""
"Whether the backup location is a mounted external volume or a normal folder."
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:18
3
#: data/org.gnome.DejaDup.gschema.xml:18
8
msgid "Relative path under the external volume"
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:18
4
#: data/org.gnome.DejaDup.gschema.xml:18
9
msgid ""
"If the backup location is on an external volume, this is the path of the "
"folder on that volume."
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:1
88
#: data/org.gnome.DejaDup.gschema.xml:1
93
msgid "Unique ID of the external volume"
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:1
89
#: data/org.gnome.DejaDup.gschema.xml:1
94
msgid ""
"If the backup location is on an external volume, this is its unique "
"filesystem identifier."
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:19
3
#: data/org.gnome.DejaDup.gschema.xml:19
8
msgid "Full name of the external volume"
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:19
4
#: data/org.gnome.DejaDup.gschema.xml:19
9
msgid ""
"If the backup location is on an external volume, this is the volume’s longer "
"descriptive name."
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:
198
#: data/org.gnome.DejaDup.gschema.xml:
203
msgid "Short name of the external volume"
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:
199
#: data/org.gnome.DejaDup.gschema.xml:
204
msgid ""
"If the backup location is on an external volume, this is the volume’s "
"shorter name."
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:20
3
#: data/org.gnome.DejaDup.gschema.xml:20
8
msgid "Icon of the external volume"
msgstr ""
#: data/org.gnome.DejaDup.gschema.xml:20
4
#: data/org.gnome.DejaDup.gschema.xml:20
9
msgid ""
"If the backup location is on an external volume, this is the volume’s icon."
msgstr ""
...
...
@@ -418,7 +428,7 @@ msgstr ""
#. a computer screen. This program acts like a daemon that kicks off
#. backups at scheduled times.
#: deja-dup/monitor/deja-dup-monitor.desktop.in:5
#: deja-dup/monitor/monitor.vala:2
71
#: deja-dup/monitor/monitor.vala:2
86
msgid "Backup Monitor"
msgstr ""
...
...
@@ -466,7 +476,7 @@ msgstr ""
msgid "Folder"
msgstr ""
#: deja-dup/ui/restore-missing.ui:61 deja-dup/AssistantOperation.vala:1
7
7
#: deja-dup/ui/restore-missing.ui:61 deja-dup/AssistantOperation.vala:1
5
7
msgid "Scanning…"
msgstr ""
...
...
@@ -533,61 +543,61 @@ msgstr ""
msgid "Backing Up…"
msgstr ""
#: deja-dup/AssistantOperation.vala:1
7
6
#: deja-dup/AssistantOperation.vala:1
5
6
msgid "Scanning:"
msgstr ""
#: deja-dup/AssistantOperation.vala:2
5
9
#: deja-dup/AssistantOperation.vala:2
3
9
msgid "_Details"
msgstr ""
#: deja-dup/AssistantOperation.vala:
30
7
#: deja-dup/AssistantOperation.vala:
28
7
msgid "_Allow restoring without a password"
msgstr ""
#: deja-dup/AssistantOperation.vala:
31
3
#: deja-dup/AssistantOperation.vala:
29
3
msgid "_Password-protect your backup"
msgstr ""
#: deja-dup/AssistantOperation.vala:3
2
5
#: deja-dup/AssistantOperation.vala:3
0
5
msgid ""
"You will need your password to restore your files. You might want to write "
"it down."
msgstr ""
#: deja-dup/AssistantOperation.vala:3
40 deja-dup/AssistantOperation.vala:40
9
#: deja-dup/AssistantOperation.vala:3
20 deja-dup/AssistantOperation.vala:38
9
msgid "E_ncryption password"
msgstr ""
#: deja-dup/AssistantOperation.vala:3
5
7
#: deja-dup/AssistantOperation.vala:3
3
7
msgid "Confir_m password"
msgstr ""
#: deja-dup/AssistantOperation.vala:3
70 deja-dup/AssistantOperation.vala:41
8
#: deja-dup/AssistantOperation.vala:3
50 deja-dup/AssistantOperation.vala:39
8
msgid "_Show password"
msgstr ""
#: deja-dup/AssistantOperation.vala:3
7
7
#: deja-dup/AssistantOperation.vala:3
5
7
#: deja-dup/MountOperationAssistant.vala:40
msgid "_Remember password"
msgstr ""
#: deja-dup/AssistantOperation.vala:3
9
6
#: deja-dup/AssistantOperation.vala:3
7
6
msgid ""
"In order to check that you will be able to retrieve your files in the case "
"of an emergency, please enter your encryption password again to perform a "
"brief restore test."
msgstr ""
#: deja-dup/AssistantOperation.vala:4
2
3
#: deja-dup/AssistantOperation.vala:4
0
3
msgid "Test every two _months"
msgstr ""
#: deja-dup/AssistantOperation.vala:4
9
7
#: deja-dup/AssistantOperation.vala:4
7
7
msgid "Summary"
msgstr ""
#: deja-dup/AssistantOperation.vala:
51
9
#: deja-dup/AssistantOperation.vala:
49
9
msgid "Restore Test"
msgstr ""
...
...
@@ -597,21 +607,21 @@ msgstr ""
#. But first, try to restart without a cache, since that seems to quite
#. frequently fix odd metadata errors with duplicity. If we hit an error
#. a second time, we'll show the unknown error message.
#: deja-dup/AssistantOperation.vala:5
9
5
#: deja-dup/AssistantOperation.vala:5
7
5
#: libdeja/tools/duplicity/DuplicityJob.vala:702
#: libdeja/tools/duplicity/DuplicityJob.vala:1081
msgid "Failed with an unknown error."
msgstr ""
#: deja-dup/AssistantOperation.vala:7
9
2
#: deja-dup/AssistantOperation.vala:7
7
2
msgid "Require Password?"
msgstr ""
#: deja-dup/AssistantOperation.vala:7
9
4
#: deja-dup/AssistantOperation.vala:7
7
4
msgid "Encryption Password Needed"
msgstr ""
#: deja-dup/AssistantOperation.vala:8
6
6
#: deja-dup/AssistantOperation.vala:8
4
6
msgid "Backup encryption password"
msgstr ""
...
...
@@ -724,46 +734,46 @@ msgstr[1] ""
msgid "Restoring…"
msgstr ""
#: deja-dup/AssistantRestoreMissing.vala:18
2
#: deja-dup/AssistantRestoreMissing.vala:18
1
msgid "File"
msgstr ""
#: deja-dup/AssistantRestoreMissing.vala:18
3
#: deja-dup/AssistantRestoreMissing.vala:18
2
msgid "Last seen"
msgstr ""
#: deja-dup/AssistantRestoreMissing.vala:19
8
#: deja-dup/AssistantRestoreMissing.vala:19
3
msgid "Restore which Files?"
msgstr ""
#. Hours
#: deja-dup/AssistantRestoreMissing.vala:32
9
#: deja-dup/AssistantRestoreMissing.vala:32
4
msgid "Scanning for files from up to a day ago…"
msgstr ""
#: deja-dup/AssistantRestoreMissing.vala:3
32
#: deja-dup/AssistantRestoreMissing.vala:3
27
msgid "Scanning for files from up to a week ago…"
msgstr ""
#: deja-dup/AssistantRestoreMissing.vala:33
5
#: deja-dup/AssistantRestoreMissing.vala:33
0
msgid "Scanning for files from up to a month ago…"
msgstr ""
#: deja-dup/AssistantRestoreMissing.vala:3
40
#: deja-dup/AssistantRestoreMissing.vala:3
35
#, c-format
msgid "Scanning for files from about a month ago…"
msgid_plural "Scanning for files from about %d months ago…"
msgstr[0] ""
msgstr[1] ""
#: deja-dup/AssistantRestoreMissing.vala:34
7
#: deja-dup/AssistantRestoreMissing.vala:34
2
#, c-format
msgid "Scanning for files from about a year ago…"
msgid_plural "Scanning for files from about %d years ago…"
msgstr[0] ""
msgstr[1] ""
#: deja-dup/AssistantRestoreMissing.vala:43
7
#: deja-dup/AssistantRestoreMissing.vala:43
2
msgid "Scanning finished"
msgstr ""
...
...
@@ -771,33 +781,33 @@ msgstr ""
msgid "_OK"
msgstr ""
#: deja-dup/Assistant.vala:29
4
#: deja-dup/Assistant.vala:29
6
msgid "_Forward"
msgstr ""
#: deja-dup/Assistant.vala:31
2
#: deja-dup/Assistant.vala:31
4
msgid "Co_ntinue"
msgstr ""
#: deja-dup/Assistant.vala:3
18
#: deja-dup/Assistant.vala:3
20
msgctxt "verb"
msgid "_Test"
msgstr ""
#: deja-dup/Assistant.vala:34
7
deja-dup/widgets/ConfigList.vala:255
#: deja-dup/Assistant.vala:34
9
deja-dup/widgets/ConfigList.vala:255
#: deja-dup/widgets/ConfigLocationFile.vala:53
msgid "_Cancel"
msgstr ""
#: deja-dup/Assistant.vala:3
49
#: deja-dup/Assistant.vala:3
51
msgid "_Close"
msgstr ""
#: deja-dup/Assistant.vala:35
3
#: deja-dup/Assistant.vala:35
5
msgid "_Back"
msgstr ""
#: deja-dup/Assistant.vala:35
5
deja-dup/StatusIcon.vala:70
#: deja-dup/Assistant.vala:35
7
deja-dup/StatusIcon.vala:70
msgid "_Resume Later"
msgstr ""
...
...
@@ -866,20 +876,20 @@ msgstr ""
msgid "S_how password"
msgstr ""
#: deja-dup/MountOperationAssistant.vala:8
0
#: deja-dup/MountOperationAssistant.vala:8
1
msgid "Location not available"
msgstr ""
#: deja-dup/MountOperationAssistant.vala:1
66
#: deja-dup/MountOperationAssistant.vala:1
72
msgid "Connect _anonymously"
msgstr ""
#: deja-dup/MountOperationAssistant.vala:17
0
#: deja-dup/MountOperationAssistant.vala:17
6
msgid "Connect as u_ser"
msgstr ""
#. Translators: this is a Windows networking domain
#: deja-dup/MountOperationAssistant.vala:21
3
#: deja-dup/MountOperationAssistant.vala:21
9
msgid "_Domain"
msgstr ""
...
...
@@ -994,6 +1004,16 @@ msgstr ""
msgid "Show _Progress"
msgstr ""
#: deja-dup/monitor/monitor.vala:81 libdeja/BackendGDrive.vala:51
#: libdeja/BackendRackspace.vala:49 libdeja/BackendS3.vala:59
msgid "Backup will begin when a network connection becomes available."
msgstr ""
#: deja-dup/monitor/monitor.vala:84
msgid ""
"Backup will begin when an unmetered network connection becomes available."
msgstr ""
#: deja-dup/widgets/ConfigDelete.vala:40
msgid "At least six months"
msgstr ""
...
...
@@ -1271,30 +1291,25 @@ msgstr ""
#. Translators: %2$s is the name of a removable drive, %1$s is a folder
#. on that removable drive.
#: libdeja/BackendFile.vala:135 libdeja/CommonUtils.vala:51
8
#: libdeja/BackendFile.vala:135 libdeja/CommonUtils.vala:51
9
#, c-format
msgid "%1$s on %2$s"
msgstr ""
#: libdeja/BackendFile.vala:16
8
#: libdeja/BackendFile.vala:16
7
#, c-format
msgid "Backup will begin when %s is connected."
msgstr ""
#: libdeja/BackendFile.vala:175 libdeja/BackendGDrive.vala:51
#: libdeja/BackendRackspace.vala:49 libdeja/BackendS3.vala:59
msgid "Backup will begin when a network connection becomes available."
msgstr ""
#: libdeja/BackendFile.vala:389 libdeja/BackendFile.vala:453
#: libdeja/BackendFile.vala:395 libdeja/BackendFile.vala:461
msgid "Backup location not available"
msgstr ""
#: libdeja/BackendFile.vala:39
0
#: libdeja/BackendFile.vala:39
6
msgid "Waiting for a network connection…"
msgstr ""
#: libdeja/BackendFile.vala:4
53
#: libdeja/BackendFile.vala:4
61
#, c-format
msgid "Waiting for ‘%s’ to become connected…"