Version Description
Download this release
Release Info
Developer | nullbyte |
Plugin | BackWPup – WordPress Backup Plugin |
Version | 3.3.6 |
Comparing to | |
See all releases |
Code changes from version 3.3.4 to 3.3.6
- .htaccess +9 -4
- assets/Gruntfile.js +52 -0
- assets/images/banner-de.jpg +0 -0
- assets/images/banner-en.jpg +0 -0
- assets/images/banner-survey-de.png +0 -0
- assets/images/banner-survey-en.png +0 -0
- assets/package.json +17 -0
- assets/templates/php52notice/de/notice.php +35 -0
- assets/templates/php52notice/de/question.php +61 -0
- assets/templates/php52notice/de_DE_formal/notice.php +35 -0
- assets/templates/php52notice/de_DE_formal/question.php +61 -0
- assets/templates/php52notice/en/notice.php +36 -0
- assets/templates/php52notice/en/question.php +66 -0
- assets/templates/php52notice/it/notice.php +36 -0
- assets/templates/php52notice/it/question.php +67 -0
- backwpup.php +44 -1
- inc/class-admin.php +23 -3
- inc/class-become-inpsyder-widget.php +153 -0
- inc/class-cron.php +5 -1
- inc/class-dismissible-notice-option.php +263 -0
- inc/class-encryption-fallback.php +93 -0
- inc/class-encryption-mcrypt.php +95 -0
- inc/class-encryption-openssl.php +131 -0
- inc/class-encryption.php +157 -48
- inc/class-page-settings.php +1 -1
- inc/class-php-admin-notice.php +213 -0
- languages/backwpup.pot +5218 -5443
- readme.txt +16 -2
- vendor/inpsyde/phone-home-client/.gitignore +2 -0
- vendor/inpsyde/phone-home-client/LICENSE +674 -0
- vendor/inpsyde/phone-home-client/composer.json +36 -0
- vendor/inpsyde/phone-home-client/inc/autoload.php +53 -0
- vendor/inpsyde/phone-home-client/languages/inpsyde-phone-home-de_DE.mo +0 -0
- vendor/inpsyde/phone-home-client/languages/inpsyde-phone-home-de_DE.po +48 -0
- vendor/inpsyde/phone-home-client/languages/inpsyde-phone-home-de_DE_formal.mo +0 -0
- vendor/inpsyde/phone-home-client/languages/inpsyde-phone-home-de_DE_formal.po +48 -0
- vendor/inpsyde/phone-home-client/languages/inpsyde-phone-home-it_IT.mo +0 -0
- vendor/inpsyde/phone-home-client/languages/inpsyde-phone-home-it_IT.po +42 -0
- vendor/inpsyde/phone-home-client/languages/inpsyde-phone-home.pot +44 -0
- vendor/inpsyde/phone-home-client/src/ActionController.php +207 -0
- vendor/inpsyde/phone-home-client/src/Configuration.php +187 -0
- vendor/inpsyde/phone-home-client/src/Consent/Consent.php +127 -0
- vendor/inpsyde/phone-home-client/src/Consent/DisplayController.php +105 -0
- vendor/inpsyde/phone-home-client/src/CronController.php +92 -0
- vendor/inpsyde/phone-home-client/src/FrontController.php +337 -0
- vendor/inpsyde/phone-home-client/src/HttpClient.php +67 -0
- vendor/inpsyde/phone-home-client/src/Template/Buttons.php +90 -0
- vendor/inpsyde/phone-home-client/src/Template/Loader.php +107 -0
.htaccess
CHANGED
@@ -1,4 +1,9 @@
|
|
1 |
-
<Files *.php>
|
2 |
-
|
3 |
-
|
4 |
-
</
|
|
|
|
|
|
|
|
|
|
1 |
+
<Files *.php>
|
2 |
+
<IfModule mod_authz_core.c>
|
3 |
+
Require all denied
|
4 |
+
</IfModule>
|
5 |
+
<IfModule !mod_authz_core.c>
|
6 |
+
Order allow,deny
|
7 |
+
Deny from all
|
8 |
+
</IfModule>
|
9 |
+
</Files>
|
assets/Gruntfile.js
ADDED
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
module.exports = function(grunt) {
|
2 |
+
|
3 |
+
grunt.loadNpmTasks('grunt-contrib-uglify');
|
4 |
+
grunt.loadNpmTasks('grunt-contrib-cssmin');
|
5 |
+
grunt.loadNpmTasks('grunt-contrib-jshint');
|
6 |
+
|
7 |
+
// Project configuration.
|
8 |
+
grunt.initConfig({
|
9 |
+
pkg: grunt.file.readJSON('package.json'),
|
10 |
+
cssmin: {
|
11 |
+
minify: {
|
12 |
+
expand: true,
|
13 |
+
cwd: 'css/',
|
14 |
+
src: ['*.css', '!*.min.css'],
|
15 |
+
dest: 'css/',
|
16 |
+
ext: '.min.css'
|
17 |
+
}
|
18 |
+
},
|
19 |
+
jshint: {
|
20 |
+
grunt: {
|
21 |
+
src: ['Gruntfile.js']
|
22 |
+
},
|
23 |
+
pluginjs: {
|
24 |
+
expand: true,
|
25 |
+
cwd: 'js/',
|
26 |
+
src: [
|
27 |
+
'*.js',
|
28 |
+
'!*.min.js'
|
29 |
+
]
|
30 |
+
}
|
31 |
+
},
|
32 |
+
uglify: {
|
33 |
+
theme: {
|
34 |
+
expand: true,
|
35 |
+
files: {
|
36 |
+
'js/general.min.js': [ 'js/general.js' ],
|
37 |
+
'js/page_edit_jobtype_dbdump.min.js': [ 'js/page_edit_jobtype_dbdump.js' ],
|
38 |
+
'js/page_edit_jobtype_file.min.js': [ 'js/page_edit_jobtype_file.js' ],
|
39 |
+
'js/page_edit_tab_cron.min.js': [ 'js/page_edit_tab_cron.js' ],
|
40 |
+
'js/page_edit_tab_job.min.js': [ 'js/page_edit_tab_job.js' ],
|
41 |
+
'js/page_settings.min.js': [ 'js/page_settings.js' ],
|
42 |
+
}
|
43 |
+
}
|
44 |
+
}
|
45 |
+
});
|
46 |
+
|
47 |
+
// Register tasks
|
48 |
+
grunt.registerTask('production', ['jshint', 'cssmin', 'uglify']);
|
49 |
+
|
50 |
+
// Default task
|
51 |
+
grunt.registerTask('default', ['production']);
|
52 |
+
};
|
assets/images/banner-de.jpg
DELETED
Binary file
|
assets/images/banner-en.jpg
DELETED
Binary file
|
assets/images/banner-survey-de.png
DELETED
Binary file
|
assets/images/banner-survey-en.png
DELETED
Binary file
|
assets/package.json
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "BackWPup_Assets",
|
3 |
+
"version": "1.0.0",
|
4 |
+
"description": "BackWPup css/js minifiy",
|
5 |
+
"repository": {
|
6 |
+
"type": "git",
|
7 |
+
"url": "https://github.com/inpsyde/backwpup"
|
8 |
+
},
|
9 |
+
"author": "Inpsyde GmbH",
|
10 |
+
"license": "GPL-3.0",
|
11 |
+
"devDependencies": {
|
12 |
+
"grunt": "*",
|
13 |
+
"grunt-contrib-cssmin": "*",
|
14 |
+
"grunt-contrib-uglify": "*",
|
15 |
+
"grunt-contrib-jshint": "*"
|
16 |
+
}
|
17 |
+
}
|
assets/templates/php52notice/de/notice.php
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php # -*- coding: utf-8 -*-
|
2 |
+
/*
|
3 |
+
* This file is part of the Inpsyde phone-home-client package.
|
4 |
+
*
|
5 |
+
* (c) 2017 Inpsyde GmbH
|
6 |
+
*
|
7 |
+
* For the full copyright and license information, please view the LICENSE
|
8 |
+
* file that was distributed with this source code.
|
9 |
+
*/
|
10 |
+
|
11 |
+
$buttons = new Inpsyde_PhoneHome_Template_Buttons();
|
12 |
+
( isset( $data ) && is_object( $data ) ) or $data = new stdClass();
|
13 |
+
|
14 |
+
$plugin_name = isset( $data->plugin_name ) ? esc_html( $data->plugin_name ) : '';
|
15 |
+
$more_info_url = isset( $data->more_info_url ) ? $data->more_info_url : '';
|
16 |
+
$anonymize = isset( $data->anonymize ) ? (bool) $data->anonymize : false;
|
17 |
+
|
18 |
+
if ( ! $plugin_name || ! $more_info_url ) {
|
19 |
+
return;
|
20 |
+
}
|
21 |
+
|
22 |
+
?>
|
23 |
+
<div class="notice notice-warning is-dismissible">
|
24 |
+
<p>
|
25 |
+
Um die Weiterentwicklung von <?= $plugin_name ?> weiter zu optimieren, möchten wir dich bitten, von dir einige Daten wie z.B. PHP- und WordPress-Version abfragen zu dürfen.
|
26 |
+
<?php if ($anonymize) : ?>
|
27 |
+
<strong>Es werden keine personenbezogenen Daten erhoben!</strong>
|
28 |
+
<?php endif ?>
|
29 |
+
|
30 |
+
</p>
|
31 |
+
<p class="notice-links">
|
32 |
+
<?= $buttons->agree_button() ?>
|
33 |
+
<?= $buttons->more_info_button( $more_info_url ) ?>
|
34 |
+
</p>
|
35 |
+
</div>
|
assets/templates/php52notice/de/question.php
ADDED
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php # -*- coding: utf-8 -*-
|
2 |
+
/*
|
3 |
+
* This file is part of the Inpsyde phone-home-client package.
|
4 |
+
*
|
5 |
+
* (c) 2017 Inpsyde GmbH
|
6 |
+
*
|
7 |
+
* For the full copyright and license information, please view the LICENSE
|
8 |
+
* file that was distributed with this source code.
|
9 |
+
*/
|
10 |
+
$buttons = new Inpsyde_PhoneHome_Template_Buttons();
|
11 |
+
( isset( $data ) && is_object( $data ) ) or $data = new stdClass();
|
12 |
+
$plugin_name = isset( $data->plugin_name ) ? esc_html( $data->plugin_name ) : '';
|
13 |
+
$anonymize = isset( $data->anonymize ) ? (bool) $data->anonymize : false;
|
14 |
+
global $title;
|
15 |
+
|
16 |
+
if ( ! $plugin_name || ! $title ) {
|
17 |
+
return;
|
18 |
+
}
|
19 |
+
|
20 |
+
?>
|
21 |
+
<div class="wrap">
|
22 |
+
|
23 |
+
<h1><?= $title ?></h1>
|
24 |
+
|
25 |
+
<div class="updated" style="border:none;">
|
26 |
+
|
27 |
+
<p style="font-size: larger">
|
28 |
+
Für eine optimale Weiterentwicklung von <?= $plugin_name ?> möchten wir in Zukunft wissen, welche PHP- und WordPress-Version wir in der Entwicklung unterstützen sollen, damit wir eine schnelle und auf dem neuesten Stand der Technik basierende Weiterentwicklung garantieren können.
|
29 |
+
</p>
|
30 |
+
<p style="font-size: larger">
|
31 |
+
Moderne PHP-Versionen verbessern die Performance und Sicherheit des Systems erheblich und machen die Entwicklung neuer und bestehender Funktionen enorm leichter.
|
32 |
+
</p>
|
33 |
+
<p style="font-size: larger">
|
34 |
+
Alte PHP-Versionen, die nicht mehr (oder sehr selten) verwendet werden, würden bei der zukünftigen Programmierung nicht unterstützt.<br>
|
35 |
+
Aber keine Sorge, wir lassen dich nicht allein mit deiner alten Version und machen diesen Schritt einfach so.
|
36 |
+
</p>
|
37 |
+
<p style="font-size: larger">
|
38 |
+
Deshalb ist es für uns wichtig zu wissen, wie viele Benutzer noch eine alte Version verwenden, und wenn ja, wie wir helfen können, um auf die neueste Version zu aktualisieren.<br>
|
39 |
+
Meistens reicht ein kurze E-Mail oder Anruf bei ihrem Hosting um auf die neueste PHP-Version zu aktualisieren.
|
40 |
+
</p>
|
41 |
+
<p style="font-size: larger">
|
42 |
+
Wir wären dir sehr dankbar, wenn du uns die Erlaubnis zur Abfrage von Informationen wie PHP- und WordPress-Version gibst.<br>
|
43 |
+
Das einzige, was du tun musst, ist auf <em>"Ja, ich bin einverstanden."</em> unten klicken, das wars.
|
44 |
+
</p>
|
45 |
+
<?php if ( $anonymize ) : ?>
|
46 |
+
<p style="font-size: larger">
|
47 |
+
<strong>Bitte beachte, dass die gesendeten Daten anonym sind: Wir erfassen keine persönlichen Daten!</strong>
|
48 |
+
</p>
|
49 |
+
<?php endif ?>
|
50 |
+
<p style="font-size: larger">
|
51 |
+
Vielen Dank im Voraus!
|
52 |
+
</p>
|
53 |
+
|
54 |
+
<p class="page-links">
|
55 |
+
<?= $buttons->agree_button() ?>
|
56 |
+
<?= $buttons->maybe_button() ?>
|
57 |
+
<?= $buttons->disagree_button() ?>
|
58 |
+
</p>
|
59 |
+
|
60 |
+
</div>
|
61 |
+
</div>
|
assets/templates/php52notice/de_DE_formal/notice.php
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php # -*- coding: utf-8 -*-
|
2 |
+
/*
|
3 |
+
* This file is part of the Inpsyde phone-home-client package.
|
4 |
+
*
|
5 |
+
* (c) 2017 Inpsyde GmbH
|
6 |
+
*
|
7 |
+
* For the full copyright and license information, please view the LICENSE
|
8 |
+
* file that was distributed with this source code.
|
9 |
+
*/
|
10 |
+
|
11 |
+
$buttons = new Inpsyde_PhoneHome_Template_Buttons();
|
12 |
+
( isset( $data ) && is_object( $data ) ) or $data = new stdClass();
|
13 |
+
|
14 |
+
$plugin_name = isset( $data->plugin_name ) ? esc_html( $data->plugin_name ) : '';
|
15 |
+
$more_info_url = isset( $data->more_info_url ) ? $data->more_info_url : '';
|
16 |
+
$anonymize = isset( $data->anonymize ) ? (bool) $data->anonymize : false;
|
17 |
+
|
18 |
+
if ( ! $plugin_name || ! $more_info_url ) {
|
19 |
+
return;
|
20 |
+
}
|
21 |
+
|
22 |
+
?>
|
23 |
+
<div class="notice notice-warning is-dismissible">
|
24 |
+
<p>
|
25 |
+
Um die Weiterentwicklung von <?= $plugin_name ?> weiter zu optimieren, möchten wir Sie bitten, von Ihnen einige Daten wie z.B. PHP- und WordPress-Version abfragen zu dürfen.
|
26 |
+
<?php if ($anonymize) : ?>
|
27 |
+
<strong>Es werden keine personenbezogenen Daten erhoben!</strong>
|
28 |
+
<?php endif ?>
|
29 |
+
|
30 |
+
</p>
|
31 |
+
<p class="notice-links">
|
32 |
+
<?= $buttons->agree_button() ?>
|
33 |
+
<?= $buttons->more_info_button( $more_info_url ) ?>
|
34 |
+
</p>
|
35 |
+
</div>
|
assets/templates/php52notice/de_DE_formal/question.php
ADDED
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php # -*- coding: utf-8 -*-
|
2 |
+
/*
|
3 |
+
* This file is part of the Inpsyde phone-home-client package.
|
4 |
+
*
|
5 |
+
* (c) 2017 Inpsyde GmbH
|
6 |
+
*
|
7 |
+
* For the full copyright and license information, please view the LICENSE
|
8 |
+
* file that was distributed with this source code.
|
9 |
+
*/
|
10 |
+
$buttons = new Inpsyde_PhoneHome_Template_Buttons();
|
11 |
+
( isset( $data ) && is_object( $data ) ) or $data = new stdClass();
|
12 |
+
$plugin_name = isset( $data->plugin_name ) ? esc_html( $data->plugin_name ) : '';
|
13 |
+
$anonymize = isset( $data->anonymize ) ? (bool) $data->anonymize : false;
|
14 |
+
global $title;
|
15 |
+
|
16 |
+
if ( ! $plugin_name || ! $title ) {
|
17 |
+
return;
|
18 |
+
}
|
19 |
+
|
20 |
+
?>
|
21 |
+
<div class="wrap">
|
22 |
+
|
23 |
+
<h1><?= $title ?></h1>
|
24 |
+
|
25 |
+
<div class="updated" style="border:none;">
|
26 |
+
|
27 |
+
<p style="font-size: larger">
|
28 |
+
Für eine optimale Weiterentwicklung von <?= $plugin_name ?> möchten wir in Zukunft wissen, welche PHP- und WordPress-Version wir in der Entwicklung unterstützen sollen, damit wir eine schnelle und auf dem neuesten Stand der Technik basierende Weiterentwicklung garantieren können.
|
29 |
+
</p>
|
30 |
+
<p style="font-size: larger">
|
31 |
+
Moderne PHP-Versionen verbessern die Performance und Sicherheit des Systems erheblich und machen die Entwicklung neuer und bestehender Funktionen enorm leichter.
|
32 |
+
</p>
|
33 |
+
<p style="font-size: larger">
|
34 |
+
Alte PHP-Versionen, die nicht mehr (oder sehr selten) verwendet werden, würden bei der zukünftigen Programmierung nicht unterstützt.<br>
|
35 |
+
Aber keine Sorge, wir lassen Sie nicht allein mit Ihrer alten Version und machen diesen Schritt einfach so.
|
36 |
+
</p>
|
37 |
+
<p style="font-size: larger">
|
38 |
+
Deshalb ist es für uns wichtig zu wissen, wie viele Benutzer noch eine alte Version verwenden, und wenn ja, wie wir helfen können, um auf die neueste Version zu aktualisieren.<br>
|
39 |
+
Meistens reicht ein kurze E-Mail oder Anruf bei ihrem Hosting um auf die neueste PHP-Version zu aktualisieren.
|
40 |
+
</p>
|
41 |
+
<p style="font-size: larger">
|
42 |
+
Wir wären Ihnen sehr dankbar, wenn Sie uns die Erlaubnis zur Abfrage von Informationen wie PHP- und WordPress-Version geben.<br>
|
43 |
+
Das einzige, was Sie tun müssen, ist auf <em>"Ja, ich bin einverstanden."</em> unten klicken, das wars.
|
44 |
+
</p>
|
45 |
+
<?php if ( $anonymize ) : ?>
|
46 |
+
<p style="font-size: larger">
|
47 |
+
<strong>Bitte beachten Sie, dass die gesendeten Daten anonym sind: Wir erfassen keine persönlichen Daten!</strong>
|
48 |
+
</p>
|
49 |
+
<?php endif ?>
|
50 |
+
<p style="font-size: larger">
|
51 |
+
Vielen Dank im Voraus!
|
52 |
+
</p>
|
53 |
+
|
54 |
+
<p class="page-links">
|
55 |
+
<?= $buttons->agree_button() ?>
|
56 |
+
<?= $buttons->maybe_button() ?>
|
57 |
+
<?= $buttons->disagree_button() ?>
|
58 |
+
</p>
|
59 |
+
|
60 |
+
</div>
|
61 |
+
</div>
|
assets/templates/php52notice/en/notice.php
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php # -*- coding: utf-8 -*-
|
2 |
+
/*
|
3 |
+
* This file is part of the Inpsyde phone-home-client package.
|
4 |
+
*
|
5 |
+
* (c) 2017 Inpsyde GmbH
|
6 |
+
*
|
7 |
+
* For the full copyright and license information, please view the LICENSE
|
8 |
+
* file that was distributed with this source code.
|
9 |
+
*/
|
10 |
+
|
11 |
+
$buttons = new Inpsyde_PhoneHome_Template_Buttons();
|
12 |
+
( isset( $data ) && is_object( $data ) ) or $data = new stdClass();
|
13 |
+
|
14 |
+
$plugin_name = isset( $data->plugin_name ) ? esc_html( $data->plugin_name ) : '';
|
15 |
+
$more_info_url = isset( $data->more_info_url ) ? $data->more_info_url : '';
|
16 |
+
$anonymize = isset( $data->anonymize ) ? (bool) $data->anonymize : false;
|
17 |
+
|
18 |
+
if ( ! $plugin_name || ! $more_info_url ) {
|
19 |
+
return;
|
20 |
+
}
|
21 |
+
|
22 |
+
?>
|
23 |
+
<div class="notice notice-warning is-dismissible">
|
24 |
+
<p>
|
25 |
+
To optimize further development of <?= $plugin_name ?>, we would like to ask you the consent to query from you
|
26 |
+
some data like PHP and WordPress version.
|
27 |
+
<?php if ($anonymize) : ?>
|
28 |
+
<strong>No personal data will be collected!</strong>
|
29 |
+
<?php endif ?>
|
30 |
+
|
31 |
+
</p>
|
32 |
+
<p class="notice-links">
|
33 |
+
<?= $buttons->agree_button() ?>
|
34 |
+
<?= $buttons->more_info_button( $more_info_url ) ?>
|
35 |
+
</p>
|
36 |
+
</div>
|
assets/templates/php52notice/en/question.php
ADDED
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php # -*- coding: utf-8 -*-
|
2 |
+
/*
|
3 |
+
* This file is part of the Inpsyde phone-home-client package.
|
4 |
+
*
|
5 |
+
* (c) 2017 Inpsyde GmbH
|
6 |
+
*
|
7 |
+
* For the full copyright and license information, please view the LICENSE
|
8 |
+
* file that was distributed with this source code.
|
9 |
+
*/
|
10 |
+
$buttons = new Inpsyde_PhoneHome_Template_Buttons();
|
11 |
+
( isset( $data ) && is_object( $data ) ) or $data = new stdClass();
|
12 |
+
$plugin_name = isset( $data->plugin_name ) ? esc_html( $data->plugin_name ) : '';
|
13 |
+
$anonymize = isset( $data->anonymize ) ? (bool) $data->anonymize : false;
|
14 |
+
global $title;
|
15 |
+
|
16 |
+
if ( ! $plugin_name || ! $title ) {
|
17 |
+
return;
|
18 |
+
}
|
19 |
+
|
20 |
+
?>
|
21 |
+
<div class="wrap">
|
22 |
+
|
23 |
+
<h1><?= $title ?></h1>
|
24 |
+
|
25 |
+
<div class="updated" style="border:none;">
|
26 |
+
|
27 |
+
<p style="font-size: larger">
|
28 |
+
For an optimal further development of <?= $plugin_name ?> we would like to know in the future which PHP and
|
29 |
+
WordPress version we should support in development, so that we can guarantee a speedy and further development
|
30 |
+
based on the latest standards.
|
31 |
+
</p>
|
32 |
+
<p style="font-size: larger">
|
33 |
+
Modern PHP versions greatly improves the performance and security of the system and makes the development of
|
34 |
+
new and existing functionalities enormously easier.
|
35 |
+
</p>
|
36 |
+
<p style="font-size: larger">
|
37 |
+
Old PHP versions that are no longer (or very rarely) used, would not be supported in future programming.<br>
|
38 |
+
But do not worry, we do not leave you alone with your old version and cut you off just like that.
|
39 |
+
</p>
|
40 |
+
<p style="font-size: larger">
|
41 |
+
That is why it is important to know how may users are using an old version, and if so, how we can help to
|
42 |
+
upgrade to the latest version.<br>
|
43 |
+
Most of the time a short e-mail or a call to your hosting is enough to have the PHP version updated.
|
44 |
+
</p>
|
45 |
+
<p style="font-size: larger">
|
46 |
+
We would be very grateful to you if you give us the permission to query information like PHP and WordPress
|
47 |
+
version.<br>
|
48 |
+
The only thing you need to do is click <em>"Yes, I agree."</em> below, and that's it.
|
49 |
+
</p>
|
50 |
+
<?php if ( $anonymize ) : ?>
|
51 |
+
<p style="font-size: larger">
|
52 |
+
<strong>Please note any data sent is anonymous: we don't collect any personal data at all!</strong>
|
53 |
+
</p>
|
54 |
+
<?php endif ?>
|
55 |
+
<p style="font-size: larger">
|
56 |
+
Thanks a lot in advance!
|
57 |
+
</p>
|
58 |
+
|
59 |
+
<p class="page-links">
|
60 |
+
<?= $buttons->agree_button() ?>
|
61 |
+
<?= $buttons->maybe_button() ?>
|
62 |
+
<?= $buttons->disagree_button() ?>
|
63 |
+
</p>
|
64 |
+
|
65 |
+
</div>
|
66 |
+
</div>
|
assets/templates/php52notice/it/notice.php
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php # -*- coding: utf-8 -*-
|
2 |
+
/*
|
3 |
+
* This file is part of the Inpsyde phone-home-client package.
|
4 |
+
*
|
5 |
+
* (c) 2017 Inpsyde GmbH
|
6 |
+
*
|
7 |
+
* For the full copyright and license information, please view the LICENSE
|
8 |
+
* file that was distributed with this source code.
|
9 |
+
*/
|
10 |
+
|
11 |
+
$buttons = new Inpsyde_PhoneHome_Template_Buttons();
|
12 |
+
( isset( $data ) && is_object( $data ) ) or $data = new stdClass();
|
13 |
+
|
14 |
+
$plugin_name = isset( $data->plugin_name ) ? esc_html( $data->plugin_name ) : '';
|
15 |
+
$more_info_url = isset( $data->more_info_url ) ? $data->more_info_url : '';
|
16 |
+
$anonymize = isset( $data->anonymize ) ? (bool) $data->anonymize : false;
|
17 |
+
|
18 |
+
if ( ! $plugin_name || ! $more_info_url ) {
|
19 |
+
return;
|
20 |
+
}
|
21 |
+
|
22 |
+
?>
|
23 |
+
<div class="notice notice-warning is-dismissible">
|
24 |
+
<p>
|
25 |
+
Per migliorare ulteriormente lo sviluppo di <?= $plugin_name ?>, ti chiediamo il consenso di prelevare da questo
|
26 |
+
sito alcune informazioni come la version PHP e la version WordPress utilizzate.
|
27 |
+
<?php if ($anonymize) : ?>
|
28 |
+
<strong>Nessuna informazione personale sarà trasmessa!</strong>
|
29 |
+
<?php endif ?>
|
30 |
+
|
31 |
+
</p>
|
32 |
+
<p class="notice-links">
|
33 |
+
<?= $buttons->agree_button() ?>
|
34 |
+
<?= $buttons->more_info_button( $more_info_url ) ?>
|
35 |
+
</p>
|
36 |
+
</div>
|
assets/templates/php52notice/it/question.php
ADDED
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php # -*- coding: utf-8 -*-
|
2 |
+
/*
|
3 |
+
* This file is part of the Inpsyde phone-home-client package.
|
4 |
+
*
|
5 |
+
* (c) 2017 Inpsyde GmbH
|
6 |
+
*
|
7 |
+
* For the full copyright and license information, please view the LICENSE
|
8 |
+
* file that was distributed with this source code.
|
9 |
+
*/
|
10 |
+
$buttons = new Inpsyde_PhoneHome_Template_Buttons();
|
11 |
+
( isset( $data ) && is_object( $data ) ) or $data = new stdClass();
|
12 |
+
$plugin_name = isset( $data->plugin_name ) ? esc_html( $data->plugin_name ) : '';
|
13 |
+
$anonymize = isset( $data->anonymize ) ? (bool) $data->anonymize : false;
|
14 |
+
global $title;
|
15 |
+
|
16 |
+
if ( ! $plugin_name || ! $title ) {
|
17 |
+
return;
|
18 |
+
}
|
19 |
+
|
20 |
+
?>
|
21 |
+
<div class="wrap">
|
22 |
+
|
23 |
+
<h1><?= $title ?></h1>
|
24 |
+
|
25 |
+
<div class="updated" style="border:none;">
|
26 |
+
|
27 |
+
<p style="font-size: larger">
|
28 |
+
Per uno sviluppo ottimale di <?= $plugin_name ?> vorremmo sapere quale versione PHP e quale versione
|
29 |
+
WordPress dovremmo supportare, in modo da poter garantire un migliore futuro sviluppo, basato sugli
|
30 |
+
ultimi standard.
|
31 |
+
</p>
|
32 |
+
<p style="font-size: larger">
|
33 |
+
Le versioni PHP moderne hanno performance di gran lunga migliori, una maggiore sicurezza e rendono più
|
34 |
+
semplice lo sviluppo di nuove funzionalità e il mantenimento di quelle esistenti.
|
35 |
+
</p>
|
36 |
+
<p style="font-size: larger">
|
37 |
+
Le versioni obsolete di PHP sono oggi usate molto raramente, e probabilmente non verranno più supportate.<br>
|
38 |
+
Ma non preoccuparti, non abbiamo intenzione di lasciarti indietro se utilizzi una vecchia versione.
|
39 |
+
</p>
|
40 |
+
<p style="font-size: larger">
|
41 |
+
Per questo è importante per noi sapere quanti utenti utilizzano vecchie versioni, e in modo che possiamo
|
42 |
+
aiutarli a migrare ad una versione più recente.<br>
|
43 |
+
La maggior parte delle volte basta una breve email o una chiamata al proprio hosting per ottenere un
|
44 |
+
aggiornamento senza costi aggiuntivi.
|
45 |
+
</p>
|
46 |
+
<p style="font-size: larger">
|
47 |
+
Ti saremmo molto grati se volessi concederci il permesso di ottenere da questo sito alcune informazioni
|
48 |
+
come la versioni in uso di PHP e di WordPress.<br>
|
49 |
+
L'unica cosa che devi fare è cliccare "Sì" qui di seguito.
|
50 |
+
</p>
|
51 |
+
<?php if ( $anonymize ) : ?>
|
52 |
+
<p style="font-size: larger">
|
53 |
+
<strong>Nota che tutte le informazioni saranno anonime: non raccogliamo informazioni personali!</strong>
|
54 |
+
</p>
|
55 |
+
<?php endif ?>
|
56 |
+
<p style="font-size: larger">
|
57 |
+
Grazie molte in anticipo!
|
58 |
+
</p>
|
59 |
+
|
60 |
+
<p class="page-links">
|
61 |
+
<?= $buttons->agree_button() ?>
|
62 |
+
<?= $buttons->maybe_button() ?>
|
63 |
+
<?= $buttons->disagree_button() ?>
|
64 |
+
</p>
|
65 |
+
|
66 |
+
</div>
|
67 |
+
</div>
|
backwpup.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* Description: WordPress Backup Plugin
|
6 |
* Author: Inpsyde GmbH
|
7 |
* Author URI: http://inpsyde.com
|
8 |
-
* Version: 3.3.
|
9 |
* Text Domain: backwpup
|
10 |
* Domain Path: /languages/
|
11 |
* Network: true
|
@@ -69,6 +69,7 @@ if ( ! class_exists( 'BackWPup' ) ) {
|
|
69 |
}
|
70 |
//auto loader
|
71 |
spl_autoload_register( array( $this, 'autoloader' ) );
|
|
|
72 |
//start upgrade if needed
|
73 |
if ( get_site_option( 'backwpup_version' ) !== self::get_plugin_data( 'Version' ) || ! wp_next_scheduled( 'backwpup_check_cleanup' ) ) {
|
74 |
BackWPup_Install::activate();
|
@@ -106,6 +107,48 @@ if ( ! class_exists( 'BackWPup' ) ) {
|
|
106 |
if ( defined( 'WP_CLI' ) && WP_CLI && method_exists( 'WP_CLI', 'add_command' ) ) {
|
107 |
WP_CLI::add_command( 'backwpup', 'BackWPup_WP_CLI' );
|
108 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
109 |
}
|
110 |
|
111 |
/**
|
5 |
* Description: WordPress Backup Plugin
|
6 |
* Author: Inpsyde GmbH
|
7 |
* Author URI: http://inpsyde.com
|
8 |
+
* Version: 3.3.6
|
9 |
* Text Domain: backwpup
|
10 |
* Domain Path: /languages/
|
11 |
* Network: true
|
69 |
}
|
70 |
//auto loader
|
71 |
spl_autoload_register( array( $this, 'autoloader' ) );
|
72 |
+
|
73 |
//start upgrade if needed
|
74 |
if ( get_site_option( 'backwpup_version' ) !== self::get_plugin_data( 'Version' ) || ! wp_next_scheduled( 'backwpup_check_cleanup' ) ) {
|
75 |
BackWPup_Install::activate();
|
107 |
if ( defined( 'WP_CLI' ) && WP_CLI && method_exists( 'WP_CLI', 'add_command' ) ) {
|
108 |
WP_CLI::add_command( 'backwpup', 'BackWPup_WP_CLI' );
|
109 |
}
|
110 |
+
|
111 |
+
// Notices and messages in admin
|
112 |
+
if ( is_admin() ) {
|
113 |
+
|
114 |
+
/// Notice for PHP 5.2 users
|
115 |
+
$php_notice = new BackWPup_Php_Admin_Notice();
|
116 |
+
add_action( 'admin_notices', array( $php_notice, 'admin_notice' ), 0 );
|
117 |
+
add_action( 'backwpup_admin_messages', array( $php_notice, 'admin_page_message' ) );
|
118 |
+
|
119 |
+
// Work for Inpsyde widget
|
120 |
+
$inpsyder_widget = new BackWPup_Become_Inpsyder_Widget();
|
121 |
+
add_action( 'wp_dashboard_setup', array( $inpsyder_widget, 'setup_widget' ) );
|
122 |
+
add_action( 'backwpup_admin_messages', array( $inpsyder_widget, 'print_plugin_widget_markup' ), 0 );
|
123 |
+
|
124 |
+
// Setup "dismissible" option actions for PHP 5.2 notice and work for Inpsyde widget
|
125 |
+
BackWPup_Dismissible_Notice_Option::setup_actions(
|
126 |
+
true,
|
127 |
+
BackWPup_Php_Admin_Notice::NOTICE_ID,
|
128 |
+
'manage_options'
|
129 |
+
);
|
130 |
+
BackWPup_Dismissible_Notice_Option::setup_actions(
|
131 |
+
false,
|
132 |
+
BackWPup_Become_Inpsyder_Widget::NOTICE_ID,
|
133 |
+
'backwpup'
|
134 |
+
);
|
135 |
+
}
|
136 |
+
|
137 |
+
// Phone Home
|
138 |
+
require_once dirname( __FILE__ ) . '/vendor/inpsyde/phone-home-client/inc/autoload.php';
|
139 |
+
Inpsyde_PhoneHome_FrontController::initialize_for_network(
|
140 |
+
'BackWPup',
|
141 |
+
dirname( __FILE__ ) . '/assets/templates/php52notice',
|
142 |
+
'backwpup',
|
143 |
+
array(
|
144 |
+
Inpsyde_PhoneHome_Configuration::ANONYMIZE => true,
|
145 |
+
Inpsyde_PhoneHome_Configuration::MINIMUM_CAPABILITY => 'manage_options',
|
146 |
+
Inpsyde_PhoneHome_Configuration::COLLECT_PHP => true,
|
147 |
+
Inpsyde_PhoneHome_Configuration::COLLECT_WP => true,
|
148 |
+
Inpsyde_PhoneHome_Configuration::SERVER_ADDRESS => 'https://backwpup.com/wp-json',
|
149 |
+
)
|
150 |
+
);
|
151 |
+
|
152 |
}
|
153 |
|
154 |
/**
|
inc/class-admin.php
CHANGED
@@ -10,8 +10,6 @@ final class BackWPup_Admin {
|
|
10 |
/**
|
11 |
*
|
12 |
* Set needed filters and actions and load all needed
|
13 |
-
*
|
14 |
-
* @return \BackWPup_Admin
|
15 |
*/
|
16 |
public function __construct() {
|
17 |
|
@@ -47,13 +45,15 @@ final class BackWPup_Admin {
|
|
47 |
add_action( 'show_user_profile', array( $this, 'user_profile_fields' ) );
|
48 |
add_action( 'edit_user_profile', array( $this, 'user_profile_fields' ) );
|
49 |
add_action( 'profile_update', array( $this, 'save_profile_update' ) );
|
|
|
|
|
50 |
|
51 |
new BackWPup_EasyCron();
|
52 |
}
|
53 |
|
54 |
/**
|
55 |
* @static
|
56 |
-
* @return \
|
57 |
*/
|
58 |
public static function get_instance() {
|
59 |
|
@@ -134,6 +134,11 @@ final class BackWPup_Admin {
|
|
134 |
*/
|
135 |
public static function display_messages( $echo = TRUE ) {
|
136 |
|
|
|
|
|
|
|
|
|
|
|
137 |
$message_updated= '';
|
138 |
$message_error = '';
|
139 |
$saved_message = self::get_messages();
|
@@ -512,6 +517,21 @@ final class BackWPup_Admin {
|
|
512 |
return;
|
513 |
}
|
514 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
515 |
private function __clone() {}
|
516 |
|
517 |
}
|
10 |
/**
|
11 |
*
|
12 |
* Set needed filters and actions and load all needed
|
|
|
|
|
13 |
*/
|
14 |
public function __construct() {
|
15 |
|
45 |
add_action( 'show_user_profile', array( $this, 'user_profile_fields' ) );
|
46 |
add_action( 'edit_user_profile', array( $this, 'user_profile_fields' ) );
|
47 |
add_action( 'profile_update', array( $this, 'save_profile_update' ) );
|
48 |
+
// show "phone home" notices only on plugin pages
|
49 |
+
add_filter( 'inpsyde-phone-home-show_notice', array( $this, 'hide_phone_home_client_notices' ), 10, 2 );
|
50 |
|
51 |
new BackWPup_EasyCron();
|
52 |
}
|
53 |
|
54 |
/**
|
55 |
* @static
|
56 |
+
* @return \BackWPup_Admin
|
57 |
*/
|
58 |
public static function get_instance() {
|
59 |
|
134 |
*/
|
135 |
public static function display_messages( $echo = TRUE ) {
|
136 |
|
137 |
+
/**
|
138 |
+
* This hook can be used to display more messages in all BackWPup pages
|
139 |
+
*/
|
140 |
+
do_action( 'backwpup_admin_messages' );
|
141 |
+
|
142 |
$message_updated= '';
|
143 |
$message_error = '';
|
144 |
$saved_message = self::get_messages();
|
517 |
return;
|
518 |
}
|
519 |
|
520 |
+
/**
|
521 |
+
* @param bool $show
|
522 |
+
* @param null|WP_Screen $screen
|
523 |
+
*
|
524 |
+
* @return bool
|
525 |
+
*/
|
526 |
+
public function hide_phone_home_client_notices( $show = true, $screen = null ) {
|
527 |
+
|
528 |
+
if ( $screen instanceof \WP_Screen ) {
|
529 |
+
return $screen->id === 'toplevel_page_backwpup' || strpos( $screen->id, 'backwpup' ) === 0;
|
530 |
+
}
|
531 |
+
|
532 |
+
return $show;
|
533 |
+
}
|
534 |
+
|
535 |
private function __clone() {}
|
536 |
|
537 |
}
|
inc/class-become-inpsyder-widget.php
ADDED
@@ -0,0 +1,153 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
*
|
5 |
+
*/
|
6 |
+
class BackWPup_Become_Inpsyder_Widget {
|
7 |
+
|
8 |
+
const NOTICE_ID = 'become_inpsyder';
|
9 |
+
const MAIN_ADMIN_PAGE_ID = 'toplevel_page_backwpup';
|
10 |
+
|
11 |
+
/**
|
12 |
+
* A flag set once per request that is true when the widget should not be shown on the page
|
13 |
+
*
|
14 |
+
* @var bool
|
15 |
+
*/
|
16 |
+
private static $should_show;
|
17 |
+
|
18 |
+
public function setup_widget() {
|
19 |
+
if ( $this->should_display() ) {
|
20 |
+
wp_add_dashboard_widget(
|
21 |
+
'backwpup_become_inpsyder',
|
22 |
+
esc_html__( 'Make BackWPup better!', 'backwpup' ),
|
23 |
+
array( $this, 'print_widget_markup' )
|
24 |
+
);
|
25 |
+
}
|
26 |
+
}
|
27 |
+
|
28 |
+
public function print_plugin_widget_markup() {
|
29 |
+
static $done;
|
30 |
+
if ( ! $done && get_current_screen()->id === self::MAIN_ADMIN_PAGE_ID && $this->should_display() ) {
|
31 |
+
$done = true;
|
32 |
+
?>
|
33 |
+
<div class="metabox-holder postbox">
|
34 |
+
<h3 class="hndle"><span><?= esc_html__( 'Make BackWPup better!', 'backwpup' ) ?></span></h3>
|
35 |
+
<div class="inside">
|
36 |
+
<?= $this->widget_markup( 'left' ) ?>
|
37 |
+
</div>
|
38 |
+
</div>
|
39 |
+
<?php
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
+
public function print_widget_markup() {
|
44 |
+
static $done;
|
45 |
+
if ( ! $done && $this->should_display() ) {
|
46 |
+
$done = true;
|
47 |
+
echo $this->widget_markup();
|
48 |
+
}
|
49 |
+
}
|
50 |
+
|
51 |
+
/**
|
52 |
+
* We don't display widget if it was dismissed for good.
|
53 |
+
*
|
54 |
+
* @return bool
|
55 |
+
*/
|
56 |
+
private function should_display() {
|
57 |
+
|
58 |
+
// If already checked, don't check again
|
59 |
+
if ( is_bool( self::$should_show ) ) {
|
60 |
+
return self::$should_show;
|
61 |
+
}
|
62 |
+
|
63 |
+
$option = new BackWPup_Dismissible_Notice_Option( false );
|
64 |
+
|
65 |
+
// If notice is dismissed for good, don't show it
|
66 |
+
self::$should_show = ! $option->is_dismissed( self::NOTICE_ID );
|
67 |
+
|
68 |
+
return self::$should_show;
|
69 |
+
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* The markup for the admin notice.
|
73 |
+
*
|
74 |
+
* @param string $btn_float
|
75 |
+
*
|
76 |
+
* @return string
|
77 |
+
*/
|
78 |
+
private function widget_markup( $btn_float = 'right' ) {
|
79 |
+
|
80 |
+
$dismiss_url = BackWPup_Dismissible_Notice_Option::dismiss_action_url(
|
81 |
+
self::NOTICE_ID,
|
82 |
+
BackWPup_Dismissible_Notice_Option::FOR_USER_FOR_GOOD_ACTION
|
83 |
+
);
|
84 |
+
|
85 |
+
$plugin_file = dirname( dirname( __FILE__ ) ) . '/backwpup.php';
|
86 |
+
$logo_url = plugins_url( '/assets/images/inpsyde.png', $plugin_file );
|
87 |
+
|
88 |
+
$job_url = esc_url( __( 'https://inpsyde.com/en/jobs/?utm_source=BackWPup&utm_medium=Link&utm_campaign=BecomeAnInpsyder', 'backwpup' ) );
|
89 |
+
|
90 |
+
ob_start();
|
91 |
+
?>
|
92 |
+
<div>
|
93 |
+
<p align="justify">
|
94 |
+
<?php
|
95 |
+
esc_html_e(
|
96 |
+
'We want to make BackWPup even stronger and its support much faster.',
|
97 |
+
'backwpup'
|
98 |
+
);
|
99 |
+
?>
|
100 |
+
<br>
|
101 |
+
<strong>
|
102 |
+
<?php
|
103 |
+
esc_html_e(
|
104 |
+
'This is why we are looking for a talented developer who can work remotely and support us in BackWPup',
|
105 |
+
'backwpup'
|
106 |
+
);
|
107 |
+
?>
|
108 |
+
</strong>
|
109 |
+
<?php
|
110 |
+
esc_html_e(
|
111 |
+
'and other exciting WordPress projects at our VIP partner agency.',
|
112 |
+
'backwpup'
|
113 |
+
);
|
114 |
+
?>
|
115 |
+
</p>
|
116 |
+
<p<?= $btn_float === 'right' ? ' align="right' : '' ?>">
|
117 |
+
<a
|
118 |
+
style="background: #8fba2b; border-color: #7ba617 #719c0d #719c0d; -webkit-box-shadow: 0 1px 0 #719c0d; box-shadow: 0 1px 0 #719c0d; text-shadow: 0 -1px 1px #719c0d, 1px 0 1px #719c0d, 0 1px 1px #719c0d, -1px 0 1px #719c0d;"
|
119 |
+
class="button button-large button-primary"
|
120 |
+
href="<?= $job_url ?>"
|
121 |
+
target="_blank">
|
122 |
+
<?= esc_html__( 'Apply now!', 'backwpup' ) ?>
|
123 |
+
</a>
|
124 |
+
</p>
|
125 |
+
<hr>
|
126 |
+
<p>
|
127 |
+
|
128 |
+
<a class="button button-small" id="backwpup_dismiss_become_new_inpsyder" href="<?= esc_url( $dismiss_url ) ?>">
|
129 |
+
<?= esc_html__( 'Don\'t show again', 'backwpup' ) ?>
|
130 |
+
</a>
|
131 |
+
|
132 |
+
<a style="float: right;" href="<?= $job_url ?>">
|
133 |
+
<img src="<?= $logo_url ?>" alt="<?= esc_attr__( 'Work for Inpsyde', 'backwpup' ) ?>">
|
134 |
+
</a>
|
135 |
+
</p>
|
136 |
+
</div>
|
137 |
+
<script>
|
138 |
+
(
|
139 |
+
function( $ ) {
|
140 |
+
$( '#backwpup_dismiss_become_new_inpsyder' ).on( 'click', function( e ) {
|
141 |
+
e.preventDefault();
|
142 |
+
$.post( $( this ).attr( 'href' ), { isAjax: 1 } );
|
143 |
+
$( '#backwpup_become_inpsyder' ).hide();
|
144 |
+
$( '#backwpup_become_inpsyder-hide' ).click();
|
145 |
+
} );
|
146 |
+
}
|
147 |
+
)( jQuery );
|
148 |
+
</script>
|
149 |
+
<?php
|
150 |
+
|
151 |
+
return ob_get_clean();
|
152 |
+
}
|
153 |
+
}
|
inc/class-cron.php
CHANGED
@@ -21,7 +21,7 @@ class BackWPup_Cron {
|
|
21 |
return;
|
22 |
}
|
23 |
|
24 |
-
$arg = abs( $arg );
|
25 |
if ( ! $arg ) {
|
26 |
return;
|
27 |
}
|
@@ -129,6 +129,10 @@ class BackWPup_Cron {
|
|
129 |
return;
|
130 |
}
|
131 |
|
|
|
|
|
|
|
|
|
132 |
if ( isset( $_GET[ 'backwpup_run' ] ) ) {
|
133 |
$args[ 'run' ] = sanitize_text_field( $_GET[ 'backwpup_run' ] );
|
134 |
}
|
21 |
return;
|
22 |
}
|
23 |
|
24 |
+
$arg = is_numeric( $arg ) ? abs( (int) $arg ) : 0;
|
25 |
if ( ! $arg ) {
|
26 |
return;
|
27 |
}
|
129 |
return;
|
130 |
}
|
131 |
|
132 |
+
if ( ! is_array( $args ) ) {
|
133 |
+
$args = array();
|
134 |
+
}
|
135 |
+
|
136 |
if ( isset( $_GET[ 'backwpup_run' ] ) ) {
|
137 |
$args[ 'run' ] = sanitize_text_field( $_GET[ 'backwpup_run' ] );
|
138 |
}
|
inc/class-dismissible-notice-option.php
ADDED
@@ -0,0 +1,263 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
*
|
5 |
+
*/
|
6 |
+
class BackWPup_Dismissible_Notice_Option {
|
7 |
+
|
8 |
+
const OPTION_PREFIX = 'backwpup_dinotopt_';
|
9 |
+
const FOR_GOOD_ACTION = 'dismiss_admin_notice_for_good';
|
10 |
+
const FOR_NOW_ACTION = 'dismiss_admin_notice_for_now';
|
11 |
+
const FOR_USER_FOR_GOOD_ACTION = 'dismiss_admin_notice_for_good_user';
|
12 |
+
const SKIP = 'skip_action';
|
13 |
+
|
14 |
+
private static $setup = array( 'sitewide' => array(), 'blog' => array() );
|
15 |
+
|
16 |
+
private static $all_actions = array( self::FOR_GOOD_ACTION, self::FOR_NOW_ACTION, self::FOR_USER_FOR_GOOD_ACTION );
|
17 |
+
|
18 |
+
/**
|
19 |
+
* @var bool
|
20 |
+
*/
|
21 |
+
private $sitewide;
|
22 |
+
|
23 |
+
/**
|
24 |
+
* @param bool $sitewide
|
25 |
+
* @param string $notice_id
|
26 |
+
* @param string $capability
|
27 |
+
*/
|
28 |
+
public static function setup_actions( $sitewide, $notice_id, $capability = 'read' ) {
|
29 |
+
|
30 |
+
if ( ! is_string( $notice_id ) ) {
|
31 |
+
return;
|
32 |
+
}
|
33 |
+
|
34 |
+
$sitewide = $sitewide && is_multisite();
|
35 |
+
|
36 |
+
$key = $sitewide ? 'sitewide' : 'blog';
|
37 |
+
|
38 |
+
if ( array_key_exists( $notice_id, self::$setup[ $key ] ) ) {
|
39 |
+
return;
|
40 |
+
}
|
41 |
+
|
42 |
+
if ( self::$setup[ $key ] === array() ) {
|
43 |
+
$option = new BackWPup_Dismissible_Notice_Option( $sitewide );
|
44 |
+
add_action( 'admin_post_' . self::FOR_GOOD_ACTION, array( $option, 'dismiss' ) );
|
45 |
+
add_action( 'admin_post_' . self::FOR_NOW_ACTION, array( $option, 'dismiss' ) );
|
46 |
+
add_action( 'admin_post_' . self::FOR_USER_FOR_GOOD_ACTION, array( $option, 'dismiss' ) );
|
47 |
+
}
|
48 |
+
|
49 |
+
self::$setup[ $key ][ $notice_id ] = $capability;
|
50 |
+
}
|
51 |
+
|
52 |
+
/**
|
53 |
+
* Returns the URL that can be used to dismiss a given notice for good or temporarily according to given action.
|
54 |
+
*
|
55 |
+
* @param string $notice_id
|
56 |
+
* @param string $action
|
57 |
+
*
|
58 |
+
* @return string
|
59 |
+
*/
|
60 |
+
public static function dismiss_action_url( $notice_id, $action ) {
|
61 |
+
|
62 |
+
return add_query_arg(
|
63 |
+
array(
|
64 |
+
'action' => $action,
|
65 |
+
'notice' => $notice_id,
|
66 |
+
'blog' => get_current_blog_id(),
|
67 |
+
$action => wp_create_nonce( $action ),
|
68 |
+
),
|
69 |
+
admin_url( 'admin-post.php' )
|
70 |
+
);
|
71 |
+
}
|
72 |
+
|
73 |
+
/**
|
74 |
+
* @param bool $sitewide
|
75 |
+
*/
|
76 |
+
public function __construct( $sitewide = false ) {
|
77 |
+
$this->sitewide = $sitewide;
|
78 |
+
}
|
79 |
+
|
80 |
+
/**
|
81 |
+
* Returns true when given notice is dismissed for good or temporarily for current user.
|
82 |
+
*
|
83 |
+
* @param $notice_id
|
84 |
+
*
|
85 |
+
* @return bool
|
86 |
+
*/
|
87 |
+
public function is_dismissed( $notice_id ) {
|
88 |
+
|
89 |
+
$option_name = self::OPTION_PREFIX . $notice_id;
|
90 |
+
|
91 |
+
// Dismissed for good?
|
92 |
+
$option = $this->sitewide ? get_site_option( $option_name ) : get_option( $option_name );
|
93 |
+
if ( $option ) {
|
94 |
+
return true;
|
95 |
+
}
|
96 |
+
|
97 |
+
// Dismissed for good for user?
|
98 |
+
if ( get_user_option( $option_name ) ) {
|
99 |
+
return true;
|
100 |
+
}
|
101 |
+
|
102 |
+
// Dismissed for now for user?
|
103 |
+
$transient_name = self::OPTION_PREFIX . $notice_id . get_current_user_id();
|
104 |
+
$transient = $this->sitewide ? get_site_transient( $transient_name ) : get_transient( $transient_name );
|
105 |
+
|
106 |
+
return (bool) $transient;
|
107 |
+
}
|
108 |
+
|
109 |
+
/**
|
110 |
+
* Action callback to dismiss an action for good.
|
111 |
+
*/
|
112 |
+
public function dismiss() {
|
113 |
+
|
114 |
+
list( $action, $notice_id, $is_ajax ) = $this->assert_allowed();
|
115 |
+
|
116 |
+
$end_request = true;
|
117 |
+
|
118 |
+
switch ( $action ) {
|
119 |
+
case self::FOR_GOOD_ACTION :
|
120 |
+
$this->dismiss_for_good( $notice_id );
|
121 |
+
break;
|
122 |
+
case self::FOR_USER_FOR_GOOD_ACTION :
|
123 |
+
$this->dismiss_for_user_for_good( $notice_id );
|
124 |
+
break;
|
125 |
+
case self::FOR_NOW_ACTION :
|
126 |
+
$this->dismiss_for_now( $notice_id );
|
127 |
+
break;
|
128 |
+
case self::SKIP :
|
129 |
+
$end_request = false;
|
130 |
+
break;
|
131 |
+
}
|
132 |
+
|
133 |
+
$end_request and $this->end_request( $is_ajax );
|
134 |
+
}
|
135 |
+
|
136 |
+
/**
|
137 |
+
* Action callback to dismiss an action for good.
|
138 |
+
*
|
139 |
+
* @param string $notice_id
|
140 |
+
*/
|
141 |
+
private function dismiss_for_good( $notice_id ) {
|
142 |
+
|
143 |
+
$option_name = self::OPTION_PREFIX . $notice_id;
|
144 |
+
|
145 |
+
$this->sitewide
|
146 |
+
? update_site_option( $option_name, 1 )
|
147 |
+
: update_option( $option_name, 1, false );
|
148 |
+
}
|
149 |
+
|
150 |
+
/**
|
151 |
+
* Action callback to dismiss an action definitively for current user.
|
152 |
+
*
|
153 |
+
* @param string $notice_id
|
154 |
+
*/
|
155 |
+
private function dismiss_for_user_for_good( $notice_id ) {
|
156 |
+
|
157 |
+
update_user_option(
|
158 |
+
get_current_user_id(),
|
159 |
+
self::OPTION_PREFIX . $notice_id,
|
160 |
+
1,
|
161 |
+
$this->sitewide
|
162 |
+
);
|
163 |
+
}
|
164 |
+
|
165 |
+
/**
|
166 |
+
* Action callback to dismiss an action temporarily for current user.
|
167 |
+
*
|
168 |
+
* @param string $notice_id
|
169 |
+
*/
|
170 |
+
private function dismiss_for_now( $notice_id ) {
|
171 |
+
|
172 |
+
$transient_name = self::OPTION_PREFIX . $notice_id . get_current_user_id();
|
173 |
+
$expiration = 12 * HOUR_IN_SECONDS;
|
174 |
+
|
175 |
+
$this->sitewide
|
176 |
+
? set_site_transient( $transient_name, 1, $expiration )
|
177 |
+
: set_transient( $transient_name, 1, $expiration );
|
178 |
+
}
|
179 |
+
|
180 |
+
/**
|
181 |
+
* Ends a request redirecting to referer page.
|
182 |
+
*
|
183 |
+
* @param bool $no_redirect
|
184 |
+
*/
|
185 |
+
private function end_request( $no_redirect = false ) {
|
186 |
+
|
187 |
+
if ( $no_redirect ) {
|
188 |
+
exit();
|
189 |
+
}
|
190 |
+
|
191 |
+
$referer = wp_get_raw_referer();
|
192 |
+
if ( ! $referer ) {
|
193 |
+
$referer = $this->sitewide && is_super_admin() ? network_admin_url() : admin_url();
|
194 |
+
}
|
195 |
+
|
196 |
+
wp_safe_redirect( $referer );
|
197 |
+
exit();
|
198 |
+
}
|
199 |
+
|
200 |
+
/**
|
201 |
+
* @return array
|
202 |
+
*/
|
203 |
+
private function assert_allowed() {
|
204 |
+
|
205 |
+
if ( ! is_admin() ) {
|
206 |
+
$this->end_request();
|
207 |
+
}
|
208 |
+
|
209 |
+
$definition = array(
|
210 |
+
'action' => FILTER_SANITIZE_STRING,
|
211 |
+
'notice' => FILTER_SANITIZE_STRING,
|
212 |
+
'blog' => FILTER_SANITIZE_NUMBER_INT,
|
213 |
+
'isAjax' => FILTER_VALIDATE_BOOLEAN,
|
214 |
+
);
|
215 |
+
|
216 |
+
$data = array_merge(
|
217 |
+
array_filter( (array) filter_input_array( INPUT_GET, $definition ) ),
|
218 |
+
array_filter( (array) filter_input_array( INPUT_POST, $definition ) )
|
219 |
+
);
|
220 |
+
|
221 |
+
$is_ajax = ! empty( $data[ 'isAjax' ] );
|
222 |
+
$action = empty( $data[ 'action' ] ) ? '' : $data[ 'action' ];
|
223 |
+
$notice = empty( $data[ 'notice' ] ) ? '' : $data[ 'notice' ];
|
224 |
+
|
225 |
+
if (
|
226 |
+
! $action
|
227 |
+
|| ! $notice
|
228 |
+
|| ! is_string( $notice )
|
229 |
+
|| ! in_array( $action, self::$all_actions, true )
|
230 |
+
) {
|
231 |
+
$this->end_request( $is_ajax );
|
232 |
+
}
|
233 |
+
|
234 |
+
$key = $this->sitewide ? 'sitewide' : 'blog';
|
235 |
+
$swap_key = $this->sitewide ? 'blog' : 'sitewide';
|
236 |
+
$capability = empty( self::$setup[ $key ][ $notice ] ) ? '' : self::$setup[ $key ][ $notice ];
|
237 |
+
|
238 |
+
if ( ! $capability && ! empty( self::$setup[ $swap_key ][ $notice ] ) ) {
|
239 |
+
return array( self::SKIP, '', $is_ajax );
|
240 |
+
}
|
241 |
+
|
242 |
+
if ( ! $capability || ! current_user_can( $capability ) ) {
|
243 |
+
$this->end_request( $is_ajax );
|
244 |
+
}
|
245 |
+
|
246 |
+
$nonce = filter_input( INPUT_POST, $action, FILTER_SANITIZE_STRING );
|
247 |
+
$nonce or $nonce = filter_input( INPUT_GET, $action, FILTER_SANITIZE_STRING );
|
248 |
+
|
249 |
+
if ( ! $nonce || ! wp_verify_nonce( $nonce, $action ) ) {
|
250 |
+
$this->end_request( $is_ajax );
|
251 |
+
}
|
252 |
+
|
253 |
+
if (
|
254 |
+
! $this->sitewide
|
255 |
+
&& ( empty( $data[ 'blog' ] ) || (int) get_current_blog_id() !== (int) $data[ 'blog' ] )
|
256 |
+
) {
|
257 |
+
$this->end_request( $is_ajax );
|
258 |
+
}
|
259 |
+
|
260 |
+
return array( $action, $notice, $is_ajax );
|
261 |
+
}
|
262 |
+
|
263 |
+
}
|
inc/class-encryption-fallback.php
ADDED
@@ -0,0 +1,93 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Encrypt / decrypt data using a trivial character substitution algorithm.
|
4 |
+
*
|
5 |
+
* This should never be used, really. However, if neither Open SSL or mcrypt are available, we don't really
|
6 |
+
* have choice for a better double way encryption.
|
7 |
+
* If should consider to require either Open SSL or mcrypt to avoid the usage of this class.
|
8 |
+
*
|
9 |
+
* Normally we should implement an interface, but at the moment with PHP 5.2 and the "poor" autoloader we have,
|
10 |
+
* an interface would just be another file in "/inc" folder causing confusion. Also, I don't want to create an
|
11 |
+
* interface in a file named `class-...php`. When we get rid of PHP 5.2, we setup a better autoloader and we get rid of
|
12 |
+
* WP coding standard, we finally could consider to introduce an interface.
|
13 |
+
*/
|
14 |
+
class BackWPup_Encryption_Fallback {
|
15 |
+
|
16 |
+
const PREFIX = 'ENC1$';
|
17 |
+
|
18 |
+
/**
|
19 |
+
* @return bool
|
20 |
+
*/
|
21 |
+
public static function supported() {
|
22 |
+
|
23 |
+
/** @TODO: Should we inform the user about the security risk? and how? */
|
24 |
+
return true;
|
25 |
+
}
|
26 |
+
|
27 |
+
/**
|
28 |
+
* @param string $enc_key
|
29 |
+
* @param string $key_type
|
30 |
+
*/
|
31 |
+
public function __construct( $enc_key, $key_type ) {
|
32 |
+
$this->key = md5( (string) $enc_key );
|
33 |
+
$this->key_type = (string) $key_type;
|
34 |
+
}
|
35 |
+
|
36 |
+
/**
|
37 |
+
*
|
38 |
+
* Encrypt a string (Passwords)
|
39 |
+
*
|
40 |
+
* @param string $string value to encrypt
|
41 |
+
*
|
42 |
+
* @return string encrypted string
|
43 |
+
*/
|
44 |
+
public function encrypt( $string ) {
|
45 |
+
|
46 |
+
$result = '';
|
47 |
+
for ( $i = 0; $i < strlen( $string ); $i ++ ) {
|
48 |
+
$char = substr( $string, $i, 1 );
|
49 |
+
$key_char = substr( $this->key, ( $i % strlen( $this->key ) ) - 1, 1 );
|
50 |
+
$char = chr( ord( $char ) + ord( $key_char ) );
|
51 |
+
$result .= $char;
|
52 |
+
}
|
53 |
+
|
54 |
+
return BackWPup_Encryption::PREFIX . self::PREFIX . $this->key_type . base64_encode( $result );
|
55 |
+
|
56 |
+
}
|
57 |
+
|
58 |
+
/**
|
59 |
+
*
|
60 |
+
* Decrypt a string (Passwords)
|
61 |
+
*
|
62 |
+
* @param string $string value to decrypt
|
63 |
+
*
|
64 |
+
* @return string decrypted string
|
65 |
+
*/
|
66 |
+
public function decrypt( $string ) {
|
67 |
+
|
68 |
+
if (
|
69 |
+
! is_string( $string )
|
70 |
+
|| ! $string
|
71 |
+
|| strpos( $string, BackWPup_Encryption::PREFIX . self::PREFIX . $this->key_type ) !== 0
|
72 |
+
) {
|
73 |
+
return '';
|
74 |
+
}
|
75 |
+
|
76 |
+
$no_prefix = substr( $string, strlen( BackWPup_Encryption::PREFIX . self::PREFIX . $this->key_type ) );
|
77 |
+
|
78 |
+
$encrypted = base64_decode( $no_prefix, true );
|
79 |
+
if ( $encrypted === false ) {
|
80 |
+
return '';
|
81 |
+
}
|
82 |
+
|
83 |
+
$result = '';
|
84 |
+
for ( $i = 0; $i < strlen( $encrypted ); $i ++ ) {
|
85 |
+
$char = substr( $encrypted, $i, 1 );
|
86 |
+
$key_char = substr( $this->key, ( $i % strlen( $this->key ) ) - 1, 1 );
|
87 |
+
$char = chr( ord( $char ) - ord( $key_char ) );
|
88 |
+
$result .= $char;
|
89 |
+
}
|
90 |
+
|
91 |
+
return $result;
|
92 |
+
}
|
93 |
+
}
|
inc/class-encryption-mcrypt.php
ADDED
@@ -0,0 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Encrypt / decrypt data using mcrypt.
|
4 |
+
*
|
5 |
+
* This is the method used with PHP 5.2 or when Open SSL is not available.
|
6 |
+
*
|
7 |
+
* mcrypt is abandonware and has unpatched bugs, however because of PHP 5.2 support we still support it.
|
8 |
+
* We also use mcrypt in more modern PHP version when Open SSL is not available and in the case that we are in
|
9 |
+
* PHP 7.1 we call mcrypt with the mute operator to avoid warnings.
|
10 |
+
*
|
11 |
+
* Normally we should implement an interface, but at the moment with PHP 5.2 and the "poor" autoloader we have,
|
12 |
+
* an interface would just be another file in "/inc" folder causing confusion. Also, I don't want to create an
|
13 |
+
* interface in a file named `class-...php`. When we get rid of PHP 5.2, we setup a better autoloader and we get rid of
|
14 |
+
* WP coding standard, we finally could consider to introduce an interface.
|
15 |
+
*/
|
16 |
+
class BackWPup_Encryption_Mcrypt {
|
17 |
+
|
18 |
+
const PREFIX = 'RIJNDAEL$';
|
19 |
+
|
20 |
+
/**
|
21 |
+
* @var bool
|
22 |
+
*/
|
23 |
+
private $deprecated = false;
|
24 |
+
|
25 |
+
/**
|
26 |
+
* @return bool
|
27 |
+
*/
|
28 |
+
public static function supported() {
|
29 |
+
return function_exists( 'mcrypt_encrypt' );
|
30 |
+
}
|
31 |
+
|
32 |
+
/**
|
33 |
+
* @param string $enc_key
|
34 |
+
* @param string $key_type
|
35 |
+
*/
|
36 |
+
public function __construct( $enc_key, $key_type ) {
|
37 |
+
$this->key = md5( (string) $enc_key );
|
38 |
+
$this->key_type = (string) $key_type;
|
39 |
+
$this->deprecated = (bool) version_compare( PHP_VERSION, '7.1', '>=' );
|
40 |
+
|
41 |
+
/** @TODO: Should we do something here to inform user about deprecation? */
|
42 |
+
}
|
43 |
+
|
44 |
+
/**
|
45 |
+
*
|
46 |
+
* Encrypt a string (Passwords)
|
47 |
+
*
|
48 |
+
* @param string $string value to encrypt
|
49 |
+
*
|
50 |
+
* @return string encrypted string
|
51 |
+
*/
|
52 |
+
public function encrypt( $string ) {
|
53 |
+
|
54 |
+
if ( ! is_string( $string ) || ! $string ) {
|
55 |
+
return '';
|
56 |
+
}
|
57 |
+
|
58 |
+
$encrypted = $this->deprecated
|
59 |
+
? @mcrypt_encrypt( MCRYPT_RIJNDAEL_256, $this->key, $string, MCRYPT_MODE_CBC, md5( $this->key ) )
|
60 |
+
: mcrypt_encrypt( MCRYPT_RIJNDAEL_256, $this->key, $string, MCRYPT_MODE_CBC, md5( $this->key ) );
|
61 |
+
|
62 |
+
return BackWPup_Encryption::PREFIX . self::PREFIX . $this->key_type . base64_encode( $encrypted );
|
63 |
+
|
64 |
+
}
|
65 |
+
|
66 |
+
/**
|
67 |
+
*
|
68 |
+
* Decrypt a string (Passwords)
|
69 |
+
*
|
70 |
+
* @param string $string value to decrypt
|
71 |
+
*
|
72 |
+
* @return string decrypted string
|
73 |
+
*/
|
74 |
+
public function decrypt( $string ) {
|
75 |
+
|
76 |
+
if (
|
77 |
+
! is_string( $string )
|
78 |
+
|| ! $string
|
79 |
+
|| strpos( $string, BackWPup_Encryption::PREFIX . self::PREFIX . $this->key_type ) !== 0
|
80 |
+
) {
|
81 |
+
return '';
|
82 |
+
}
|
83 |
+
|
84 |
+
$no_prefix = substr( $string, strlen( BackWPup_Encryption::PREFIX . self::PREFIX . $this->key_type ) );
|
85 |
+
|
86 |
+
$encrypted = base64_decode( $no_prefix, true );
|
87 |
+
if ( $encrypted === false ) {
|
88 |
+
return '';
|
89 |
+
}
|
90 |
+
|
91 |
+
return $this->deprecated
|
92 |
+
? @mcrypt_decrypt( MCRYPT_RIJNDAEL_256, $this->key, $encrypted, MCRYPT_MODE_CBC, md5( $this->key ) )
|
93 |
+
: mcrypt_decrypt( MCRYPT_RIJNDAEL_256, $this->key, $encrypted, MCRYPT_MODE_CBC, md5( $this->key ) );
|
94 |
+
}
|
95 |
+
}
|
inc/class-encryption-openssl.php
ADDED
@@ -0,0 +1,131 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Encrypt / decrypt data using Open SSL.
|
4 |
+
*
|
5 |
+
* This is the method used with PHP 5.3+ and open SSL lib available.
|
6 |
+
*
|
7 |
+
* Normally we should implement an interface, but at the moment with PHP 5.2 and the "poor" autoloader we have,
|
8 |
+
* an interface would just be another file in "/inc" folder causing confusion. Also, I don't want to create an
|
9 |
+
* interface in a file named `class-...php`. When we get rid of PHP 5.2, we setup a better autoloader and we get rid of
|
10 |
+
* WP coding standard, we finally could consider to introduce an interface.
|
11 |
+
*/
|
12 |
+
class BackWPup_Encryption_OpenSSL {
|
13 |
+
|
14 |
+
const PREFIX = 'OSSL$';
|
15 |
+
|
16 |
+
private static $cipher_method;
|
17 |
+
|
18 |
+
/**
|
19 |
+
* @return bool
|
20 |
+
*/
|
21 |
+
public static function supported() {
|
22 |
+
return
|
23 |
+
version_compare( PHP_VERSION, '5.3.0', '>=' )
|
24 |
+
&& function_exists( 'openssl_get_cipher_methods' )
|
25 |
+
&& self::cipher_method();
|
26 |
+
}
|
27 |
+
|
28 |
+
/**
|
29 |
+
* @return string
|
30 |
+
*/
|
31 |
+
private static function cipher_method() {
|
32 |
+
|
33 |
+
if ( is_string( self::$cipher_method ) ) {
|
34 |
+
return self::$cipher_method;
|
35 |
+
}
|
36 |
+
|
37 |
+
$all_methods = openssl_get_cipher_methods();
|
38 |
+
if ( ! $all_methods ) {
|
39 |
+
self::$cipher_method = '';
|
40 |
+
|
41 |
+
return '';
|
42 |
+
}
|
43 |
+
|
44 |
+
$preferred = array( 'AES-256-CTR', 'AES-128-CTR', 'AES-192-CTR' );
|
45 |
+
foreach( $preferred as $method ) {
|
46 |
+
if ( in_array( $method, $all_methods, true ) ) {
|
47 |
+
self::$cipher_method = $method;
|
48 |
+
|
49 |
+
return $method;
|
50 |
+
}
|
51 |
+
}
|
52 |
+
|
53 |
+
self::$cipher_method = reset( $all_methods );
|
54 |
+
|
55 |
+
return self::$cipher_method;
|
56 |
+
}
|
57 |
+
|
58 |
+
/**
|
59 |
+
* @param string $enc_key
|
60 |
+
* @param string $key_type
|
61 |
+
*/
|
62 |
+
public function __construct( $enc_key, $key_type ) {
|
63 |
+
$this->key = md5( (string) $enc_key );
|
64 |
+
$this->key_type = (string) $key_type;
|
65 |
+
}
|
66 |
+
|
67 |
+
/**
|
68 |
+
*
|
69 |
+
* Encrypt a string using Open SSL lib with AES-256-CTR cypher
|
70 |
+
*
|
71 |
+
* @param string $string value to encrypt
|
72 |
+
*
|
73 |
+
* @return string encrypted string
|
74 |
+
*/
|
75 |
+
public function encrypt( $string ) {
|
76 |
+
|
77 |
+
if ( ! is_string( $string ) || ! $string ) {
|
78 |
+
return '';
|
79 |
+
}
|
80 |
+
|
81 |
+
$nonce = openssl_random_pseudo_bytes( openssl_cipher_iv_length( self::cipher_method() ) );
|
82 |
+
|
83 |
+
$encrypted = openssl_encrypt(
|
84 |
+
$string,
|
85 |
+
self::cipher_method(),
|
86 |
+
$this->key,
|
87 |
+
OPENSSL_RAW_DATA,
|
88 |
+
$nonce
|
89 |
+
);
|
90 |
+
|
91 |
+
return BackWPup_Encryption::PREFIX . self::PREFIX . $this->key_type . base64_encode( $nonce . $encrypted );
|
92 |
+
}
|
93 |
+
|
94 |
+
/**
|
95 |
+
*
|
96 |
+
* Decrypt a string using Open SSL lib with AES-256-CTR cypher
|
97 |
+
*
|
98 |
+
* @param string $string value to decrypt
|
99 |
+
*
|
100 |
+
* @return string decrypted string
|
101 |
+
*/
|
102 |
+
public function decrypt( $string ) {
|
103 |
+
|
104 |
+
if (
|
105 |
+
! is_string( $string )
|
106 |
+
|| ! $string
|
107 |
+
|| strpos( $string, BackWPup_Encryption::PREFIX . self::PREFIX . $this->key_type ) !== 0
|
108 |
+
) {
|
109 |
+
return '';
|
110 |
+
}
|
111 |
+
|
112 |
+
$no_prefix = substr( $string, strlen( BackWPup_Encryption::PREFIX . self::PREFIX . $this->key_type ) );
|
113 |
+
|
114 |
+
$encrypted = base64_decode( $no_prefix, true );
|
115 |
+
if ( $encrypted === false ) {
|
116 |
+
return '';
|
117 |
+
}
|
118 |
+
|
119 |
+
$nonce_size = openssl_cipher_iv_length( self::cipher_method() );
|
120 |
+
$nonce = substr( $encrypted, 0, $nonce_size );
|
121 |
+
$to_decrypt = substr( $encrypted, $nonce_size );
|
122 |
+
|
123 |
+
return openssl_decrypt(
|
124 |
+
$to_decrypt,
|
125 |
+
self::cipher_method(),
|
126 |
+
$this->key,
|
127 |
+
OPENSSL_RAW_DATA,
|
128 |
+
$nonce
|
129 |
+
);
|
130 |
+
}
|
131 |
+
}
|
inc/class-encryption.php
CHANGED
@@ -1,12 +1,31 @@
|
|
1 |
<?php
|
2 |
/**
|
|
|
3 |
*
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
*/
|
5 |
class BackWPup_Encryption {
|
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
/**
|
8 |
*
|
9 |
-
* Encrypt a string
|
|
|
|
|
|
|
10 |
*
|
11 |
* @param string $string value to encrypt
|
12 |
*
|
@@ -14,42 +33,54 @@ class BackWPup_Encryption {
|
|
14 |
*/
|
15 |
public static function encrypt( $string ) {
|
16 |
|
17 |
-
if (
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
return $string;
|
19 |
}
|
20 |
|
21 |
-
|
22 |
-
|
23 |
-
if ( strpos( $string, '$BackWPup$ENC1$O$' ) !== FALSE && strpos( $string, '$BackWPup$RIJNDAEL$O$' ) !== FALSE && defined( 'BACKWPUP_ENC_KEY' ) && BACKWPUP_ENC_KEY ) {
|
24 |
-
$string = self::decrypt( $string );
|
25 |
-
} else {
|
26 |
-
return $string;
|
27 |
-
}
|
28 |
}
|
|
|
|
|
|
|
29 |
|
30 |
-
|
31 |
-
$key = BACKWPUP_ENC_KEY;
|
32 |
-
$key_type = 'O$';
|
33 |
-
} else {
|
34 |
-
$key = DB_NAME . DB_USER . DB_PASSWORD;
|
35 |
-
$key_type = '';
|
36 |
}
|
37 |
|
38 |
-
$
|
39 |
|
40 |
-
|
41 |
-
|
42 |
-
for ( $i = 0; $i < strlen( $string ); $i ++ ) {
|
43 |
-
$char = substr( $string, $i, 1 );
|
44 |
-
$keychar = substr( $key, ( $i % strlen( $key ) ) - 1, 1 );
|
45 |
-
$char = chr( ord( $char ) + ord( $keychar ) );
|
46 |
-
$result .= $char;
|
47 |
-
}
|
48 |
|
49 |
-
|
|
|
|
|
|
|
50 |
}
|
51 |
|
52 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
}
|
54 |
|
55 |
/**
|
@@ -62,41 +93,119 @@ class BackWPup_Encryption {
|
|
62 |
*/
|
63 |
public static function decrypt( $string ) {
|
64 |
|
65 |
-
if (
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
return $string;
|
67 |
}
|
68 |
|
|
|
|
|
|
|
|
|
69 |
|
70 |
-
|
71 |
-
|
72 |
-
$key = BACKWPUP_ENC_KEY;
|
73 |
-
} else {
|
74 |
-
$key_type = '';
|
75 |
-
$key = DB_NAME . DB_USER . DB_PASSWORD;
|
76 |
}
|
77 |
|
78 |
-
|
|
|
|
|
|
|
|
|
79 |
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
}
|
90 |
|
91 |
-
return $
|
92 |
}
|
93 |
|
94 |
-
|
95 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
|
97 |
-
|
|
|
98 |
}
|
99 |
|
100 |
-
return $
|
101 |
}
|
102 |
}
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Encrypt / decrypt data using the best algorithm available.
|
4 |
*
|
5 |
+
* This should be converted to a real object (instead of a all-static, "poor man namespace" class) and a algorithm
|
6 |
+
* factory should be injected, to be used to create an instance of an algorithm instance.
|
7 |
+
* However, at the moment with PHP 5.2 and the "poor" autoloader we have, an interface would just be another file in
|
8 |
+
* "/inc" folder causing confusion. Also, I don't want to create an interface in a file named `class-...php`.
|
9 |
+
* When we get rid of PHP 5.2, we setup a better autoloader and we get rid of WP coding standard, we finally should
|
10 |
+
* refactor to proper code.
|
11 |
*/
|
12 |
class BackWPup_Encryption {
|
13 |
|
14 |
+
const PREFIX = '$BackWPup$';
|
15 |
+
const KEY_TYPE_CUSTOM = '$0';
|
16 |
+
|
17 |
+
private static $classes = array(
|
18 |
+
BackWPup_Encryption_OpenSSL::PREFIX => 'BackWPup_Encryption_OpenSSL',
|
19 |
+
BackWPup_Encryption_Mcrypt::PREFIX => 'BackWPup_Encryption_Mcrypt',
|
20 |
+
BackWPup_Encryption_Fallback::PREFIX => 'BackWPup_Encryption_Fallback',
|
21 |
+
);
|
22 |
+
|
23 |
/**
|
24 |
*
|
25 |
+
* Encrypt a string using the best algorithm available.
|
26 |
+
*
|
27 |
+
* In case the given string is encrypted with a weaker algorithm, it will first be decrypted then the plain text
|
28 |
+
* obtained is encrypted with the better algorithm available and returned.
|
29 |
*
|
30 |
* @param string $string value to encrypt
|
31 |
*
|
33 |
*/
|
34 |
public static function encrypt( $string ) {
|
35 |
|
36 |
+
if ( ! is_string( $string ) || ! $string ) {
|
37 |
+
return '';
|
38 |
+
}
|
39 |
+
|
40 |
+
try {
|
41 |
+
$cypher_class = self::cypher_class_for_string( $string );
|
42 |
+
}
|
43 |
+
catch ( \Exception $e ) {
|
44 |
+
|
45 |
+
/** @TODO what to do here? The string is encrypted, but cypher used to encrypt isn't supported in current system */
|
46 |
+
|
47 |
return $string;
|
48 |
}
|
49 |
|
50 |
+
try {
|
51 |
+
list( $key, $key_type ) = self::get_encrypt_info( $cypher_class, $string );
|
|
|
|
|
|
|
|
|
|
|
52 |
}
|
53 |
+
catch ( \Exception $e ) {
|
54 |
+
|
55 |
+
/** @TODO what to do here? The string is encrypted, a custom key was used to encrypt, but it is not available anymore */
|
56 |
|
57 |
+
return $string;
|
|
|
|
|
|
|
|
|
|
|
58 |
}
|
59 |
|
60 |
+
$best_cipher_class = self::best_cypher();
|
61 |
|
62 |
+
// The given string is not encrypted, let's encrypt it and return
|
63 |
+
if ( ! $cypher_class ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
|
65 |
+
/** @var BackWPup_Encryption_OpenSSL|BackWPup_Encryption_Mcrypt|BackWPup_Encryption_Fallback $best_cypher */
|
66 |
+
$best_cypher = new $best_cipher_class( $key, $key_type );
|
67 |
+
|
68 |
+
return $best_cypher->encrypt( $string );
|
69 |
}
|
70 |
|
71 |
+
$encryption_count = substr_count( $string, self::PREFIX );
|
72 |
+
|
73 |
+
// The given string is encrypted once using best cypher, let's just return it
|
74 |
+
if ( $encryption_count === 1 && $cypher_class === $best_cipher_class ) {
|
75 |
+
return $string;
|
76 |
+
}
|
77 |
+
|
78 |
+
/** @var BackWPup_Encryption_OpenSSL|BackWPup_Encryption_Mcrypt|BackWPup_Encryption_Fallback $cypher */
|
79 |
+
$cypher = new $cypher_class( $key, $key_type );
|
80 |
+
|
81 |
+
$string = $cypher->decrypt( $string );
|
82 |
+
|
83 |
+
return self::encrypt( $string );
|
84 |
}
|
85 |
|
86 |
/**
|
93 |
*/
|
94 |
public static function decrypt( $string ) {
|
95 |
|
96 |
+
if ( ! is_string( $string ) || ! $string ) {
|
97 |
+
return '';
|
98 |
+
}
|
99 |
+
|
100 |
+
try {
|
101 |
+
$cypher_class = self::cypher_class_for_string( $string );
|
102 |
+
}
|
103 |
+
catch ( \Exception $e ) {
|
104 |
+
|
105 |
+
/** @TODO what to do here? The cypher used to encrypt is not supported in current system */
|
106 |
+
|
107 |
+
return '';
|
108 |
+
}
|
109 |
+
|
110 |
+
if ( ! $cypher_class ) {
|
111 |
+
|
112 |
+
/** @TODO what to do here? The string seems not encrypted or maybe is corrupted */
|
113 |
+
|
114 |
return $string;
|
115 |
}
|
116 |
|
117 |
+
try {
|
118 |
+
list( $key, $key_type ) = self::get_encrypt_info( $cypher_class, $string );
|
119 |
+
}
|
120 |
+
catch ( \Exception $e ) {
|
121 |
|
122 |
+
/** @TODO what to do here? A custom key was used to encrypt but it is not available anymore */
|
123 |
+
return '';
|
|
|
|
|
|
|
|
|
124 |
}
|
125 |
|
126 |
+
/** @var BackWPup_Encryption_OpenSSL|BackWPup_Encryption_Mcrypt|BackWPup_Encryption_Fallback $cypher */
|
127 |
+
$cypher = new $cypher_class( $key, $key_type );
|
128 |
+
|
129 |
+
return $cypher->decrypt( $string );
|
130 |
+
}
|
131 |
|
132 |
+
/**
|
133 |
+
* @param string $string
|
134 |
+
*
|
135 |
+
* @return string
|
136 |
+
* @throws Exception
|
137 |
+
*/
|
138 |
+
private static function cypher_class_for_string( $string ) {
|
139 |
+
|
140 |
+
foreach ( self::$classes as $prefix => $class ) {
|
141 |
+
|
142 |
+
$enc_prefix = self::PREFIX . $prefix;
|
143 |
+
|
144 |
+
if ( strpos( $string, $enc_prefix ) !== 0 ) {
|
145 |
+
continue;
|
146 |
+
}
|
147 |
+
|
148 |
+
if ( ! call_user_func( array( $class, 'supported' ) ) ) {
|
149 |
+
throw new \Exception(
|
150 |
+
"Give string was encrypted using {$class} but it is not currently supported in this system."
|
151 |
+
);
|
152 |
+
}
|
153 |
+
|
154 |
+
return $class;
|
155 |
+
}
|
156 |
+
|
157 |
+
return '';
|
158 |
+
}
|
159 |
+
|
160 |
+
/**
|
161 |
+
* @return string
|
162 |
+
*/
|
163 |
+
private static function best_cypher() {
|
164 |
+
|
165 |
+
foreach ( self::$classes as $prefix => $class ) {
|
166 |
+
|
167 |
+
if ( ! call_user_func( array( $class, 'supported' ) ) ) {
|
168 |
+
continue;
|
169 |
}
|
170 |
|
171 |
+
return $class;
|
172 |
}
|
173 |
|
174 |
+
// This should never happen because BackWPup_Encryption_Fallback::supported() always returns true
|
175 |
+
|
176 |
+
return '';
|
177 |
+
}
|
178 |
+
|
179 |
+
/**
|
180 |
+
* @param string|null $class
|
181 |
+
* @param string $string
|
182 |
+
*
|
183 |
+
* @return array
|
184 |
+
* @throws Exception
|
185 |
+
*/
|
186 |
+
private static function get_encrypt_info( $class = null, $string = '' ) {
|
187 |
+
|
188 |
+
$default_key = DB_NAME . DB_USER . DB_PASSWORD;
|
189 |
+
|
190 |
+
if ( ! is_string( $class ) || ! $class ) {
|
191 |
+
return defined( 'BACKWPUP_ENC_KEY' )
|
192 |
+
? array( BACKWPUP_ENC_KEY, self::KEY_TYPE_CUSTOM )
|
193 |
+
: array( $default_key, '' );
|
194 |
+
}
|
195 |
+
|
196 |
+
$enc_prefix = self::PREFIX . constant( "{$class}::PREFIX" );
|
197 |
+
$has_custom_key = strpos( $string, $enc_prefix . self::KEY_TYPE_CUSTOM ) === 0;
|
198 |
+
|
199 |
+
if ( $has_custom_key && ! defined( 'BACKWPUP_ENC_KEY' ) ) {
|
200 |
+
throw new \Exception(
|
201 |
+
"Give string was encrypted using a custom key but 'BACKWPUP_ENC_KEY' constant is not defined anymore."
|
202 |
+
);
|
203 |
+
}
|
204 |
|
205 |
+
if ( $has_custom_key ) {
|
206 |
+
return array( BACKWPUP_ENC_KEY, self::KEY_TYPE_CUSTOM );
|
207 |
}
|
208 |
|
209 |
+
return array( $default_key, '' );
|
210 |
}
|
211 |
}
|
inc/class-page-settings.php
CHANGED
@@ -298,7 +298,7 @@ class BackWPup_Page_Settings {
|
|
298 |
<div class="table ui-tabs-hide" id="backwpup-tab-net">
|
299 |
|
300 |
<h3><?php echo sprintf( __( 'Authentication for <code>%s</code>', 'backwpup' ), site_url( 'wp-cron.php' ) ); ?></h3>
|
301 |
-
<p><?php _e( 'If you protected your blog with HTTP basic authentication (.htaccess), or you use a Plugin to secure wp-cron.php,
|
302 |
<?php
|
303 |
$authentication = get_site_option( 'backwpup_cfg_authentication', array( 'method' => '', 'basic_user' => '', 'basic_password' => '', 'user_id' => 0, 'query_arg' => '' ) );
|
304 |
?>
|
298 |
<div class="table ui-tabs-hide" id="backwpup-tab-net">
|
299 |
|
300 |
<h3><?php echo sprintf( __( 'Authentication for <code>%s</code>', 'backwpup' ), site_url( 'wp-cron.php' ) ); ?></h3>
|
301 |
+
<p><?php _e( 'If you protected your blog with HTTP basic authentication (.htaccess), or you use a Plugin to secure wp-cron.php, then use the authentication methods below.', 'backwpup' ); ?></p>
|
302 |
<?php
|
303 |
$authentication = get_site_option( 'backwpup_cfg_authentication', array( 'method' => '', 'basic_user' => '', 'basic_password' => '', 'user_id' => 0, 'query_arg' => '' ) );
|
304 |
?>
|
inc/class-php-admin-notice.php
ADDED
@@ -0,0 +1,213 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
*
|
5 |
+
*/
|
6 |
+
class BackWPup_Php_Admin_Notice {
|
7 |
+
|
8 |
+
const NOTICE_ID = 'php52';
|
9 |
+
const MAIN_ADMIN_PAGE_ID = 'toplevel_page_backwpup';
|
10 |
+
|
11 |
+
/**
|
12 |
+
* A flag set once per request that is true when the notice should be shown on the page
|
13 |
+
*
|
14 |
+
* @var bool
|
15 |
+
*/
|
16 |
+
private static $should_show;
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Array of screen ids where we don't want to show any notice
|
20 |
+
*
|
21 |
+
* @var string[]
|
22 |
+
*/
|
23 |
+
private static $pages_to_skip = array(
|
24 |
+
'backwpup-pro_page_backwpupabout',
|
25 |
+
'backwpup-pro_page_backwpup-phone-home-consent',
|
26 |
+
);
|
27 |
+
|
28 |
+
/**
|
29 |
+
* For PHP 5.2 users, display an admin notice when not in any of the BackWPup admin pages.
|
30 |
+
* On BackWPup admin pages an "extended" version of the notice is shown, so no need of the notice.
|
31 |
+
*
|
32 |
+
* @wp-hook admin_notices
|
33 |
+
*/
|
34 |
+
public function admin_notice() {
|
35 |
+
if ( $this->should_display() ) {
|
36 |
+
echo $this->admin_notice_markup();
|
37 |
+
}
|
38 |
+
}
|
39 |
+
|
40 |
+
/**
|
41 |
+
* For PHP 5.2 users, display a notice in all the the BackWPup admin pages.
|
42 |
+
*/
|
43 |
+
public function admin_page_message() {
|
44 |
+
if ( get_current_screen()->id === self::MAIN_ADMIN_PAGE_ID && $this->should_display( true ) ) {
|
45 |
+
echo $this->admin_page_markup();
|
46 |
+
}
|
47 |
+
}
|
48 |
+
|
49 |
+
/**
|
50 |
+
* We don't display the notice if the PHP version is higher that PHP 5.3
|
51 |
+
* or if it was dismissed for good.
|
52 |
+
*
|
53 |
+
* @param bool $check_only_version
|
54 |
+
*
|
55 |
+
* @return bool
|
56 |
+
*/
|
57 |
+
private function should_display( $check_only_version = false ) {
|
58 |
+
|
59 |
+
// If already checked, don't check again
|
60 |
+
if ( is_bool( self::$should_show ) ) {
|
61 |
+
return self::$should_show;
|
62 |
+
}
|
63 |
+
|
64 |
+
// By default, we don't show the notice to user with PHP 5.3+, but we make it filterable
|
65 |
+
$allowed_version = apply_filters( 'backwpup_php52_notice_allowed_version', '5.3' );
|
66 |
+
|
67 |
+
// If not PHP 5.2, don't do anything
|
68 |
+
if ( version_compare( PHP_VERSION, $allowed_version, '>=' ) ) {
|
69 |
+
self::$should_show = false;
|
70 |
+
|
71 |
+
return self::$should_show;
|
72 |
+
}
|
73 |
+
|
74 |
+
$screen = get_current_screen();
|
75 |
+
$is_dashboard = $screen->id === 'dashboard';
|
76 |
+
$is_backwpup = $screen->id === 'toplevel_page_backwpup' || strpos( $screen->id, 'backwpup' ) === 0;
|
77 |
+
$pages_to_skip = in_array( $screen->id, self::$pages_to_skip, true );
|
78 |
+
|
79 |
+
// On pages explicitly skipped, don't show anything
|
80 |
+
if ( ! $is_dashboard && ( ! $is_backwpup || $pages_to_skip ) ) {
|
81 |
+
|
82 |
+
self::$should_show = false;
|
83 |
+
|
84 |
+
return self::$should_show;
|
85 |
+
}
|
86 |
+
|
87 |
+
// On main admin page only show the extended notice
|
88 |
+
if ( $screen->id === self::MAIN_ADMIN_PAGE_ID && ! $check_only_version ) {
|
89 |
+
return false;
|
90 |
+
}
|
91 |
+
|
92 |
+
// Notice on main admin page can't be dismissed for good
|
93 |
+
if ( $check_only_version ) {
|
94 |
+
self::$should_show = true;
|
95 |
+
|
96 |
+
return self::$should_show;
|
97 |
+
}
|
98 |
+
|
99 |
+
// If notice is dismissed for good, don't show it
|
100 |
+
$option = new BackWPup_Dismissible_Notice_Option( true );
|
101 |
+
|
102 |
+
self::$should_show = ! $option->is_dismissed( self::NOTICE_ID );
|
103 |
+
|
104 |
+
return self::$should_show;
|
105 |
+
}
|
106 |
+
|
107 |
+
/**
|
108 |
+
* The markup for the admin notice.
|
109 |
+
*
|
110 |
+
* @return string
|
111 |
+
*/
|
112 |
+
private function admin_notice_markup() {
|
113 |
+
|
114 |
+
ob_start();
|
115 |
+
$learn_more_url = $this->backwpup_admin_page_url();
|
116 |
+
$dismiss_url = BackWPup_Dismissible_Notice_Option::dismiss_action_url(
|
117 |
+
self::NOTICE_ID,
|
118 |
+
BackWPup_Dismissible_Notice_Option::FOR_GOOD_ACTION
|
119 |
+
);
|
120 |
+
?>
|
121 |
+
<div class="notice notice-warning is-dismissible">
|
122 |
+
<p>
|
123 |
+
<?= esc_html__( 'With the upcoming major release, BackWPup will be requiring PHP version 5.3 or higher.',
|
124 |
+
'backwpup' ) ?>
|
125 |
+
<?= esc_html__( 'Currently, you are running PHP version 5.2.', 'backwpup' ) ?>
|
126 |
+
<strong>
|
127 |
+
<a href="<?= $learn_more_url ?>"><?= esc_html__( 'Please urgently read here!', 'backwpup' ) ?></a>
|
128 |
+
</strong>
|
129 |
+
</p>
|
130 |
+
<p>
|
131 |
+
<a style="font-size:smaller;" id="backwpup_dismiss_php52_notice" href="<?= esc_url( $dismiss_url ) ?>">
|
132 |
+
<?= esc_html__( 'Don\'t show again.', 'backwpup' ) ?>
|
133 |
+
</a>
|
134 |
+
</p>
|
135 |
+
</div>
|
136 |
+
<script>
|
137 |
+
(
|
138 |
+
function( $ ) {
|
139 |
+
$( '#backwpup_dismiss_php52_notice' ).on( 'click', function( e ) {
|
140 |
+
e.preventDefault();
|
141 |
+
var $link = $( this );
|
142 |
+
$.post( $link.attr( 'href' ), { isAjax: 1 } );
|
143 |
+
$link.closest( '.notice' ).hide();
|
144 |
+
} );
|
145 |
+
}
|
146 |
+
)( jQuery );
|
147 |
+
</script>
|
148 |
+
<?php
|
149 |
+
|
150 |
+
return ob_get_clean();
|
151 |
+
}
|
152 |
+
|
153 |
+
/**
|
154 |
+
* The markup for the admin page message.
|
155 |
+
*
|
156 |
+
* @return string
|
157 |
+
*/
|
158 |
+
private function admin_page_markup() {
|
159 |
+
ob_start();
|
160 |
+
?>
|
161 |
+
<div class="notice notice-error is-dismissible">
|
162 |
+
<h3><?= esc_html__( 'Please urgently read here!', 'backwpup' ) ?></h3>
|
163 |
+
<p>
|
164 |
+
<?= esc_html__( 'BackWPup has determined, your installation is still running on the old PHP 5.2 version.', 'backwpup' ) ?>
|
165 |
+
</p>
|
166 |
+
<p>
|
167 |
+
<?= esc_html__( 'In order to ensure a fast and secure development for BackWPup, we will most likely not support PHP version 5.2 in our next version.', 'backwpup' ) ?>
|
168 |
+
<?= esc_html__( 'No need to worry, your host can update your PHP version relatively quickly and without any problems.', 'backwpup' ) ?>
|
169 |
+
<?= esc_html__( 'Otherwise you can continue to stay on this last version and do not update the plugin in the future!', 'backwpup' ) ?>
|
170 |
+
</p>
|
171 |
+
<p>
|
172 |
+
<strong><?= $this->contact_page_link() ?></strong><br>
|
173 |
+
<?= esc_html__( 'If the response from PHP 5.2 users is surprisingly high, we will eventually keep support for PHP 5.2 for a while.', 'backwpup' ) ?>
|
174 |
+
</p>
|
175 |
+
<p>
|
176 |
+
<?= esc_html__( 'Cheers!', 'backwpup' ) ?><br>
|
177 |
+
<?= esc_html__( 'Your BackWPup Team!', 'backwpup' ) ?>
|
178 |
+
</p>
|
179 |
+
</div>
|
180 |
+
<?php
|
181 |
+
|
182 |
+
return ob_get_clean();
|
183 |
+
}
|
184 |
+
|
185 |
+
/**
|
186 |
+
* Return the URL for the main admin page of BackWPup.
|
187 |
+
*
|
188 |
+
* @return string
|
189 |
+
*/
|
190 |
+
private function backwpup_admin_page_url() {
|
191 |
+
|
192 |
+
return add_query_arg(
|
193 |
+
array( 'page' => 'backwpup' ),
|
194 |
+
is_multisite() ? network_admin_url( '/admin.php' ) : admin_url( '/admin.php' )
|
195 |
+
);
|
196 |
+
}
|
197 |
+
|
198 |
+
/**
|
199 |
+
* Return a link to BackWPup contact page.
|
200 |
+
*
|
201 |
+
* @return string
|
202 |
+
*/
|
203 |
+
private function contact_page_link() {
|
204 |
+
/* Translators: This is the anchor text for an HTML link pointing to BackWPup contact page */
|
205 |
+
$contact_us = esc_html__( 'contact us', 'backwpup' );
|
206 |
+
/* Translators: %s is replaced by an HTML link with text "contact us" pointing to BackWPup contact page */
|
207 |
+
$contact_us_text = esc_html__( 'If you would like to have PHP 5.2 supported, please %s.', 'backwpup' );
|
208 |
+
$contact_us_url = esc_html__( 'https://backwpup.com/php52/', 'backwpup' );
|
209 |
+
$contact_us_link = sprintf( '<a href="%s" target="_blank">%s</a>', $contact_us_url, $contact_us );
|
210 |
+
|
211 |
+
return sprintf( $contact_us_text, $contact_us_link );
|
212 |
+
}
|
213 |
+
}
|
languages/backwpup.pot
CHANGED
@@ -1,5443 +1,5218 @@
|
|
1 |
-
#
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
"
|
9 |
-
"
|
10 |
-
"
|
11 |
-
"
|
12 |
-
"
|
13 |
-
"
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
"
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
"
|
25 |
-
"
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
msgid "
|
87 |
-
msgstr ""
|
88 |
-
|
89 |
-
#:
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
msgid "
|
126 |
-
msgstr ""
|
127 |
-
|
128 |
-
#:
|
129 |
-
msgid "
|
130 |
-
msgstr ""
|
131 |
-
|
132 |
-
#:
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
#:
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
#:
|
153 |
-
#:
|
154 |
-
msgid "
|
155 |
-
msgstr ""
|
156 |
-
|
157 |
-
#:
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
#:
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
#: page-
|
183 |
-
msgid "
|
184 |
-
msgstr ""
|
185 |
-
|
186 |
-
#:
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
msgstr
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
msgid "
|
221 |
-
msgstr ""
|
222 |
-
|
223 |
-
#:
|
224 |
-
msgid "
|
225 |
-
msgstr ""
|
226 |
-
|
227 |
-
#:
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
#:
|
255 |
-
msgid "
|
256 |
-
msgstr ""
|
257 |
-
|
258 |
-
#:
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
#:
|
264 |
-
msgid "
|
265 |
-
msgstr ""
|
266 |
-
|
267 |
-
#:
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
#:
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
#:
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
#:
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
#: php:
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
#: php:
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
msgid "%
|
305 |
-
msgstr ""
|
306 |
-
|
307 |
-
#:
|
308 |
-
|
309 |
-
|
310 |
-
msgid "
|
311 |
-
msgstr ""
|
312 |
-
|
313 |
-
#:
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
msgid "
|
321 |
-
msgstr ""
|
322 |
-
|
323 |
-
#:
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
#:
|
334 |
-
#, php-format
|
335 |
-
msgid "
|
336 |
-
msgstr ""
|
337 |
-
|
338 |
-
#:
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
#:
|
365 |
-
msgid "
|
366 |
-
msgstr ""
|
367 |
-
|
368 |
-
#:
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
#:
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
#:
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
#:
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
#:
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
#:
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
#:
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
#:
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
#:
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
msgid "
|
471 |
-
msgstr ""
|
472 |
-
|
473 |
-
#:
|
474 |
-
|
475 |
-
|
476 |
-
"
|
477 |
-
msgstr ""
|
478 |
-
|
479 |
-
#:
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
"
|
504 |
-
msgstr ""
|
505 |
-
|
506 |
-
#:
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
"
|
516 |
-
msgstr ""
|
517 |
-
|
518 |
-
#:
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
#:
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
"
|
532 |
-
msgstr ""
|
533 |
-
|
534 |
-
#:
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
-
|
539 |
-
|
540 |
-
|
541 |
-
"
|
542 |
-
msgstr ""
|
543 |
-
|
544 |
-
#:
|
545 |
-
msgid "
|
546 |
-
msgstr ""
|
547 |
-
|
548 |
-
#:
|
549 |
-
msgid ""
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
#:
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
|
622 |
-
|
623 |
-
|
624 |
-
|
625 |
-
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
|
630 |
-
|
631 |
-
|
632 |
-
|
633 |
-
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
msgid "
|
642 |
-
msgstr ""
|
643 |
-
|
644 |
-
#:
|
645 |
-
|
646 |
-
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
-
|
656 |
-
|
657 |
-
|
658 |
-
|
659 |
-
|
660 |
-
|
661 |
-
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
|
670 |
-
|
671 |
-
|
672 |
-
|
673 |
-
|
674 |
-
msgstr ""
|
675 |
-
|
676 |
-
#:
|
677 |
-
msgid "
|
678 |
-
msgstr ""
|
679 |
-
|
680 |
-
#:
|
681 |
-
msgid "
|
682 |
-
msgstr ""
|
683 |
-
|
684 |
-
#:
|
685 |
-
msgid "
|
686 |
-
msgstr ""
|
687 |
-
|
688 |
-
#:
|
689 |
-
msgid "
|
690 |
-
msgstr ""
|
691 |
-
|
692 |
-
#:
|
693 |
-
msgid "
|
694 |
-
msgstr ""
|
695 |
-
|
696 |
-
#:
|
697 |
-
msgid "
|
698 |
-
msgstr ""
|
699 |
-
|
700 |
-
#:
|
701 |
-
msgid "
|
702 |
-
msgstr ""
|
703 |
-
|
704 |
-
#:
|
705 |
-
|
706 |
-
msgid "
|
707 |
-
msgstr ""
|
708 |
-
|
709 |
-
#:
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
|
718 |
-
"
|
719 |
-
msgstr ""
|
720 |
-
|
721 |
-
#:
|
722 |
-
|
723 |
-
|
724 |
-
|
725 |
-
|
726 |
-
|
727 |
-
|
728 |
-
|
729 |
-
|
730 |
-
|
731 |
-
"backup
|
732 |
-
msgstr ""
|
733 |
-
|
734 |
-
#:
|
735 |
-
|
736 |
-
msgid "
|
737 |
-
msgstr ""
|
738 |
-
|
739 |
-
#:
|
740 |
-
#, php-format
|
741 |
-
msgid ""
|
742 |
-
|
743 |
-
|
744 |
-
|
745 |
-
|
746 |
-
|
747 |
-
|
748 |
-
|
749 |
-
|
750 |
-
|
751 |
-
|
752 |
-
|
753 |
-
|
754 |
-
|
755 |
-
"
|
756 |
-
msgstr ""
|
757 |
-
|
758 |
-
#:
|
759 |
-
|
760 |
-
|
761 |
-
|
762 |
-
|
763 |
-
|
764 |
-
|
765 |
-
|
766 |
-
|
767 |
-
|
768 |
-
|
769 |
-
|
770 |
-
|
771 |
-
#:
|
772 |
-
|
773 |
-
|
774 |
-
|
775 |
-
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
-
|
780 |
-
|
781 |
-
|
782 |
-
|
783 |
-
|
784 |
-
msgid "
|
785 |
-
msgstr ""
|
786 |
-
|
787 |
-
#:
|
788 |
-
|
789 |
-
|
790 |
-
|
791 |
-
|
792 |
-
|
793 |
-
|
794 |
-
|
795 |
-
|
796 |
-
|
797 |
-
|
798 |
-
|
799 |
-
|
800 |
-
|
801 |
-
|
802 |
-
|
803 |
-
|
804 |
-
|
805 |
-
|
806 |
-
|
807 |
-
|
808 |
-
|
809 |
-
|
810 |
-
msgid "
|
811 |
-
msgstr ""
|
812 |
-
|
813 |
-
#:
|
814 |
-
msgid ""
|
815 |
-
|
816 |
-
|
817 |
-
|
818 |
-
|
819 |
-
|
820 |
-
|
821 |
-
|
822 |
-
|
823 |
-
|
824 |
-
|
825 |
-
|
826 |
-
|
827 |
-
#:
|
828 |
-
|
829 |
-
|
830 |
-
|
831 |
-
|
832 |
-
|
833 |
-
|
834 |
-
|
835 |
-
|
836 |
-
msgid "
|
837 |
-
msgstr ""
|
838 |
-
|
839 |
-
#:
|
840 |
-
|
841 |
-
|
842 |
-
|
843 |
-
|
844 |
-
|
845 |
-
|
846 |
-
|
847 |
-
|
848 |
-
|
849 |
-
|
850 |
-
|
851 |
-
|
852 |
-
|
853 |
-
|
854 |
-
|
855 |
-
|
856 |
-
|
857 |
-
|
858 |
-
|
859 |
-
msgid "
|
860 |
-
msgstr ""
|
861 |
-
|
862 |
-
#:
|
863 |
-
|
864 |
-
|
865 |
-
|
866 |
-
|
867 |
-
|
868 |
-
|
869 |
-
|
870 |
-
|
871 |
-
|
872 |
-
|
873 |
-
|
874 |
-
|
875 |
-
|
876 |
-
|
877 |
-
|
878 |
-
|
879 |
-
|
880 |
-
|
881 |
-
|
882 |
-
|
883 |
-
|
884 |
-
|
885 |
-
|
886 |
-
|
887 |
-
|
888 |
-
msgid "
|
889 |
-
msgstr ""
|
890 |
-
|
891 |
-
#:
|
892 |
-
|
893 |
-
|
894 |
-
|
895 |
-
|
896 |
-
|
897 |
-
|
898 |
-
|
899 |
-
|
900 |
-
|
901 |
-
|
902 |
-
|
903 |
-
|
904 |
-
|
905 |
-
|
906 |
-
|
907 |
-
|
908 |
-
|
909 |
-
|
910 |
-
|
911 |
-
|
912 |
-
|
913 |
-
#:
|
914 |
-
#, php-format
|
915 |
-
msgid "
|
916 |
-
msgstr ""
|
917 |
-
|
918 |
-
#:
|
919 |
-
|
920 |
-
|
921 |
-
|
922 |
-
|
923 |
-
|
924 |
-
|
925 |
-
|
926 |
-
|
927 |
-
|
928 |
-
|
929 |
-
|
930 |
-
|
931 |
-
|
932 |
-
|
933 |
-
|
934 |
-
|
935 |
-
|
936 |
-
|
937 |
-
|
938 |
-
|
939 |
-
|
940 |
-
|
941 |
-
|
942 |
-
|
943 |
-
|
944 |
-
|
945 |
-
|
946 |
-
|
947 |
-
|
948 |
-
|
949 |
-
|
950 |
-
|
951 |
-
|
952 |
-
|
953 |
-
|
954 |
-
|
955 |
-
#:
|
956 |
-
|
957 |
-
|
958 |
-
|
959 |
-
|
960 |
-
|
961 |
-
|
962 |
-
|
963 |
-
|
964 |
-
|
965 |
-
|
966 |
-
|
967 |
-
|
968 |
-
|
969 |
-
|
970 |
-
|
971 |
-
|
972 |
-
|
973 |
-
|
974 |
-
|
975 |
-
|
976 |
-
|
977 |
-
|
978 |
-
|
979 |
-
#: /inc/
|
980 |
-
msgid "
|
981 |
-
msgstr ""
|
982 |
-
|
983 |
-
#:
|
984 |
-
|
985 |
-
|
986 |
-
|
987 |
-
|
988 |
-
|
989 |
-
|
990 |
-
|
991 |
-
|
992 |
-
|
993 |
-
|
994 |
-
|
995 |
-
|
996 |
-
|
997 |
-
|
998 |
-
msgid "
|
999 |
-
msgstr ""
|
1000 |
-
|
1001 |
-
#:
|
1002 |
-
|
1003 |
-
|
1004 |
-
|
1005 |
-
|
1006 |
-
|
1007 |
-
|
1008 |
-
|
1009 |
-
|
1010 |
-
|
1011 |
-
"
|
1012 |
-
"
|
1013 |
-
|
1014 |
-
|
1015 |
-
|
1016 |
-
|
1017 |
-
|
1018 |
-
|
1019 |
-
|
1020 |
-
msgid "
|
1021 |
-
|
1022 |
-
|
1023 |
-
|
1024 |
-
|
1025 |
-
|
1026 |
-
"
|
1027 |
-
msgstr ""
|
1028 |
-
|
1029 |
-
#:
|
1030 |
-
msgid "
|
1031 |
-
msgstr ""
|
1032 |
-
|
1033 |
-
#:
|
1034 |
-
msgid ""
|
1035 |
-
|
1036 |
-
|
1037 |
-
|
1038 |
-
"
|
1039 |
-
"
|
1040 |
-
|
1041 |
-
|
1042 |
-
|
1043 |
-
|
1044 |
-
|
1045 |
-
|
1046 |
-
|
1047 |
-
|
1048 |
-
|
1049 |
-
#:
|
1050 |
-
|
1051 |
-
|
1052 |
-
|
1053 |
-
|
1054 |
-
|
1055 |
-
|
1056 |
-
|
1057 |
-
|
1058 |
-
|
1059 |
-
|
1060 |
-
|
1061 |
-
|
1062 |
-
|
1063 |
-
|
1064 |
-
|
1065 |
-
|
1066 |
-
msgid "
|
1067 |
-
msgstr ""
|
1068 |
-
|
1069 |
-
#:
|
1070 |
-
msgid "
|
1071 |
-
msgstr ""
|
1072 |
-
|
1073 |
-
#:
|
1074 |
-
msgid "
|
1075 |
-
msgstr ""
|
1076 |
-
|
1077 |
-
#:
|
1078 |
-
msgid "
|
1079 |
-
msgstr ""
|
1080 |
-
|
1081 |
-
#:
|
1082 |
-
msgid "
|
1083 |
-
msgstr ""
|
1084 |
-
|
1085 |
-
#:
|
1086 |
-
msgid "
|
1087 |
-
msgstr ""
|
1088 |
-
|
1089 |
-
#:
|
1090 |
-
msgid "
|
1091 |
-
msgstr ""
|
1092 |
-
|
1093 |
-
#:
|
1094 |
-
msgid "
|
1095 |
-
msgstr ""
|
1096 |
-
|
1097 |
-
#:
|
1098 |
-
|
1099 |
-
|
1100 |
-
|
1101 |
-
|
1102 |
-
|
1103 |
-
|
1104 |
-
|
1105 |
-
|
1106 |
-
|
1107 |
-
|
1108 |
-
|
1109 |
-
|
1110 |
-
|
1111 |
-
|
1112 |
-
|
1113 |
-
|
1114 |
-
|
1115 |
-
|
1116 |
-
|
1117 |
-
|
1118 |
-
|
1119 |
-
|
1120 |
-
|
1121 |
-
|
1122 |
-
|
1123 |
-
|
1124 |
-
|
1125 |
-
|
1126 |
-
|
1127 |
-
|
1128 |
-
|
1129 |
-
|
1130 |
-
msgid "
|
1131 |
-
msgstr ""
|
1132 |
-
|
1133 |
-
#:
|
1134 |
-
msgid "
|
1135 |
-
msgstr ""
|
1136 |
-
|
1137 |
-
#:
|
1138 |
-
msgid "
|
1139 |
-
msgstr ""
|
1140 |
-
|
1141 |
-
#:
|
1142 |
-
|
1143 |
-
|
1144 |
-
|
1145 |
-
|
1146 |
-
|
1147 |
-
|
1148 |
-
|
1149 |
-
|
1150 |
-
|
1151 |
-
|
1152 |
-
|
1153 |
-
|
1154 |
-
msgid "
|
1155 |
-
msgstr ""
|
1156 |
-
|
1157 |
-
#:
|
1158 |
-
msgid "
|
1159 |
-
msgstr ""
|
1160 |
-
|
1161 |
-
#:
|
1162 |
-
|
1163 |
-
|
1164 |
-
|
1165 |
-
|
1166 |
-
|
1167 |
-
|
1168 |
-
|
1169 |
-
|
1170 |
-
|
1171 |
-
|
1172 |
-
|
1173 |
-
|
1174 |
-
msgid "
|
1175 |
-
msgstr ""
|
1176 |
-
|
1177 |
-
#:
|
1178 |
-
|
1179 |
-
|
1180 |
-
|
1181 |
-
|
1182 |
-
|
1183 |
-
|
1184 |
-
|
1185 |
-
|
1186 |
-
|
1187 |
-
|
1188 |
-
|
1189 |
-
|
1190 |
-
msgid "
|
1191 |
-
msgstr ""
|
1192 |
-
|
1193 |
-
#:
|
1194 |
-
#, php-format
|
1195 |
-
msgid "
|
1196 |
-
msgstr ""
|
1197 |
-
|
1198 |
-
#:
|
1199 |
-
|
1200 |
-
msgid "
|
1201 |
-
msgstr ""
|
1202 |
-
|
1203 |
-
#:
|
1204 |
-
|
1205 |
-
|
1206 |
-
|
1207 |
-
|
1208 |
-
|
1209 |
-
|
1210 |
-
|
1211 |
-
|
1212 |
-
|
1213 |
-
|
1214 |
-
|
1215 |
-
|
1216 |
-
|
1217 |
-
"
|
1218 |
-
|
1219 |
-
|
1220 |
-
|
1221 |
-
|
1222 |
-
msgid "
|
1223 |
-
msgstr ""
|
1224 |
-
|
1225 |
-
#:
|
1226 |
-
msgid "
|
1227 |
-
msgstr ""
|
1228 |
-
|
1229 |
-
#:
|
1230 |
-
|
1231 |
-
|
1232 |
-
|
1233 |
-
|
1234 |
-
|
1235 |
-
|
1236 |
-
|
1237 |
-
|
1238 |
-
#: php:
|
1239 |
-
|
1240 |
-
|
1241 |
-
|
1242 |
-
|
1243 |
-
|
1244 |
-
|
1245 |
-
|
1246 |
-
|
1247 |
-
|
1248 |
-
|
1249 |
-
|
1250 |
-
|
1251 |
-
|
1252 |
-
|
1253 |
-
|
1254 |
-
|
1255 |
-
|
1256 |
-
|
1257 |
-
|
1258 |
-
|
1259 |
-
|
1260 |
-
msgid "
|
1261 |
-
|
1262 |
-
|
1263 |
-
|
1264 |
-
|
1265 |
-
|
1266 |
-
|
1267 |
-
|
1268 |
-
|
1269 |
-
|
1270 |
-
|
1271 |
-
|
1272 |
-
|
1273 |
-
|
1274 |
-
|
1275 |
-
|
1276 |
-
|
1277 |
-
|
1278 |
-
|
1279 |
-
|
1280 |
-
|
1281 |
-
#:
|
1282 |
-
|
1283 |
-
|
1284 |
-
|
1285 |
-
|
1286 |
-
#:
|
1287 |
-
|
1288 |
-
|
1289 |
-
|
1290 |
-
|
1291 |
-
|
1292 |
-
|
1293 |
-
|
1294 |
-
|
1295 |
-
|
1296 |
-
|
1297 |
-
|
1298 |
-
|
1299 |
-
|
1300 |
-
|
1301 |
-
|
1302 |
-
|
1303 |
-
|
1304 |
-
|
1305 |
-
|
1306 |
-
|
1307 |
-
|
1308 |
-
|
1309 |
-
|
1310 |
-
|
1311 |
-
|
1312 |
-
|
1313 |
-
|
1314 |
-
|
1315 |
-
|
1316 |
-
#:
|
1317 |
-
|
1318 |
-
|
1319 |
-
|
1320 |
-
|
1321 |
-
#: sugarsync.php:
|
1322 |
-
|
1323 |
-
|
1324 |
-
|
1325 |
-
|
1326 |
-
#:
|
1327 |
-
|
1328 |
-
|
1329 |
-
|
1330 |
-
|
1331 |
-
|
1332 |
-
#: php:
|
1333 |
-
|
1334 |
-
|
1335 |
-
|
1336 |
-
|
1337 |
-
#:
|
1338 |
-
|
1339 |
-
|
1340 |
-
|
1341 |
-
|
1342 |
-
|
1343 |
-
|
1344 |
-
|
1345 |
-
#: destination-
|
1346 |
-
|
1347 |
-
|
1348 |
-
|
1349 |
-
|
1350 |
-
|
1351 |
-
|
1352 |
-
|
1353 |
-
|
1354 |
-
|
1355 |
-
|
1356 |
-
|
1357 |
-
|
1358 |
-
|
1359 |
-
|
1360 |
-
|
1361 |
-
|
1362 |
-
|
1363 |
-
|
1364 |
-
|
1365 |
-
|
1366 |
-
|
1367 |
-
|
1368 |
-
|
1369 |
-
|
1370 |
-
|
1371 |
-
|
1372 |
-
|
1373 |
-
|
1374 |
-
#:
|
1375 |
-
msgid "
|
1376 |
-
msgstr ""
|
1377 |
-
|
1378 |
-
#:
|
1379 |
-
|
1380 |
-
|
1381 |
-
|
1382 |
-
|
1383 |
-
|
1384 |
-
|
1385 |
-
|
1386 |
-
|
1387 |
-
|
1388 |
-
|
1389 |
-
|
1390 |
-
|
1391 |
-
|
1392 |
-
|
1393 |
-
|
1394 |
-
|
1395 |
-
|
1396 |
-
|
1397 |
-
|
1398 |
-
|
1399 |
-
|
1400 |
-
|
1401 |
-
|
1402 |
-
|
1403 |
-
|
1404 |
-
|
1405 |
-
|
1406 |
-
|
1407 |
-
|
1408 |
-
|
1409 |
-
|
1410 |
-
|
1411 |
-
|
1412 |
-
|
1413 |
-
|
1414 |
-
|
1415 |
-
|
1416 |
-
|
1417 |
-
|
1418 |
-
|
1419 |
-
|
1420 |
-
|
1421 |
-
|
1422 |
-
|
1423 |
-
|
1424 |
-
|
1425 |
-
msgid "
|
1426 |
-
|
1427 |
-
|
1428 |
-
|
1429 |
-
|
1430 |
-
|
1431 |
-
|
1432 |
-
|
1433 |
-
msgid "
|
1434 |
-
msgstr ""
|
1435 |
-
|
1436 |
-
#:
|
1437 |
-
|
1438 |
-
|
1439 |
-
|
1440 |
-
|
1441 |
-
|
1442 |
-
|
1443 |
-
|
1444 |
-
|
1445 |
-
|
1446 |
-
|
1447 |
-
|
1448 |
-
|
1449 |
-
|
1450 |
-
|
1451 |
-
|
1452 |
-
|
1453 |
-
|
1454 |
-
|
1455 |
-
|
1456 |
-
|
1457 |
-
|
1458 |
-
|
1459 |
-
|
1460 |
-
|
1461 |
-
|
1462 |
-
|
1463 |
-
|
1464 |
-
|
1465 |
-
|
1466 |
-
"
|
1467 |
-
|
1468 |
-
|
1469 |
-
|
1470 |
-
|
1471 |
-
|
1472 |
-
msgid "
|
1473 |
-
msgstr ""
|
1474 |
-
|
1475 |
-
#:
|
1476 |
-
|
1477 |
-
|
1478 |
-
|
1479 |
-
|
1480 |
-
|
1481 |
-
|
1482 |
-
|
1483 |
-
|
1484 |
-
|
1485 |
-
|
1486 |
-
|
1487 |
-
|
1488 |
-
|
1489 |
-
|
1490 |
-
|
1491 |
-
|
1492 |
-
|
1493 |
-
|
1494 |
-
|
1495 |
-
|
1496 |
-
|
1497 |
-
|
1498 |
-
|
1499 |
-
|
1500 |
-
"
|
1501 |
-
msgstr ""
|
1502 |
-
|
1503 |
-
#:
|
1504 |
-
#, php-format
|
1505 |
-
msgid "
|
1506 |
-
msgstr ""
|
1507 |
-
|
1508 |
-
#:
|
1509 |
-
#: php:
|
1510 |
-
|
1511 |
-
|
1512 |
-
|
1513 |
-
|
1514 |
-
|
1515 |
-
|
1516 |
-
|
1517 |
-
|
1518 |
-
|
1519 |
-
|
1520 |
-
|
1521 |
-
|
1522 |
-
|
1523 |
-
|
1524 |
-
|
1525 |
-
|
1526 |
-
|
1527 |
-
|
1528 |
-
|
1529 |
-
|
1530 |
-
#: php:
|
1531 |
-
msgid "
|
1532 |
-
msgstr ""
|
1533 |
-
|
1534 |
-
#:
|
1535 |
-
|
1536 |
-
|
1537 |
-
|
1538 |
-
|
1539 |
-
|
1540 |
-
|
1541 |
-
|
1542 |
-
|
1543 |
-
|
1544 |
-
|
1545 |
-
|
1546 |
-
|
1547 |
-
msgid "
|
1548 |
-
|
1549 |
-
|
1550 |
-
|
1551 |
-
|
1552 |
-
|
1553 |
-
|
1554 |
-
|
1555 |
-
|
1556 |
-
|
1557 |
-
msgid "
|
1558 |
-
msgstr ""
|
1559 |
-
|
1560 |
-
#:
|
1561 |
-
|
1562 |
-
msgid "
|
1563 |
-
msgstr ""
|
1564 |
-
|
1565 |
-
#:
|
1566 |
-
|
1567 |
-
|
1568 |
-
|
1569 |
-
|
1570 |
-
|
1571 |
-
|
1572 |
-
|
1573 |
-
|
1574 |
-
|
1575 |
-
|
1576 |
-
|
1577 |
-
|
1578 |
-
|
1579 |
-
|
1580 |
-
|
1581 |
-
|
1582 |
-
msgid "
|
1583 |
-
msgstr ""
|
1584 |
-
|
1585 |
-
#:
|
1586 |
-
|
1587 |
-
|
1588 |
-
|
1589 |
-
|
1590 |
-
|
1591 |
-
|
1592 |
-
|
1593 |
-
|
1594 |
-
|
1595 |
-
|
1596 |
-
|
1597 |
-
|
1598 |
-
|
1599 |
-
|
1600 |
-
|
1601 |
-
|
1602 |
-
|
1603 |
-
|
1604 |
-
|
1605 |
-
|
1606 |
-
|
1607 |
-
|
1608 |
-
|
1609 |
-
|
1610 |
-
|
1611 |
-
|
1612 |
-
msgid "
|
1613 |
-
msgstr ""
|
1614 |
-
|
1615 |
-
#:
|
1616 |
-
|
1617 |
-
|
1618 |
-
|
1619 |
-
|
1620 |
-
|
1621 |
-
|
1622 |
-
|
1623 |
-
|
1624 |
-
|
1625 |
-
|
1626 |
-
|
1627 |
-
|
1628 |
-
|
1629 |
-
|
1630 |
-
|
1631 |
-
|
1632 |
-
|
1633 |
-
|
1634 |
-
|
1635 |
-
|
1636 |
-
|
1637 |
-
|
1638 |
-
|
1639 |
-
|
1640 |
-
|
1641 |
-
|
1642 |
-
|
1643 |
-
|
1644 |
-
|
1645 |
-
|
1646 |
-
|
1647 |
-
|
1648 |
-
#:
|
1649 |
-
|
1650 |
-
|
1651 |
-
|
1652 |
-
|
1653 |
-
|
1654 |
-
|
1655 |
-
|
1656 |
-
|
1657 |
-
|
1658 |
-
|
1659 |
-
|
1660 |
-
|
1661 |
-
|
1662 |
-
|
1663 |
-
|
1664 |
-
|
1665 |
-
|
1666 |
-
|
1667 |
-
|
1668 |
-
|
1669 |
-
|
1670 |
-
|
1671 |
-
|
1672 |
-
|
1673 |
-
|
1674 |
-
|
1675 |
-
|
1676 |
-
|
1677 |
-
|
1678 |
-
|
1679 |
-
|
1680 |
-
|
1681 |
-
|
1682 |
-
|
1683 |
-
|
1684 |
-
|
1685 |
-
|
1686 |
-
|
1687 |
-
|
1688 |
-
|
1689 |
-
|
1690 |
-
|
1691 |
-
|
1692 |
-
|
1693 |
-
|
1694 |
-
|
1695 |
-
|
1696 |
-
|
1697 |
-
|
1698 |
-
|
1699 |
-
msgid "
|
1700 |
-
msgstr ""
|
1701 |
-
|
1702 |
-
#:
|
1703 |
-
|
1704 |
-
|
1705 |
-
|
1706 |
-
|
1707 |
-
|
1708 |
-
|
1709 |
-
|
1710 |
-
|
1711 |
-
|
1712 |
-
|
1713 |
-
|
1714 |
-
|
1715 |
-
|
1716 |
-
|
1717 |
-
|
1718 |
-
|
1719 |
-
|
1720 |
-
|
1721 |
-
|
1722 |
-
|
1723 |
-
|
1724 |
-
|
1725 |
-
|
1726 |
-
|
1727 |
-
|
1728 |
-
|
1729 |
-
|
1730 |
-
|
1731 |
-
|
1732 |
-
|
1733 |
-
|
1734 |
-
|
1735 |
-
|
1736 |
-
|
1737 |
-
|
1738 |
-
|
1739 |
-
|
1740 |
-
|
1741 |
-
|
1742 |
-
|
1743 |
-
msgid "
|
1744 |
-
msgstr ""
|
1745 |
-
|
1746 |
-
#:
|
1747 |
-
|
1748 |
-
|
1749 |
-
|
1750 |
-
|
1751 |
-
|
1752 |
-
|
1753 |
-
|
1754 |
-
|
1755 |
-
|
1756 |
-
|
1757 |
-
|
1758 |
-
|
1759 |
-
|
1760 |
-
|
1761 |
-
|
1762 |
-
|
1763 |
-
|
1764 |
-
|
1765 |
-
|
1766 |
-
|
1767 |
-
|
1768 |
-
|
1769 |
-
|
1770 |
-
|
1771 |
-
|
1772 |
-
|
1773 |
-
|
1774 |
-
|
1775 |
-
msgid "
|
1776 |
-
msgstr ""
|
1777 |
-
|
1778 |
-
#:
|
1779 |
-
msgid "
|
1780 |
-
msgstr ""
|
1781 |
-
|
1782 |
-
#:
|
1783 |
-
msgid "
|
1784 |
-
msgstr ""
|
1785 |
-
|
1786 |
-
#:
|
1787 |
-
|
1788 |
-
|
1789 |
-
|
1790 |
-
|
1791 |
-
|
1792 |
-
|
1793 |
-
|
1794 |
-
|
1795 |
-
|
1796 |
-
|
1797 |
-
|
1798 |
-
|
1799 |
-
|
1800 |
-
|
1801 |
-
|
1802 |
-
|
1803 |
-
msgid "
|
1804 |
-
msgstr ""
|
1805 |
-
|
1806 |
-
#:
|
1807 |
-
|
1808 |
-
|
1809 |
-
|
1810 |
-
|
1811 |
-
|
1812 |
-
|
1813 |
-
|
1814 |
-
|
1815 |
-
|
1816 |
-
|
1817 |
-
|
1818 |
-
|
1819 |
-
|
1820 |
-
|
1821 |
-
|
1822 |
-
|
1823 |
-
msgid "
|
1824 |
-
msgstr ""
|
1825 |
-
|
1826 |
-
#:
|
1827 |
-
|
1828 |
-
|
1829 |
-
|
1830 |
-
|
1831 |
-
|
1832 |
-
"
|
1833 |
-
"
|
1834 |
-
|
1835 |
-
|
1836 |
-
|
1837 |
-
|
1838 |
-
msgid "
|
1839 |
-
msgstr ""
|
1840 |
-
|
1841 |
-
#:
|
1842 |
-
|
1843 |
-
|
1844 |
-
|
1845 |
-
|
1846 |
-
|
1847 |
-
|
1848 |
-
|
1849 |
-
|
1850 |
-
|
1851 |
-
|
1852 |
-
|
1853 |
-
|
1854 |
-
|
1855 |
-
|
1856 |
-
|
1857 |
-
|
1858 |
-
msgid "
|
1859 |
-
msgstr ""
|
1860 |
-
|
1861 |
-
#:
|
1862 |
-
|
1863 |
-
|
1864 |
-
|
1865 |
-
|
1866 |
-
|
1867 |
-
|
1868 |
-
|
1869 |
-
|
1870 |
-
|
1871 |
-
|
1872 |
-
|
1873 |
-
|
1874 |
-
|
1875 |
-
|
1876 |
-
#:
|
1877 |
-
|
1878 |
-
|
1879 |
-
|
1880 |
-
|
1881 |
-
|
1882 |
-
|
1883 |
-
|
1884 |
-
|
1885 |
-
|
1886 |
-
|
1887 |
-
|
1888 |
-
|
1889 |
-
|
1890 |
-
|
1891 |
-
|
1892 |
-
|
1893 |
-
|
1894 |
-
|
1895 |
-
|
1896 |
-
|
1897 |
-
#:
|
1898 |
-
|
1899 |
-
|
1900 |
-
|
1901 |
-
|
1902 |
-
|
1903 |
-
msgid "
|
1904 |
-
msgstr ""
|
1905 |
-
|
1906 |
-
#:
|
1907 |
-
msgid "
|
1908 |
-
msgstr ""
|
1909 |
-
|
1910 |
-
#:
|
1911 |
-
|
1912 |
-
|
1913 |
-
|
1914 |
-
|
1915 |
-
|
1916 |
-
|
1917 |
-
|
1918 |
-
|
1919 |
-
|
1920 |
-
|
1921 |
-
|
1922 |
-
|
1923 |
-
|
1924 |
-
|
1925 |
-
|
1926 |
-
|
1927 |
-
|
1928 |
-
|
1929 |
-
|
1930 |
-
|
1931 |
-
|
1932 |
-
|
1933 |
-
|
1934 |
-
|
1935 |
-
msgstr
|
1936 |
-
|
1937 |
-
#:
|
1938 |
-
|
1939 |
-
|
1940 |
-
|
1941 |
-
|
1942 |
-
|
1943 |
-
|
1944 |
-
|
1945 |
-
|
1946 |
-
|
1947 |
-
|
1948 |
-
|
1949 |
-
|
1950 |
-
|
1951 |
-
|
1952 |
-
|
1953 |
-
|
1954 |
-
|
1955 |
-
|
1956 |
-
|
1957 |
-
|
1958 |
-
|
1959 |
-
|
1960 |
-
|
1961 |
-
|
1962 |
-
msgid "
|
1963 |
-
msgstr ""
|
1964 |
-
|
1965 |
-
#:
|
1966 |
-
|
1967 |
-
"
|
1968 |
-
"
|
1969 |
-
|
1970 |
-
|
1971 |
-
|
1972 |
-
|
1973 |
-
|
1974 |
-
|
1975 |
-
|
1976 |
-
|
1977 |
-
|
1978 |
-
|
1979 |
-
|
1980 |
-
|
1981 |
-
|
1982 |
-
|
1983 |
-
|
1984 |
-
|
1985 |
-
|
1986 |
-
|
1987 |
-
|
1988 |
-
|
1989 |
-
#:
|
1990 |
-
msgid "
|
1991 |
-
msgstr ""
|
1992 |
-
|
1993 |
-
#:
|
1994 |
-
|
1995 |
-
|
1996 |
-
|
1997 |
-
|
1998 |
-
|
1999 |
-
|
2000 |
-
|
2001 |
-
|
2002 |
-
|
2003 |
-
|
2004 |
-
|
2005 |
-
|
2006 |
-
|
2007 |
-
|
2008 |
-
|
2009 |
-
|
2010 |
-
|
2011 |
-
|
2012 |
-
|
2013 |
-
|
2014 |
-
|
2015 |
-
|
2016 |
-
|
2017 |
-
|
2018 |
-
|
2019 |
-
|
2020 |
-
|
2021 |
-
|
2022 |
-
|
2023 |
-
|
2024 |
-
|
2025 |
-
|
2026 |
-
|
2027 |
-
|
2028 |
-
|
2029 |
-
|
2030 |
-
|
2031 |
-
|
2032 |
-
|
2033 |
-
|
2034 |
-
|
2035 |
-
|
2036 |
-
|
2037 |
-
|
2038 |
-
|
2039 |
-
|
2040 |
-
|
2041 |
-
|
2042 |
-
|
2043 |
-
|
2044 |
-
|
2045 |
-
|
2046 |
-
|
2047 |
-
|
2048 |
-
|
2049 |
-
|
2050 |
-
#:
|
2051 |
-
|
2052 |
-
|
2053 |
-
|
2054 |
-
|
2055 |
-
|
2056 |
-
|
2057 |
-
|
2058 |
-
|
2059 |
-
|
2060 |
-
|
2061 |
-
|
2062 |
-
|
2063 |
-
|
2064 |
-
|
2065 |
-
|
2066 |
-
|
2067 |
-
|
2068 |
-
|
2069 |
-
|
2070 |
-
|
2071 |
-
|
2072 |
-
|
2073 |
-
|
2074 |
-
|
2075 |
-
|
2076 |
-
|
2077 |
-
|
2078 |
-
|
2079 |
-
msgid ""
|
2080 |
-
|
2081 |
-
|
2082 |
-
|
2083 |
-
|
2084 |
-
|
2085 |
-
|
2086 |
-
|
2087 |
-
|
2088 |
-
|
2089 |
-
|
2090 |
-
|
2091 |
-
msgid "
|
2092 |
-
msgstr ""
|
2093 |
-
|
2094 |
-
#:
|
2095 |
-
msgid "
|
2096 |
-
msgstr ""
|
2097 |
-
|
2098 |
-
#:
|
2099 |
-
|
2100 |
-
|
2101 |
-
|
2102 |
-
|
2103 |
-
|
2104 |
-
|
2105 |
-
|
2106 |
-
|
2107 |
-
|
2108 |
-
|
2109 |
-
|
2110 |
-
|
2111 |
-
|
2112 |
-
|
2113 |
-
|
2114 |
-
|
2115 |
-
|
2116 |
-
|
2117 |
-
|
2118 |
-
|
2119 |
-
|
2120 |
-
|
2121 |
-
|
2122 |
-
|
2123 |
-
|
2124 |
-
|
2125 |
-
|
2126 |
-
|
2127 |
-
|
2128 |
-
msgid "
|
2129 |
-
msgstr ""
|
2130 |
-
|
2131 |
-
#:
|
2132 |
-
|
2133 |
-
|
2134 |
-
|
2135 |
-
|
2136 |
-
|
2137 |
-
|
2138 |
-
|
2139 |
-
|
2140 |
-
|
2141 |
-
|
2142 |
-
|
2143 |
-
|
2144 |
-
|
2145 |
-
|
2146 |
-
|
2147 |
-
|
2148 |
-
|
2149 |
-
|
2150 |
-
"
|
2151 |
-
msgstr ""
|
2152 |
-
|
2153 |
-
#:
|
2154 |
-
|
2155 |
-
|
2156 |
-
|
2157 |
-
|
2158 |
-
|
2159 |
-
|
2160 |
-
|
2161 |
-
|
2162 |
-
|
2163 |
-
|
2164 |
-
|
2165 |
-
|
2166 |
-
|
2167 |
-
|
2168 |
-
|
2169 |
-
#:
|
2170 |
-
msgid "
|
2171 |
-
msgstr ""
|
2172 |
-
|
2173 |
-
#:
|
2174 |
-
msgid "
|
2175 |
-
msgstr ""
|
2176 |
-
|
2177 |
-
#:
|
2178 |
-
msgid "
|
2179 |
-
msgstr ""
|
2180 |
-
|
2181 |
-
#:
|
2182 |
-
msgid "
|
2183 |
-
msgstr ""
|
2184 |
-
|
2185 |
-
#:
|
2186 |
-
|
2187 |
-
|
2188 |
-
|
2189 |
-
|
2190 |
-
|
2191 |
-
|
2192 |
-
|
2193 |
-
|
2194 |
-
|
2195 |
-
|
2196 |
-
|
2197 |
-
|
2198 |
-
|
2199 |
-
|
2200 |
-
|
2201 |
-
#:
|
2202 |
-
|
2203 |
-
|
2204 |
-
|
2205 |
-
|
2206 |
-
|
2207 |
-
|
2208 |
-
|
2209 |
-
|
2210 |
-
|
2211 |
-
|
2212 |
-
|
2213 |
-
|
2214 |
-
|
2215 |
-
|
2216 |
-
|
2217 |
-
|
2218 |
-
msgid "
|
2219 |
-
msgstr ""
|
2220 |
-
|
2221 |
-
#:
|
2222 |
-
|
2223 |
-
|
2224 |
-
|
2225 |
-
|
2226 |
-
|
2227 |
-
|
2228 |
-
|
2229 |
-
|
2230 |
-
|
2231 |
-
|
2232 |
-
|
2233 |
-
|
2234 |
-
|
2235 |
-
|
2236 |
-
|
2237 |
-
|
2238 |
-
|
2239 |
-
|
2240 |
-
|
2241 |
-
|
2242 |
-
|
2243 |
-
|
2244 |
-
|
2245 |
-
|
2246 |
-
|
2247 |
-
msgid "
|
2248 |
-
msgstr ""
|
2249 |
-
|
2250 |
-
#:
|
2251 |
-
|
2252 |
-
|
2253 |
-
|
2254 |
-
|
2255 |
-
|
2256 |
-
msgid "
|
2257 |
-
msgstr ""
|
2258 |
-
|
2259 |
-
#:
|
2260 |
-
|
2261 |
-
|
2262 |
-
|
2263 |
-
|
2264 |
-
|
2265 |
-
|
2266 |
-
|
2267 |
-
|
2268 |
-
|
2269 |
-
|
2270 |
-
|
2271 |
-
|
2272 |
-
|
2273 |
-
|
2274 |
-
|
2275 |
-
|
2276 |
-
|
2277 |
-
|
2278 |
-
msgid "
|
2279 |
-
msgstr ""
|
2280 |
-
|
2281 |
-
#:
|
2282 |
-
msgid ""
|
2283 |
-
|
2284 |
-
|
2285 |
-
|
2286 |
-
|
2287 |
-
|
2288 |
-
|
2289 |
-
|
2290 |
-
|
2291 |
-
|
2292 |
-
|
2293 |
-
|
2294 |
-
|
2295 |
-
"%1$s
|
2296 |
-
"
|
2297 |
-
|
2298 |
-
|
2299 |
-
|
2300 |
-
|
2301 |
-
|
2302 |
-
|
2303 |
-
|
2304 |
-
|
2305 |
-
|
2306 |
-
|
2307 |
-
|
2308 |
-
|
2309 |
-
|
2310 |
-
|
2311 |
-
|
2312 |
-
|
2313 |
-
|
2314 |
-
|
2315 |
-
|
2316 |
-
|
2317 |
-
|
2318 |
-
|
2319 |
-
|
2320 |
-
|
2321 |
-
|
2322 |
-
msgid "
|
2323 |
-
msgstr ""
|
2324 |
-
|
2325 |
-
#:
|
2326 |
-
msgid "
|
2327 |
-
msgstr ""
|
2328 |
-
|
2329 |
-
#:
|
2330 |
-
#: /inc/
|
2331 |
-
|
2332 |
-
|
2333 |
-
|
2334 |
-
#:
|
2335 |
-
|
2336 |
-
|
2337 |
-
|
2338 |
-
|
2339 |
-
msgid "
|
2340 |
-
msgstr ""
|
2341 |
-
|
2342 |
-
#:
|
2343 |
-
|
2344 |
-
|
2345 |
-
|
2346 |
-
|
2347 |
-
|
2348 |
-
|
2349 |
-
|
2350 |
-
|
2351 |
-
|
2352 |
-
|
2353 |
-
|
2354 |
-
|
2355 |
-
|
2356 |
-
|
2357 |
-
|
2358 |
-
|
2359 |
-
|
2360 |
-
|
2361 |
-
|
2362 |
-
|
2363 |
-
|
2364 |
-
|
2365 |
-
#:
|
2366 |
-
|
2367 |
-
|
2368 |
-
|
2369 |
-
|
2370 |
-
|
2371 |
-
|
2372 |
-
|
2373 |
-
|
2374 |
-
|
2375 |
-
|
2376 |
-
|
2377 |
-
|
2378 |
-
|
2379 |
-
|
2380 |
-
|
2381 |
-
|
2382 |
-
|
2383 |
-
|
2384 |
-
|
2385 |
-
|
2386 |
-
|
2387 |
-
|
2388 |
-
|
2389 |
-
|
2390 |
-
|
2391 |
-
|
2392 |
-
|
2393 |
-
|
2394 |
-
|
2395 |
-
|
2396 |
-
|
2397 |
-
msgstr
|
2398 |
-
|
2399 |
-
|
2400 |
-
|
2401 |
-
|
2402 |
-
|
2403 |
-
|
2404 |
-
|
2405 |
-
|
2406 |
-
|
2407 |
-
|
2408 |
-
|
2409 |
-
|
2410 |
-
|
2411 |
-
|
2412 |
-
|
2413 |
-
|
2414 |
-
|
2415 |
-
|
2416 |
-
|
2417 |
-
msgid "
|
2418 |
-
msgstr ""
|
2419 |
-
|
2420 |
-
#:
|
2421 |
-
msgid "
|
2422 |
-
msgstr ""
|
2423 |
-
|
2424 |
-
#:
|
2425 |
-
msgid "
|
2426 |
-
msgstr ""
|
2427 |
-
|
2428 |
-
#:
|
2429 |
-
msgid "
|
2430 |
-
msgstr ""
|
2431 |
-
|
2432 |
-
#:
|
2433 |
-
msgid "
|
2434 |
-
msgstr ""
|
2435 |
-
|
2436 |
-
#:
|
2437 |
-
|
2438 |
-
|
2439 |
-
|
2440 |
-
|
2441 |
-
|
2442 |
-
|
2443 |
-
|
2444 |
-
|
2445 |
-
|
2446 |
-
|
2447 |
-
|
2448 |
-
|
2449 |
-
|
2450 |
-
|
2451 |
-
|
2452 |
-
|
2453 |
-
|
2454 |
-
|
2455 |
-
|
2456 |
-
|
2457 |
-
|
2458 |
-
|
2459 |
-
|
2460 |
-
|
2461 |
-
|
2462 |
-
|
2463 |
-
|
2464 |
-
|
2465 |
-
|
2466 |
-
|
2467 |
-
|
2468 |
-
|
2469 |
-
|
2470 |
-
|
2471 |
-
|
2472 |
-
|
2473 |
-
|
2474 |
-
|
2475 |
-
|
2476 |
-
|
2477 |
-
|
2478 |
-
|
2479 |
-
|
2480 |
-
|
2481 |
-
|
2482 |
-
|
2483 |
-
|
2484 |
-
|
2485 |
-
|
2486 |
-
|
2487 |
-
|
2488 |
-
|
2489 |
-
|
2490 |
-
|
2491 |
-
|
2492 |
-
|
2493 |
-
|
2494 |
-
|
2495 |
-
|
2496 |
-
|
2497 |
-
|
2498 |
-
|
2499 |
-
|
2500 |
-
|
2501 |
-
"
|
2502 |
-
|
2503 |
-
|
2504 |
-
|
2505 |
-
|
2506 |
-
|
2507 |
-
|
2508 |
-
|
2509 |
-
|
2510 |
-
|
2511 |
-
|
2512 |
-
|
2513 |
-
|
2514 |
-
|
2515 |
-
|
2516 |
-
|
2517 |
-
msgid "
|
2518 |
-
msgstr ""
|
2519 |
-
|
2520 |
-
#:
|
2521 |
-
msgid "
|
2522 |
-
msgstr ""
|
2523 |
-
|
2524 |
-
#:
|
2525 |
-
msgid "
|
2526 |
-
msgstr ""
|
2527 |
-
|
2528 |
-
#:
|
2529 |
-
msgid "
|
2530 |
-
msgstr ""
|
2531 |
-
|
2532 |
-
#:
|
2533 |
-
msgid "
|
2534 |
-
msgstr ""
|
2535 |
-
|
2536 |
-
#:
|
2537 |
-
msgid "
|
2538 |
-
msgstr ""
|
2539 |
-
|
2540 |
-
#:
|
2541 |
-
msgid "
|
2542 |
-
msgstr ""
|
2543 |
-
|
2544 |
-
#:
|
2545 |
-
msgid "
|
2546 |
-
msgstr ""
|
2547 |
-
|
2548 |
-
#:
|
2549 |
-
msgid "
|
2550 |
-
msgstr ""
|
2551 |
-
|
2552 |
-
#:
|
2553 |
-
msgid "
|
2554 |
-
msgstr ""
|
2555 |
-
|
2556 |
-
#:
|
2557 |
-
msgid ""
|
2558 |
-
|
2559 |
-
|
2560 |
-
|
2561 |
-
|
2562 |
-
|
2563 |
-
|
2564 |
-
|
2565 |
-
|
2566 |
-
|
2567 |
-
|
2568 |
-
|
2569 |
-
|
2570 |
-
|
2571 |
-
|
2572 |
-
|
2573 |
-
|
2574 |
-
|
2575 |
-
|
2576 |
-
|
2577 |
-
|
2578 |
-
|
2579 |
-
|
2580 |
-
|
2581 |
-
|
2582 |
-
|
2583 |
-
|
2584 |
-
|
2585 |
-
|
2586 |
-
|
2587 |
-
"
|
2588 |
-
"
|
2589 |
-
|
2590 |
-
|
2591 |
-
#:
|
2592 |
-
msgid "
|
2593 |
-
msgstr ""
|
2594 |
-
|
2595 |
-
#:
|
2596 |
-
msgid "
|
2597 |
-
msgstr ""
|
2598 |
-
|
2599 |
-
#:
|
2600 |
-
msgid "
|
2601 |
-
msgstr ""
|
2602 |
-
|
2603 |
-
#:
|
2604 |
-
msgid "
|
2605 |
-
|
2606 |
-
|
2607 |
-
|
2608 |
-
|
2609 |
-
|
2610 |
-
|
2611 |
-
|
2612 |
-
|
2613 |
-
|
2614 |
-
|
2615 |
-
|
2616 |
-
|
2617 |
-
|
2618 |
-
|
2619 |
-
#:
|
2620 |
-
|
2621 |
-
|
2622 |
-
|
2623 |
-
|
2624 |
-
|
2625 |
-
|
2626 |
-
|
2627 |
-
|
2628 |
-
|
2629 |
-
|
2630 |
-
|
2631 |
-
|
2632 |
-
|
2633 |
-
|
2634 |
-
|
2635 |
-
|
2636 |
-
|
2637 |
-
|
2638 |
-
|
2639 |
-
|
2640 |
-
|
2641 |
-
|
2642 |
-
|
2643 |
-
|
2644 |
-
|
2645 |
-
"
|
2646 |
-
"
|
2647 |
-
msgstr ""
|
2648 |
-
|
2649 |
-
#:
|
2650 |
-
msgid "
|
2651 |
-
msgstr ""
|
2652 |
-
|
2653 |
-
#:
|
2654 |
-
|
2655 |
-
|
2656 |
-
|
2657 |
-
|
2658 |
-
|
2659 |
-
|
2660 |
-
|
2661 |
-
|
2662 |
-
|
2663 |
-
|
2664 |
-
|
2665 |
-
|
2666 |
-
|
2667 |
-
|
2668 |
-
|
2669 |
-
|
2670 |
-
|
2671 |
-
|
2672 |
-
|
2673 |
-
|
2674 |
-
|
2675 |
-
|
2676 |
-
|
2677 |
-
|
2678 |
-
|
2679 |
-
|
2680 |
-
|
2681 |
-
|
2682 |
-
msgid "
|
2683 |
-
msgstr ""
|
2684 |
-
|
2685 |
-
#:
|
2686 |
-
msgid "
|
2687 |
-
msgstr ""
|
2688 |
-
|
2689 |
-
#:
|
2690 |
-
msgid "
|
2691 |
-
msgstr ""
|
2692 |
-
|
2693 |
-
#:
|
2694 |
-
msgid "
|
2695 |
-
msgstr ""
|
2696 |
-
|
2697 |
-
#:
|
2698 |
-
msgid "
|
2699 |
-
msgstr ""
|
2700 |
-
|
2701 |
-
#:
|
2702 |
-
msgid "
|
2703 |
-
msgstr ""
|
2704 |
-
|
2705 |
-
#:
|
2706 |
-
msgid "
|
2707 |
-
msgstr ""
|
2708 |
-
|
2709 |
-
#:
|
2710 |
-
msgid "
|
2711 |
-
msgstr ""
|
2712 |
-
|
2713 |
-
#:
|
2714 |
-
msgid "
|
2715 |
-
msgstr ""
|
2716 |
-
|
2717 |
-
#:
|
2718 |
-
msgid "
|
2719 |
-
msgstr ""
|
2720 |
-
|
2721 |
-
#:
|
2722 |
-
msgid "
|
2723 |
-
msgstr ""
|
2724 |
-
|
2725 |
-
#:
|
2726 |
-
|
2727 |
-
|
2728 |
-
|
2729 |
-
|
2730 |
-
|
2731 |
-
|
2732 |
-
|
2733 |
-
|
2734 |
-
|
2735 |
-
|
2736 |
-
|
2737 |
-
|
2738 |
-
|
2739 |
-
|
2740 |
-
|
2741 |
-
|
2742 |
-
|
2743 |
-
|
2744 |
-
msgid "
|
2745 |
-
msgstr ""
|
2746 |
-
|
2747 |
-
#:
|
2748 |
-
|
2749 |
-
|
2750 |
-
|
2751 |
-
|
2752 |
-
|
2753 |
-
|
2754 |
-
|
2755 |
-
|
2756 |
-
|
2757 |
-
|
2758 |
-
|
2759 |
-
|
2760 |
-
|
2761 |
-
|
2762 |
-
|
2763 |
-
|
2764 |
-
|
2765 |
-
|
2766 |
-
|
2767 |
-
|
2768 |
-
|
2769 |
-
|
2770 |
-
|
2771 |
-
|
2772 |
-
|
2773 |
-
|
2774 |
-
|
2775 |
-
|
2776 |
-
|
2777 |
-
|
2778 |
-
|
2779 |
-
|
2780 |
-
|
2781 |
-
|
2782 |
-
|
2783 |
-
|
2784 |
-
|
2785 |
-
|
2786 |
-
|
2787 |
-
|
2788 |
-
|
2789 |
-
msgid "
|
2790 |
-
msgstr ""
|
2791 |
-
|
2792 |
-
#:
|
2793 |
-
|
2794 |
-
|
2795 |
-
|
2796 |
-
|
2797 |
-
|
2798 |
-
|
2799 |
-
|
2800 |
-
|
2801 |
-
|
2802 |
-
|
2803 |
-
|
2804 |
-
|
2805 |
-
|
2806 |
-
|
2807 |
-
|
2808 |
-
|
2809 |
-
|
2810 |
-
|
2811 |
-
|
2812 |
-
|
2813 |
-
|
2814 |
-
|
2815 |
-
|
2816 |
-
|
2817 |
-
|
2818 |
-
|
2819 |
-
|
2820 |
-
|
2821 |
-
|
2822 |
-
|
2823 |
-
|
2824 |
-
|
2825 |
-
|
2826 |
-
|
2827 |
-
|
2828 |
-
|
2829 |
-
|
2830 |
-
|
2831 |
-
|
2832 |
-
|
2833 |
-
|
2834 |
-
|
2835 |
-
|
2836 |
-
|
2837 |
-
|
2838 |
-
|
2839 |
-
msgid "
|
2840 |
-
|
2841 |
-
|
2842 |
-
|
2843 |
-
|
2844 |
-
|
2845 |
-
|
2846 |
-
|
2847 |
-
|
2848 |
-
msgstr ""
|
2849 |
-
|
2850 |
-
|
2851 |
-
|
2852 |
-
msgid "
|
2853 |
-
msgstr ""
|
2854 |
-
|
2855 |
-
#:
|
2856 |
-
|
2857 |
-
|
2858 |
-
|
2859 |
-
|
2860 |
-
|
2861 |
-
|
2862 |
-
|
2863 |
-
|
2864 |
-
|
2865 |
-
|
2866 |
-
|
2867 |
-
|
2868 |
-
|
2869 |
-
|
2870 |
-
|
2871 |
-
|
2872 |
-
|
2873 |
-
|
2874 |
-
|
2875 |
-
|
2876 |
-
|
2877 |
-
|
2878 |
-
|
2879 |
-
|
2880 |
-
|
2881 |
-
|
2882 |
-
|
2883 |
-
|
2884 |
-
|
2885 |
-
|
2886 |
-
|
2887 |
-
|
2888 |
-
msgid "
|
2889 |
-
msgstr ""
|
2890 |
-
|
2891 |
-
#:
|
2892 |
-
|
2893 |
-
|
2894 |
-
|
2895 |
-
|
2896 |
-
|
2897 |
-
|
2898 |
-
|
2899 |
-
|
2900 |
-
|
2901 |
-
|
2902 |
-
|
2903 |
-
|
2904 |
-
|
2905 |
-
|
2906 |
-
|
2907 |
-
|
2908 |
-
|
2909 |
-
|
2910 |
-
|
2911 |
-
|
2912 |
-
|
2913 |
-
"
|
2914 |
-
|
2915 |
-
|
2916 |
-
|
2917 |
-
#:
|
2918 |
-
msgid "
|
2919 |
-
msgstr ""
|
2920 |
-
|
2921 |
-
#:
|
2922 |
-
msgid "
|
2923 |
-
msgstr ""
|
2924 |
-
|
2925 |
-
#:
|
2926 |
-
|
2927 |
-
|
2928 |
-
|
2929 |
-
|
2930 |
-
|
2931 |
-
|
2932 |
-
|
2933 |
-
|
2934 |
-
|
2935 |
-
|
2936 |
-
|
2937 |
-
|
2938 |
-
|
2939 |
-
msgid "
|
2940 |
-
msgstr ""
|
2941 |
-
|
2942 |
-
#:
|
2943 |
-
msgid "
|
2944 |
-
msgstr ""
|
2945 |
-
|
2946 |
-
#:
|
2947 |
-
msgid "
|
2948 |
-
msgstr ""
|
2949 |
-
|
2950 |
-
#:
|
2951 |
-
msgid "
|
2952 |
-
msgstr ""
|
2953 |
-
|
2954 |
-
#:
|
2955 |
-
msgid "
|
2956 |
-
msgstr ""
|
2957 |
-
|
2958 |
-
#:
|
2959 |
-
|
2960 |
-
|
2961 |
-
|
2962 |
-
|
2963 |
-
|
2964 |
-
|
2965 |
-
|
2966 |
-
|
2967 |
-
|
2968 |
-
|
2969 |
-
|
2970 |
-
|
2971 |
-
|
2972 |
-
|
2973 |
-
|
2974 |
-
#:
|
2975 |
-
|
2976 |
-
|
2977 |
-
|
2978 |
-
|
2979 |
-
|
2980 |
-
|
2981 |
-
|
2982 |
-
|
2983 |
-
|
2984 |
-
|
2985 |
-
|
2986 |
-
|
2987 |
-
|
2988 |
-
|
2989 |
-
|
2990 |
-
|
2991 |
-
|
2992 |
-
|
2993 |
-
|
2994 |
-
|
2995 |
-
|
2996 |
-
|
2997 |
-
|
2998 |
-
|
2999 |
-
|
3000 |
-
|
3001 |
-
|
3002 |
-
|
3003 |
-
|
3004 |
-
|
3005 |
-
|
3006 |
-
|
3007 |
-
|
3008 |
-
|
3009 |
-
|
3010 |
-
|
3011 |
-
|
3012 |
-
|
3013 |
-
|
3014 |
-
|
3015 |
-
|
3016 |
-
|
3017 |
-
|
3018 |
-
|
3019 |
-
|
3020 |
-
|
3021 |
-
|
3022 |
-
#:
|
3023 |
-
|
3024 |
-
|
3025 |
-
|
3026 |
-
|
3027 |
-
#:
|
3028 |
-
|
3029 |
-
msgid "
|
3030 |
-
msgstr ""
|
3031 |
-
|
3032 |
-
#:
|
3033 |
-
|
3034 |
-
|
3035 |
-
|
3036 |
-
|
3037 |
-
|
3038 |
-
|
3039 |
-
|
3040 |
-
|
3041 |
-
|
3042 |
-
|
3043 |
-
|
3044 |
-
|
3045 |
-
|
3046 |
-
|
3047 |
-
|
3048 |
-
|
3049 |
-
|
3050 |
-
|
3051 |
-
|
3052 |
-
|
3053 |
-
|
3054 |
-
|
3055 |
-
|
3056 |
-
|
3057 |
-
|
3058 |
-
|
3059 |
-
|
3060 |
-
|
3061 |
-
|
3062 |
-
|
3063 |
-
|
3064 |
-
|
3065 |
-
|
3066 |
-
|
3067 |
-
|
3068 |
-
|
3069 |
-
|
3070 |
-
|
3071 |
-
|
3072 |
-
|
3073 |
-
|
3074 |
-
|
3075 |
-
|
3076 |
-
|
3077 |
-
|
3078 |
-
|
3079 |
-
|
3080 |
-
|
3081 |
-
|
3082 |
-
|
3083 |
-
|
3084 |
-
|
3085 |
-
|
3086 |
-
|
3087 |
-
|
3088 |
-
|
3089 |
-
|
3090 |
-
|
3091 |
-
|
3092 |
-
|
3093 |
-
|
3094 |
-
|
3095 |
-
|
3096 |
-
|
3097 |
-
|
3098 |
-
|
3099 |
-
|
3100 |
-
|
3101 |
-
|
3102 |
-
msgid "
|
3103 |
-
msgstr ""
|
3104 |
-
|
3105 |
-
#:
|
3106 |
-
|
3107 |
-
|
3108 |
-
|
3109 |
-
|
3110 |
-
|
3111 |
-
|
3112 |
-
|
3113 |
-
|
3114 |
-
|
3115 |
-
|
3116 |
-
|
3117 |
-
|
3118 |
-
|
3119 |
-
|
3120 |
-
|
3121 |
-
|
3122 |
-
|
3123 |
-
|
3124 |
-
|
3125 |
-
|
3126 |
-
|
3127 |
-
|
3128 |
-
|
3129 |
-
|
3130 |
-
|
3131 |
-
#:
|
3132 |
-
msgid "
|
3133 |
-
msgstr ""
|
3134 |
-
|
3135 |
-
#:
|
3136 |
-
msgid "
|
3137 |
-
msgstr ""
|
3138 |
-
|
3139 |
-
#:
|
3140 |
-
msgid "
|
3141 |
-
msgstr ""
|
3142 |
-
|
3143 |
-
#:
|
3144 |
-
msgid "
|
3145 |
-
msgstr ""
|
3146 |
-
|
3147 |
-
#:
|
3148 |
-
|
3149 |
-
|
3150 |
-
|
3151 |
-
|
3152 |
-
|
3153 |
-
|
3154 |
-
|
3155 |
-
|
3156 |
-
|
3157 |
-
|
3158 |
-
|
3159 |
-
|
3160 |
-
|
3161 |
-
|
3162 |
-
|
3163 |
-
|
3164 |
-
|
3165 |
-
|
3166 |
-
|
3167 |
-
|
3168 |
-
|
3169 |
-
|
3170 |
-
|
3171 |
-
|
3172 |
-
|
3173 |
-
|
3174 |
-
|
3175 |
-
|
3176 |
-
|
3177 |
-
|
3178 |
-
|
3179 |
-
|
3180 |
-
|
3181 |
-
|
3182 |
-
|
3183 |
-
|
3184 |
-
|
3185 |
-
|
3186 |
-
|
3187 |
-
|
3188 |
-
|
3189 |
-
|
3190 |
-
|
3191 |
-
|
3192 |
-
|
3193 |
-
|
3194 |
-
|
3195 |
-
|
3196 |
-
|
3197 |
-
|
3198 |
-
|
3199 |
-
|
3200 |
-
|
3201 |
-
|
3202 |
-
|
3203 |
-
|
3204 |
-
#:
|
3205 |
-
msgid "
|
3206 |
-
msgstr ""
|
3207 |
-
|
3208 |
-
#:
|
3209 |
-
msgid "
|
3210 |
-
msgstr ""
|
3211 |
-
|
3212 |
-
#:
|
3213 |
-
msgid "
|
3214 |
-
msgstr ""
|
3215 |
-
|
3216 |
-
#:
|
3217 |
-
|
3218 |
-
|
3219 |
-
|
3220 |
-
|
3221 |
-
|
3222 |
-
|
3223 |
-
|
3224 |
-
|
3225 |
-
|
3226 |
-
|
3227 |
-
|
3228 |
-
|
3229 |
-
msgid "
|
3230 |
-
msgstr ""
|
3231 |
-
|
3232 |
-
#:
|
3233 |
-
|
3234 |
-
|
3235 |
-
|
3236 |
-
|
3237 |
-
|
3238 |
-
|
3239 |
-
|
3240 |
-
|
3241 |
-
|
3242 |
-
"
|
3243 |
-
|
3244 |
-
|
3245 |
-
|
3246 |
-
|
3247 |
-
|
3248 |
-
|
3249 |
-
"
|
3250 |
-
|
3251 |
-
|
3252 |
-
|
3253 |
-
|
3254 |
-
|
3255 |
-
|
3256 |
-
|
3257 |
-
msgid "
|
3258 |
-
msgstr ""
|
3259 |
-
|
3260 |
-
#:
|
3261 |
-
|
3262 |
-
|
3263 |
-
|
3264 |
-
|
3265 |
-
|
3266 |
-
|
3267 |
-
|
3268 |
-
|
3269 |
-
"
|
3270 |
-
"
|
3271 |
-
|
3272 |
-
|
3273 |
-
|
3274 |
-
|
3275 |
-
|
3276 |
-
|
3277 |
-
"
|
3278 |
-
|
3279 |
-
|
3280 |
-
|
3281 |
-
|
3282 |
-
|
3283 |
-
|
3284 |
-
|
3285 |
-
|
3286 |
-
|
3287 |
-
|
3288 |
-
|
3289 |
-
|
3290 |
-
"
|
3291 |
-
"
|
3292 |
-
|
3293 |
-
|
3294 |
-
|
3295 |
-
|
3296 |
-
|
3297 |
-
|
3298 |
-
|
3299 |
-
msgid "
|
3300 |
-
msgstr ""
|
3301 |
-
|
3302 |
-
#:
|
3303 |
-
|
3304 |
-
|
3305 |
-
|
3306 |
-
|
3307 |
-
|
3308 |
-
|
3309 |
-
|
3310 |
-
|
3311 |
-
|
3312 |
-
"
|
3313 |
-
|
3314 |
-
|
3315 |
-
|
3316 |
-
|
3317 |
-
|
3318 |
-
|
3319 |
-
|
3320 |
-
msgid "
|
3321 |
-
msgstr ""
|
3322 |
-
|
3323 |
-
#:
|
3324 |
-
|
3325 |
-
|
3326 |
-
|
3327 |
-
|
3328 |
-
|
3329 |
-
|
3330 |
-
|
3331 |
-
|
3332 |
-
|
3333 |
-
"
|
3334 |
-
|
3335 |
-
|
3336 |
-
|
3337 |
-
|
3338 |
-
|
3339 |
-
|
3340 |
-
|
3341 |
-
|
3342 |
-
|
3343 |
-
|
3344 |
-
|
3345 |
-
|
3346 |
-
|
3347 |
-
|
3348 |
-
|
3349 |
-
|
3350 |
-
|
3351 |
-
|
3352 |
-
|
3353 |
-
|
3354 |
-
|
3355 |
-
|
3356 |
-
msgid "
|
3357 |
-
msgstr ""
|
3358 |
-
|
3359 |
-
#:
|
3360 |
-
|
3361 |
-
|
3362 |
-
|
3363 |
-
|
3364 |
-
|
3365 |
-
|
3366 |
-
|
3367 |
-
|
3368 |
-
|
3369 |
-
|
3370 |
-
|
3371 |
-
|
3372 |
-
|
3373 |
-
|
3374 |
-
|
3375 |
-
|
3376 |
-
|
3377 |
-
|
3378 |
-
|
3379 |
-
|
3380 |
-
|
3381 |
-
|
3382 |
-
|
3383 |
-
msgstr
|
3384 |
-
|
3385 |
-
|
3386 |
-
|
3387 |
-
|
3388 |
-
|
3389 |
-
|
3390 |
-
|
3391 |
-
|
3392 |
-
|
3393 |
-
|
3394 |
-
|
3395 |
-
|
3396 |
-
|
3397 |
-
|
3398 |
-
|
3399 |
-
|
3400 |
-
|
3401 |
-
|
3402 |
-
|
3403 |
-
|
3404 |
-
|
3405 |
-
|
3406 |
-
|
3407 |
-
|
3408 |
-
|
3409 |
-
|
3410 |
-
|
3411 |
-
|
3412 |
-
|
3413 |
-
|
3414 |
-
|
3415 |
-
|
3416 |
-
|
3417 |
-
|
3418 |
-
|
3419 |
-
msgid "
|
3420 |
-
msgstr ""
|
3421 |
-
|
3422 |
-
#:
|
3423 |
-
|
3424 |
-
|
3425 |
-
|
3426 |
-
|
3427 |
-
|
3428 |
-
|
3429 |
-
|
3430 |
-
|
3431 |
-
|
3432 |
-
|
3433 |
-
|
3434 |
-
|
3435 |
-
|
3436 |
-
|
3437 |
-
|
3438 |
-
|
3439 |
-
|
3440 |
-
|
3441 |
-
|
3442 |
-
|
3443 |
-
|
3444 |
-
|
3445 |
-
|
3446 |
-
|
3447 |
-
|
3448 |
-
|
3449 |
-
|
3450 |
-
|
3451 |
-
|
3452 |
-
|
3453 |
-
|
3454 |
-
|
3455 |
-
|
3456 |
-
|
3457 |
-
|
3458 |
-
|
3459 |
-
|
3460 |
-
msgid "
|
3461 |
-
msgstr ""
|
3462 |
-
|
3463 |
-
#:
|
3464 |
-
#, php-format
|
3465 |
-
msgid "
|
3466 |
-
|
3467 |
-
|
3468 |
-
|
3469 |
-
|
3470 |
-
|
3471 |
-
|
3472 |
-
|
3473 |
-
|
3474 |
-
|
3475 |
-
|
3476 |
-
|
3477 |
-
|
3478 |
-
|
3479 |
-
|
3480 |
-
|
3481 |
-
|
3482 |
-
|
3483 |
-
|
3484 |
-
|
3485 |
-
|
3486 |
-
|
3487 |
-
|
3488 |
-
|
3489 |
-
|
3490 |
-
|
3491 |
-
|
3492 |
-
|
3493 |
-
|
3494 |
-
|
3495 |
-
"
|
3496 |
-
msgstr ""
|
3497 |
-
|
3498 |
-
#:
|
3499 |
-
|
3500 |
-
|
3501 |
-
|
3502 |
-
|
3503 |
-
|
3504 |
-
|
3505 |
-
|
3506 |
-
|
3507 |
-
|
3508 |
-
|
3509 |
-
|
3510 |
-
|
3511 |
-
|
3512 |
-
|
3513 |
-
|
3514 |
-
|
3515 |
-
|
3516 |
-
|
3517 |
-
|
3518 |
-
|
3519 |
-
|
3520 |
-
|
3521 |
-
|
3522 |
-
|
3523 |
-
|
3524 |
-
|
3525 |
-
|
3526 |
-
|
3527 |
-
|
3528 |
-
|
3529 |
-
|
3530 |
-
|
3531 |
-
|
3532 |
-
|
3533 |
-
|
3534 |
-
|
3535 |
-
|
3536 |
-
|
3537 |
-
|
3538 |
-
|
3539 |
-
|
3540 |
-
|
3541 |
-
|
3542 |
-
|
3543 |
-
|
3544 |
-
|
3545 |
-
|
3546 |
-
|
3547 |
-
|
3548 |
-
|
3549 |
-
|
3550 |
-
|
3551 |
-
|
3552 |
-
|
3553 |
-
|
3554 |
-
|
3555 |
-
|
3556 |
-
|
3557 |
-
|
3558 |
-
|
3559 |
-
|
3560 |
-
msgid "
|
3561 |
-
msgstr ""
|
3562 |
-
|
3563 |
-
#:
|
3564 |
-
|
3565 |
-
|
3566 |
-
|
3567 |
-
|
3568 |
-
|
3569 |
-
|
3570 |
-
|
3571 |
-
|
3572 |
-
|
3573 |
-
|
3574 |
-
|
3575 |
-
|
3576 |
-
|
3577 |
-
|
3578 |
-
|
3579 |
-
|
3580 |
-
|
3581 |
-
msgid "
|
3582 |
-
msgstr ""
|
3583 |
-
|
3584 |
-
#:
|
3585 |
-
|
3586 |
-
|
3587 |
-
|
3588 |
-
|
3589 |
-
|
3590 |
-
|
3591 |
-
|
3592 |
-
|
3593 |
-
|
3594 |
-
|
3595 |
-
|
3596 |
-
|
3597 |
-
|
3598 |
-
|
3599 |
-
|
3600 |
-
|
3601 |
-
|
3602 |
-
|
3603 |
-
|
3604 |
-
|
3605 |
-
|
3606 |
-
|
3607 |
-
|
3608 |
-
|
3609 |
-
|
3610 |
-
|
3611 |
-
|
3612 |
-
|
3613 |
-
|
3614 |
-
|
3615 |
-
|
3616 |
-
|
3617 |
-
msgid "
|
3618 |
-
msgstr ""
|
3619 |
-
|
3620 |
-
#:
|
3621 |
-
msgid "
|
3622 |
-
msgstr ""
|
3623 |
-
|
3624 |
-
#:
|
3625 |
-
msgid "
|
3626 |
-
msgstr ""
|
3627 |
-
|
3628 |
-
#:
|
3629 |
-
msgid "
|
3630 |
-
msgstr ""
|
3631 |
-
|
3632 |
-
#:
|
3633 |
-
|
3634 |
-
|
3635 |
-
|
3636 |
-
|
3637 |
-
|
3638 |
-
|
3639 |
-
|
3640 |
-
|
3641 |
-
|
3642 |
-
|
3643 |
-
|
3644 |
-
|
3645 |
-
|
3646 |
-
|
3647 |
-
|
3648 |
-
|
3649 |
-
|
3650 |
-
|
3651 |
-
|
3652 |
-
|
3653 |
-
|
3654 |
-
|
3655 |
-
|
3656 |
-
|
3657 |
-
|
3658 |
-
|
3659 |
-
|
3660 |
-
|
3661 |
-
|
3662 |
-
|
3663 |
-
|
3664 |
-
#:
|
3665 |
-
msgid "
|
3666 |
-
msgstr ""
|
3667 |
-
|
3668 |
-
#:
|
3669 |
-
|
3670 |
-
|
3671 |
-
|
3672 |
-
|
3673 |
-
|
3674 |
-
|
3675 |
-
|
3676 |
-
|
3677 |
-
|
3678 |
-
|
3679 |
-
|
3680 |
-
|
3681 |
-
|
3682 |
-
|
3683 |
-
|
3684 |
-
|
3685 |
-
|
3686 |
-
|
3687 |
-
|
3688 |
-
|
3689 |
-
|
3690 |
-
|
3691 |
-
|
3692 |
-
|
3693 |
-
|
3694 |
-
|
3695 |
-
|
3696 |
-
|
3697 |
-
|
3698 |
-
|
3699 |
-
|
3700 |
-
|
3701 |
-
|
3702 |
-
|
3703 |
-
|
3704 |
-
|
3705 |
-
|
3706 |
-
msgid "
|
3707 |
-
msgstr ""
|
3708 |
-
|
3709 |
-
#:
|
3710 |
-
msgid "
|
3711 |
-
msgstr ""
|
3712 |
-
|
3713 |
-
#:
|
3714 |
-
|
3715 |
-
|
3716 |
-
|
3717 |
-
|
3718 |
-
|
3719 |
-
|
3720 |
-
|
3721 |
-
|
3722 |
-
|
3723 |
-
|
3724 |
-
|
3725 |
-
|
3726 |
-
|
3727 |
-
|
3728 |
-
|
3729 |
-
|
3730 |
-
|
3731 |
-
|
3732 |
-
|
3733 |
-
|
3734 |
-
|
3735 |
-
|
3736 |
-
|
3737 |
-
|
3738 |
-
|
3739 |
-
|
3740 |
-
|
3741 |
-
|
3742 |
-
|
3743 |
-
|
3744 |
-
|
3745 |
-
|
3746 |
-
|
3747 |
-
|
3748 |
-
|
3749 |
-
|
3750 |
-
|
3751 |
-
|
3752 |
-
|
3753 |
-
|
3754 |
-
|
3755 |
-
|
3756 |
-
|
3757 |
-
|
3758 |
-
|
3759 |
-
|
3760 |
-
|
3761 |
-
|
3762 |
-
|
3763 |
-
|
3764 |
-
|
3765 |
-
|
3766 |
-
|
3767 |
-
|
3768 |
-
|
3769 |
-
|
3770 |
-
|
3771 |
-
|
3772 |
-
|
3773 |
-
|
3774 |
-
msgid "
|
3775 |
-
msgstr ""
|
3776 |
-
|
3777 |
-
#:
|
3778 |
-
msgid "
|
3779 |
-
msgstr ""
|
3780 |
-
|
3781 |
-
#:
|
3782 |
-
|
3783 |
-
|
3784 |
-
|
3785 |
-
|
3786 |
-
|
3787 |
-
|
3788 |
-
|
3789 |
-
|
3790 |
-
|
3791 |
-
|
3792 |
-
|
3793 |
-
|
3794 |
-
|
3795 |
-
|
3796 |
-
|
3797 |
-
msgid "
|
3798 |
-
msgstr ""
|
3799 |
-
|
3800 |
-
#:
|
3801 |
-
|
3802 |
-
|
3803 |
-
|
3804 |
-
|
3805 |
-
|
3806 |
-
|
3807 |
-
|
3808 |
-
|
3809 |
-
|
3810 |
-
|
3811 |
-
msgid "
|
3812 |
-
msgstr ""
|
3813 |
-
|
3814 |
-
#:
|
3815 |
-
msgid "
|
3816 |
-
msgstr ""
|
3817 |
-
|
3818 |
-
#:
|
3819 |
-
#, php-format
|
3820 |
-
msgid "
|
3821 |
-
msgstr ""
|
3822 |
-
|
3823 |
-
#:
|
3824 |
-
#, php-format
|
3825 |
-
msgid "%s
|
3826 |
-
msgstr ""
|
3827 |
-
|
3828 |
-
#:
|
3829 |
-
msgid "
|
3830 |
-
msgstr ""
|
3831 |
-
|
3832 |
-
#:
|
3833 |
-
|
3834 |
-
|
3835 |
-
|
3836 |
-
|
3837 |
-
|
3838 |
-
|
3839 |
-
|
3840 |
-
|
3841 |
-
|
3842 |
-
|
3843 |
-
|
3844 |
-
|
3845 |
-
|
3846 |
-
|
3847 |
-
|
3848 |
-
|
3849 |
-
|
3850 |
-
|
3851 |
-
|
3852 |
-
|
3853 |
-
msgid "
|
3854 |
-
msgstr ""
|
3855 |
-
|
3856 |
-
#:
|
3857 |
-
|
3858 |
-
|
3859 |
-
|
3860 |
-
|
3861 |
-
|
3862 |
-
|
3863 |
-
|
3864 |
-
|
3865 |
-
|
3866 |
-
|
3867 |
-
|
3868 |
-
|
3869 |
-
|
3870 |
-
|
3871 |
-
|
3872 |
-
|
3873 |
-
|
3874 |
-
|
3875 |
-
|
3876 |
-
|
3877 |
-
|
3878 |
-
|
3879 |
-
|
3880 |
-
|
3881 |
-
|
3882 |
-
|
3883 |
-
|
3884 |
-
|
3885 |
-
|
3886 |
-
|
3887 |
-
|
3888 |
-
|
3889 |
-
|
3890 |
-
|
3891 |
-
|
3892 |
-
|
3893 |
-
|
3894 |
-
|
3895 |
-
|
3896 |
-
|
3897 |
-
|
3898 |
-
|
3899 |
-
|
3900 |
-
|
3901 |
-
|
3902 |
-
|
3903 |
-
|
3904 |
-
|
3905 |
-
|
3906 |
-
|
3907 |
-
|
3908 |
-
|
3909 |
-
|
3910 |
-
|
3911 |
-
|
3912 |
-
|
3913 |
-
|
3914 |
-
|
3915 |
-
|
3916 |
-
|
3917 |
-
|
3918 |
-
"
|
3919 |
-
msgstr ""
|
3920 |
-
|
3921 |
-
#:
|
3922 |
-
|
3923 |
-
|
3924 |
-
|
3925 |
-
|
3926 |
-
|
3927 |
-
|
3928 |
-
|
3929 |
-
|
3930 |
-
|
3931 |
-
|
3932 |
-
|
3933 |
-
|
3934 |
-
|
3935 |
-
|
3936 |
-
|
3937 |
-
|
3938 |
-
|
3939 |
-
|
3940 |
-
|
3941 |
-
|
3942 |
-
|
3943 |
-
|
3944 |
-
|
3945 |
-
|
3946 |
-
|
3947 |
-
|
3948 |
-
|
3949 |
-
|
3950 |
-
|
3951 |
-
|
3952 |
-
|
3953 |
-
|
3954 |
-
|
3955 |
-
|
3956 |
-
|
3957 |
-
|
3958 |
-
|
3959 |
-
|
3960 |
-
|
3961 |
-
#:
|
3962 |
-
msgid "
|
3963 |
-
msgstr ""
|
3964 |
-
|
3965 |
-
#:
|
3966 |
-
msgid "
|
3967 |
-
msgstr ""
|
3968 |
-
|
3969 |
-
#:
|
3970 |
-
msgid "
|
3971 |
-
msgstr ""
|
3972 |
-
|
3973 |
-
#:
|
3974 |
-
msgid "
|
3975 |
-
msgstr ""
|
3976 |
-
|
3977 |
-
#:
|
3978 |
-
msgid "
|
3979 |
-
msgstr ""
|
3980 |
-
|
3981 |
-
|
3982 |
-
|
3983 |
-
|
3984 |
-
|
3985 |
-
|
3986 |
-
|
3987 |
-
|
3988 |
-
|
3989 |
-
|
3990 |
-
|
3991 |
-
|
3992 |
-
|
3993 |
-
|
3994 |
-
|
3995 |
-
|
3996 |
-
#:
|
3997 |
-
msgid "
|
3998 |
-
msgstr ""
|
3999 |
-
|
4000 |
-
#:
|
4001 |
-
|
4002 |
-
|
4003 |
-
|
4004 |
-
|
4005 |
-
|
4006 |
-
|
4007 |
-
|
4008 |
-
|
4009 |
-
|
4010 |
-
|
4011 |
-
|
4012 |
-
|
4013 |
-
|
4014 |
-
|
4015 |
-
|
4016 |
-
#:
|
4017 |
-
msgid "
|
4018 |
-
msgstr ""
|
4019 |
-
|
4020 |
-
#:
|
4021 |
-
msgid "
|
4022 |
-
msgstr ""
|
4023 |
-
|
4024 |
-
#:
|
4025 |
-
|
4026 |
-
|
4027 |
-
|
4028 |
-
|
4029 |
-
|
4030 |
-
|
4031 |
-
|
4032 |
-
#:
|
4033 |
-
#:
|
4034 |
-
|
4035 |
-
|
4036 |
-
|
4037 |
-
|
4038 |
-
|
4039 |
-
msgid "
|
4040 |
-
msgstr ""
|
4041 |
-
|
4042 |
-
#:
|
4043 |
-
msgid "
|
4044 |
-
msgstr ""
|
4045 |
-
|
4046 |
-
#:
|
4047 |
-
msgid "
|
4048 |
-
msgstr ""
|
4049 |
-
|
4050 |
-
#:
|
4051 |
-
|
4052 |
-
|
4053 |
-
|
4054 |
-
|
4055 |
-
|
4056 |
-
|
4057 |
-
|
4058 |
-
|
4059 |
-
|
4060 |
-
|
4061 |
-
|
4062 |
-
|
4063 |
-
|
4064 |
-
|
4065 |
-
|
4066 |
-
|
4067 |
-
|
4068 |
-
|
4069 |
-
|
4070 |
-
|
4071 |
-
msgid "
|
4072 |
-
msgstr ""
|
4073 |
-
|
4074 |
-
#:
|
4075 |
-
msgid "
|
4076 |
-
msgstr ""
|
4077 |
-
|
4078 |
-
#:
|
4079 |
-
|
4080 |
-
|
4081 |
-
|
4082 |
-
|
4083 |
-
|
4084 |
-
|
4085 |
-
|
4086 |
-
|
4087 |
-
|
4088 |
-
|
4089 |
-
|
4090 |
-
|
4091 |
-
|
4092 |
-
|
4093 |
-
|
4094 |
-
|
4095 |
-
|
4096 |
-
|
4097 |
-
|
4098 |
-
|
4099 |
-
|
4100 |
-
|
4101 |
-
|
4102 |
-
|
4103 |
-
|
4104 |
-
|
4105 |
-
|
4106 |
-
|
4107 |
-
msgid "
|
4108 |
-
msgstr ""
|
4109 |
-
|
4110 |
-
#:
|
4111 |
-
|
4112 |
-
msgid "
|
4113 |
-
msgstr ""
|
4114 |
-
|
4115 |
-
#:
|
4116 |
-
|
4117 |
-
msgid "
|
4118 |
-
msgstr ""
|
4119 |
-
|
4120 |
-
#:
|
4121 |
-
|
4122 |
-
|
4123 |
-
|
4124 |
-
|
4125 |
-
|
4126 |
-
|
4127 |
-
|
4128 |
-
|
4129 |
-
|
4130 |
-
|
4131 |
-
|
4132 |
-
|
4133 |
-
|
4134 |
-
|
4135 |
-
|
4136 |
-
|
4137 |
-
|
4138 |
-
|
4139 |
-
|
4140 |
-
msgid "
|
4141 |
-
msgstr ""
|
4142 |
-
|
4143 |
-
#:
|
4144 |
-
|
4145 |
-
msgid "
|
4146 |
-
msgstr ""
|
4147 |
-
|
4148 |
-
#:
|
4149 |
-
|
4150 |
-
msgid "
|
4151 |
-
msgstr ""
|
4152 |
-
|
4153 |
-
#:
|
4154 |
-
msgid "
|
4155 |
-
msgstr ""
|
4156 |
-
|
4157 |
-
#:
|
4158 |
-
|
4159 |
-
|
4160 |
-
|
4161 |
-
|
4162 |
-
#:
|
4163 |
-
msgid "
|
4164 |
-
msgstr ""
|
4165 |
-
|
4166 |
-
#:
|
4167 |
-
|
4168 |
-
|
4169 |
-
|
4170 |
-
|
4171 |
-
|
4172 |
-
|
4173 |
-
|
4174 |
-
#:
|
4175 |
-
|
4176 |
-
|
4177 |
-
|
4178 |
-
|
4179 |
-
|
4180 |
-
|
4181 |
-
|
4182 |
-
|
4183 |
-
|
4184 |
-
|
4185 |
-
|
4186 |
-
|
4187 |
-
|
4188 |
-
|
4189 |
-
"
|
4190 |
-
|
4191 |
-
|
4192 |
-
|
4193 |
-
|
4194 |
-
|
4195 |
-
|
4196 |
-
|
4197 |
-
|
4198 |
-
|
4199 |
-
|
4200 |
-
|
4201 |
-
|
4202 |
-
|
4203 |
-
"
|
4204 |
-
|
4205 |
-
|
4206 |
-
|
4207 |
-
|
4208 |
-
|
4209 |
-
|
4210 |
-
|
4211 |
-
|
4212 |
-
|
4213 |
-
|
4214 |
-
#:
|
4215 |
-
|
4216 |
-
|
4217 |
-
|
4218 |
-
|
4219 |
-
|
4220 |
-
|
4221 |
-
msgid "
|
4222 |
-
msgstr ""
|
4223 |
-
|
4224 |
-
#:
|
4225 |
-
|
4226 |
-
|
4227 |
-
|
4228 |
-
|
4229 |
-
|
4230 |
-
|
4231 |
-
|
4232 |
-
|
4233 |
-
|
4234 |
-
|
4235 |
-
|
4236 |
-
|
4237 |
-
|
4238 |
-
|
4239 |
-
|
4240 |
-
|
4241 |
-
|
4242 |
-
|
4243 |
-
|
4244 |
-
|
4245 |
-
"
|
4246 |
-
msgstr ""
|
4247 |
-
|
4248 |
-
#:
|
4249 |
-
#, php-format
|
4250 |
-
msgid "
|
4251 |
-
msgstr ""
|
4252 |
-
|
4253 |
-
#:
|
4254 |
-
|
4255 |
-
|
4256 |
-
|
4257 |
-
|
4258 |
-
|
4259 |
-
|
4260 |
-
|
4261 |
-
|
4262 |
-
|
4263 |
-
"
|
4264 |
-
"
|
4265 |
-
|
4266 |
-
|
4267 |
-
#:
|
4268 |
-
msgid "
|
4269 |
-
msgstr ""
|
4270 |
-
|
4271 |
-
#:
|
4272 |
-
|
4273 |
-
|
4274 |
-
|
4275 |
-
|
4276 |
-
|
4277 |
-
|
4278 |
-
|
4279 |
-
|
4280 |
-
|
4281 |
-
|
4282 |
-
|
4283 |
-
|
4284 |
-
|
4285 |
-
|
4286 |
-
|
4287 |
-
#:
|
4288 |
-
msgid "
|
4289 |
-
msgstr ""
|
4290 |
-
|
4291 |
-
#:
|
4292 |
-
|
4293 |
-
|
4294 |
-
|
4295 |
-
|
4296 |
-
|
4297 |
-
|
4298 |
-
|
4299 |
-
|
4300 |
-
|
4301 |
-
|
4302 |
-
|
4303 |
-
|
4304 |
-
|
4305 |
-
|
4306 |
-
|
4307 |
-
|
4308 |
-
|
4309 |
-
|
4310 |
-
|
4311 |
-
#:
|
4312 |
-
msgid "
|
4313 |
-
msgstr ""
|
4314 |
-
|
4315 |
-
#:
|
4316 |
-
|
4317 |
-
|
4318 |
-
|
4319 |
-
|
4320 |
-
|
4321 |
-
|
4322 |
-
"
|
4323 |
-
|
4324 |
-
|
4325 |
-
|
4326 |
-
|
4327 |
-
|
4328 |
-
|
4329 |
-
|
4330 |
-
|
4331 |
-
|
4332 |
-
|
4333 |
-
|
4334 |
-
|
4335 |
-
|
4336 |
-
|
4337 |
-
|
4338 |
-
|
4339 |
-
|
4340 |
-
|
4341 |
-
|
4342 |
-
msgid "
|
4343 |
-
msgstr ""
|
4344 |
-
|
4345 |
-
#:
|
4346 |
-
|
4347 |
-
msgid "
|
4348 |
-
msgstr ""
|
4349 |
-
|
4350 |
-
#:
|
4351 |
-
|
4352 |
-
|
4353 |
-
|
4354 |
-
|
4355 |
-
|
4356 |
-
|
4357 |
-
msgid "
|
4358 |
-
msgstr ""
|
4359 |
-
|
4360 |
-
#:
|
4361 |
-
|
4362 |
-
|
4363 |
-
"
|
4364 |
-
msgstr ""
|
4365 |
-
|
4366 |
-
#:
|
4367 |
-
msgid "
|
4368 |
-
msgstr ""
|
4369 |
-
|
4370 |
-
#:
|
4371 |
-
msgid "
|
4372 |
-
msgstr ""
|
4373 |
-
|
4374 |
-
#:
|
4375 |
-
|
4376 |
-
|
4377 |
-
|
4378 |
-
|
4379 |
-
|
4380 |
-
|
4381 |
-
|
4382 |
-
|
4383 |
-
|
4384 |
-
|
4385 |
-
|
4386 |
-
|
4387 |
-
|
4388 |
-
|
4389 |
-
|
4390 |
-
|
4391 |
-
|
4392 |
-
|
4393 |
-
|
4394 |
-
|
4395 |
-
|
4396 |
-
#:
|
4397 |
-
#, php-format
|
4398 |
-
|
4399 |
-
|
4400 |
-
|
4401 |
-
|
4402 |
-
|
4403 |
-
msgid "
|
4404 |
-
msgstr ""
|
4405 |
-
|
4406 |
-
#:
|
4407 |
-
#, php-format
|
4408 |
-
msgid "
|
4409 |
-
msgstr ""
|
4410 |
-
|
4411 |
-
#:
|
4412 |
-
#, php-format
|
4413 |
-
msgid "
|
4414 |
-
msgstr ""
|
4415 |
-
|
4416 |
-
#:
|
4417 |
-
|
4418 |
-
|
4419 |
-
|
4420 |
-
|
4421 |
-
|
4422 |
-
|
4423 |
-
|
4424 |
-
|
4425 |
-
|
4426 |
-
|
4427 |
-
|
4428 |
-
|
4429 |
-
|
4430 |
-
|
4431 |
-
msgid "
|
4432 |
-
msgstr ""
|
4433 |
-
|
4434 |
-
#:
|
4435 |
-
|
4436 |
-
|
4437 |
-
|
4438 |
-
|
4439 |
-
|
4440 |
-
|
4441 |
-
|
4442 |
-
|
4443 |
-
|
4444 |
-
|
4445 |
-
|
4446 |
-
#:
|
4447 |
-
msgid "
|
4448 |
-
msgstr ""
|
4449 |
-
|
4450 |
-
#:
|
4451 |
-
|
4452 |
-
|
4453 |
-
|
4454 |
-
|
4455 |
-
|
4456 |
-
|
4457 |
-
|
4458 |
-
|
4459 |
-
|
4460 |
-
|
4461 |
-
|
4462 |
-
|
4463 |
-
|
4464 |
-
|
4465 |
-
|
4466 |
-
|
4467 |
-
|
4468 |
-
|
4469 |
-
|
4470 |
-
|
4471 |
-
|
4472 |
-
|
4473 |
-
|
4474 |
-
|
4475 |
-
"
|
4476 |
-
msgstr ""
|
4477 |
-
|
4478 |
-
#:
|
4479 |
-
|
4480 |
-
|
4481 |
-
|
4482 |
-
|
4483 |
-
|
4484 |
-
|
4485 |
-
|
4486 |
-
|
4487 |
-
|
4488 |
-
|
4489 |
-
|
4490 |
-
|
4491 |
-
|
4492 |
-
|
4493 |
-
|
4494 |
-
|
4495 |
-
|
4496 |
-
|
4497 |
-
|
4498 |
-
|
4499 |
-
|
4500 |
-
|
4501 |
-
|
4502 |
-
|
4503 |
-
|
4504 |
-
|
4505 |
-
|
4506 |
-
|
4507 |
-
|
4508 |
-
|
4509 |
-
|
4510 |
-
|
4511 |
-
|
4512 |
-
|
4513 |
-
|
4514 |
-
|
4515 |
-
|
4516 |
-
|
4517 |
-
|
4518 |
-
|
4519 |
-
|
4520 |
-
|
4521 |
-
|
4522 |
-
|
4523 |
-
|
4524 |
-
|
4525 |
-
msgid "
|
4526 |
-
msgstr ""
|
4527 |
-
|
4528 |
-
#:
|
4529 |
-
msgid "
|
4530 |
-
msgstr ""
|
4531 |
-
|
4532 |
-
#:
|
4533 |
-
|
4534 |
-
|
4535 |
-
|
4536 |
-
|
4537 |
-
|
4538 |
-
|
4539 |
-
|
4540 |
-
|
4541 |
-
|
4542 |
-
|
4543 |
-
|
4544 |
-
|
4545 |
-
#:
|
4546 |
-
msgid "
|
4547 |
-
msgstr ""
|
4548 |
-
|
4549 |
-
#:
|
4550 |
-
msgid "
|
4551 |
-
msgstr ""
|
4552 |
-
|
4553 |
-
#:
|
4554 |
-
msgid "
|
4555 |
-
msgstr ""
|
4556 |
-
|
4557 |
-
#:
|
4558 |
-
|
4559 |
-
|
4560 |
-
|
4561 |
-
|
4562 |
-
|
4563 |
-
|
4564 |
-
|
4565 |
-
|
4566 |
-
|
4567 |
-
|
4568 |
-
"
|
4569 |
-
msgstr ""
|
4570 |
-
|
4571 |
-
#:
|
4572 |
-
msgid "
|
4573 |
-
msgstr ""
|
4574 |
-
|
4575 |
-
#:
|
4576 |
-
#, php-format
|
4577 |
-
msgid "
|
4578 |
-
msgstr ""
|
4579 |
-
|
4580 |
-
#:
|
4581 |
-
|
4582 |
-
|
4583 |
-
|
4584 |
-
|
4585 |
-
|
4586 |
-
|
4587 |
-
|
4588 |
-
|
4589 |
-
|
4590 |
-
|
4591 |
-
|
4592 |
-
|
4593 |
-
|
4594 |
-
|
4595 |
-
|
4596 |
-
|
4597 |
-
|
4598 |
-
|
4599 |
-
|
4600 |
-
|
4601 |
-
|
4602 |
-
|
4603 |
-
|
4604 |
-
|
4605 |
-
|
4606 |
-
|
4607 |
-
|
4608 |
-
|
4609 |
-
|
4610 |
-
|
4611 |
-
|
4612 |
-
"
|
4613 |
-
msgstr ""
|
4614 |
-
|
4615 |
-
#:
|
4616 |
-
|
4617 |
-
|
4618 |
-
|
4619 |
-
|
4620 |
-
|
4621 |
-
|
4622 |
-
|
4623 |
-
|
4624 |
-
|
4625 |
-
|
4626 |
-
|
4627 |
-
|
4628 |
-
msgid ""
|
4629 |
-
|
4630 |
-
|
4631 |
-
|
4632 |
-
|
4633 |
-
|
4634 |
-
|
4635 |
-
|
4636 |
-
|
4637 |
-
|
4638 |
-
|
4639 |
-
|
4640 |
-
|
4641 |
-
|
4642 |
-
|
4643 |
-
|
4644 |
-
|
4645 |
-
|
4646 |
-
|
4647 |
-
#:
|
4648 |
-
msgid "
|
4649 |
-
msgstr ""
|
4650 |
-
|
4651 |
-
#:
|
4652 |
-
|
4653 |
-
|
4654 |
-
|
4655 |
-
|
4656 |
-
|
4657 |
-
|
4658 |
-
|
4659 |
-
|
4660 |
-
|
4661 |
-
|
4662 |
-
|
4663 |
-
|
4664 |
-
|
4665 |
-
|
4666 |
-
|
4667 |
-
|
4668 |
-
|
4669 |
-
|
4670 |
-
|
4671 |
-
|
4672 |
-
|
4673 |
-
|
4674 |
-
|
4675 |
-
|
4676 |
-
|
4677 |
-
|
4678 |
-
|
4679 |
-
|
4680 |
-
|
4681 |
-
|
4682 |
-
|
4683 |
-
|
4684 |
-
|
4685 |
-
|
4686 |
-
|
4687 |
-
|
4688 |
-
|
4689 |
-
|
4690 |
-
msgid "
|
4691 |
-
msgstr ""
|
4692 |
-
|
4693 |
-
#:
|
4694 |
-
|
4695 |
-
|
4696 |
-
|
4697 |
-
|
4698 |
-
|
4699 |
-
|
4700 |
-
|
4701 |
-
|
4702 |
-
|
4703 |
-
|
4704 |
-
|
4705 |
-
|
4706 |
-
|
4707 |
-
|
4708 |
-
|
4709 |
-
|
4710 |
-
|
4711 |
-
|
4712 |
-
|
4713 |
-
|
4714 |
-
msgid "
|
4715 |
-
msgstr ""
|
4716 |
-
|
4717 |
-
#:
|
4718 |
-
|
4719 |
-
|
4720 |
-
|
4721 |
-
|
4722 |
-
|
4723 |
-
|
4724 |
-
|
4725 |
-
|
4726 |
-
|
4727 |
-
|
4728 |
-
|
4729 |
-
|
4730 |
-
|
4731 |
-
|
4732 |
-
|
4733 |
-
|
4734 |
-
|
4735 |
-
|
4736 |
-
|
4737 |
-
|
4738 |
-
|
4739 |
-
|
4740 |
-
|
4741 |
-
|
4742 |
-
|
4743 |
-
|
4744 |
-
|
4745 |
-
|
4746 |
-
|
4747 |
-
|
4748 |
-
|
4749 |
-
|
4750 |
-
|
4751 |
-
|
4752 |
-
|
4753 |
-
|
4754 |
-
|
4755 |
-
|
4756 |
-
|
4757 |
-
|
4758 |
-
|
4759 |
-
|
4760 |
-
|
4761 |
-
|
4762 |
-
|
4763 |
-
|
4764 |
-
|
4765 |
-
|
4766 |
-
|
4767 |
-
|
4768 |
-
|
4769 |
-
|
4770 |
-
|
4771 |
-
|
4772 |
-
|
4773 |
-
|
4774 |
-
|
4775 |
-
|
4776 |
-
|
4777 |
-
|
4778 |
-
msgid "
|
4779 |
-
msgstr ""
|
4780 |
-
|
4781 |
-
#:
|
4782 |
-
|
4783 |
-
|
4784 |
-
|
4785 |
-
|
4786 |
-
|
4787 |
-
|
4788 |
-
|
4789 |
-
|
4790 |
-
|
4791 |
-
|
4792 |
-
|
4793 |
-
|
4794 |
-
|
4795 |
-
|
4796 |
-
|
4797 |
-
|
4798 |
-
|
4799 |
-
|
4800 |
-
|
4801 |
-
|
4802 |
-
|
4803 |
-
|
4804 |
-
|
4805 |
-
|
4806 |
-
|
4807 |
-
|
4808 |
-
|
4809 |
-
|
4810 |
-
|
4811 |
-
|
4812 |
-
|
4813 |
-
msgid "
|
4814 |
-
msgstr ""
|
4815 |
-
|
4816 |
-
#:
|
4817 |
-
|
4818 |
-
|
4819 |
-
|
4820 |
-
|
4821 |
-
|
4822 |
-
|
4823 |
-
|
4824 |
-
|
4825 |
-
|
4826 |
-
|
4827 |
-
|
4828 |
-
|
4829 |
-
|
4830 |
-
|
4831 |
-
|
4832 |
-
|
4833 |
-
|
4834 |
-
|
4835 |
-
msgid "
|
4836 |
-
msgstr ""
|
4837 |
-
|
4838 |
-
#:
|
4839 |
-
msgid "
|
4840 |
-
msgstr ""
|
4841 |
-
|
4842 |
-
#:
|
4843 |
-
msgid "
|
4844 |
-
msgstr ""
|
4845 |
-
|
4846 |
-
#:
|
4847 |
-
|
4848 |
-
|
4849 |
-
|
4850 |
-
|
4851 |
-
|
4852 |
-
|
4853 |
-
|
4854 |
-
|
4855 |
-
|
4856 |
-
|
4857 |
-
|
4858 |
-
|
4859 |
-
|
4860 |
-
|
4861 |
-
|
4862 |
-
|
4863 |
-
|
4864 |
-
|
4865 |
-
|
4866 |
-
|
4867 |
-
|
4868 |
-
|
4869 |
-
|
4870 |
-
|
4871 |
-
|
4872 |
-
|
4873 |
-
|
4874 |
-
|
4875 |
-
msgid "
|
4876 |
-
msgstr ""
|
4877 |
-
|
4878 |
-
#:
|
4879 |
-
|
4880 |
-
|
4881 |
-
|
4882 |
-
|
4883 |
-
|
4884 |
-
|
4885 |
-
|
4886 |
-
|
4887 |
-
|
4888 |
-
|
4889 |
-
|
4890 |
-
|
4891 |
-
|
4892 |
-
|
4893 |
-
|
4894 |
-
|
4895 |
-
|
4896 |
-
|
4897 |
-
|
4898 |
-
|
4899 |
-
|
4900 |
-
|
4901 |
-
|
4902 |
-
|
4903 |
-
|
4904 |
-
|
4905 |
-
|
4906 |
-
|
4907 |
-
msgid "
|
4908 |
-
msgstr ""
|
4909 |
-
|
4910 |
-
#:
|
4911 |
-
msgid "
|
4912 |
-
msgstr ""
|
4913 |
-
|
4914 |
-
#:
|
4915 |
-
msgid "
|
4916 |
-
msgstr ""
|
4917 |
-
|
4918 |
-
#:
|
4919 |
-
|
4920 |
-
|
4921 |
-
|
4922 |
-
|
4923 |
-
"
|
4924 |
-
|
4925 |
-
|
4926 |
-
|
4927 |
-
|
4928 |
-
|
4929 |
-
|
4930 |
-
|
4931 |
-
|
4932 |
-
|
4933 |
-
|
4934 |
-
|
4935 |
-
|
4936 |
-
|
4937 |
-
|
4938 |
-
|
4939 |
-
|
4940 |
-
|
4941 |
-
|
4942 |
-
|
4943 |
-
"
|
4944 |
-
|
4945 |
-
|
4946 |
-
|
4947 |
-
|
4948 |
-
|
4949 |
-
|
4950 |
-
|
4951 |
-
|
4952 |
-
|
4953 |
-
|
4954 |
-
|
4955 |
-
|
4956 |
-
|
4957 |
-
|
4958 |
-
#:
|
4959 |
-
|
4960 |
-
|
4961 |
-
|
4962 |
-
|
4963 |
-
|
4964 |
-
|
4965 |
-
|
4966 |
-
|
4967 |
-
|
4968 |
-
|
4969 |
-
|
4970 |
-
|
4971 |
-
|
4972 |
-
|
4973 |
-
|
4974 |
-
|
4975 |
-
|
4976 |
-
|
4977 |
-
|
4978 |
-
|
4979 |
-
|
4980 |
-
|
4981 |
-
|
4982 |
-
|
4983 |
-
|
4984 |
-
|
4985 |
-
|
4986 |
-
|
4987 |
-
#:
|
4988 |
-
msgid "
|
4989 |
-
msgstr ""
|
4990 |
-
|
4991 |
-
#:
|
4992 |
-
#, php-format
|
4993 |
-
msgid "
|
4994 |
-
|
4995 |
-
|
4996 |
-
|
4997 |
-
|
4998 |
-
|
4999 |
-
|
5000 |
-
|
5001 |
-
|
5002 |
-
|
5003 |
-
|
5004 |
-
|
5005 |
-
|
5006 |
-
msgid "
|
5007 |
-
msgstr ""
|
5008 |
-
|
5009 |
-
#:
|
5010 |
-
msgid "
|
5011 |
-
msgstr ""
|
5012 |
-
|
5013 |
-
#:
|
5014 |
-
|
5015 |
-
|
5016 |
-
|
5017 |
-
|
5018 |
-
|
5019 |
-
|
5020 |
-
|
5021 |
-
|
5022 |
-
|
5023 |
-
|
5024 |
-
|
5025 |
-
|
5026 |
-
|
5027 |
-
|
5028 |
-
|
5029 |
-
|
5030 |
-
msgid "
|
5031 |
-
msgstr ""
|
5032 |
-
|
5033 |
-
#:
|
5034 |
-
|
5035 |
-
|
5036 |
-
|
5037 |
-
|
5038 |
-
#:
|
5039 |
-
|
5040 |
-
|
5041 |
-
|
5042 |
-
|
5043 |
-
|
5044 |
-
|
5045 |
-
|
5046 |
-
|
5047 |
-
|
5048 |
-
|
5049 |
-
|
5050 |
-
|
5051 |
-
|
5052 |
-
|
5053 |
-
|
5054 |
-
|
5055 |
-
|
5056 |
-
|
5057 |
-
|
5058 |
-
|
5059 |
-
|
5060 |
-
|
5061 |
-
|
5062 |
-
#:
|
5063 |
-
msgid "
|
5064 |
-
msgstr ""
|
5065 |
-
|
5066 |
-
#:
|
5067 |
-
|
5068 |
-
msgid "
|
5069 |
-
msgstr ""
|
5070 |
-
|
5071 |
-
#:
|
5072 |
-
|
5073 |
-
|
5074 |
-
|
5075 |
-
|
5076 |
-
|
5077 |
-
|
5078 |
-
|
5079 |
-
|
5080 |
-
|
5081 |
-
|
5082 |
-
|
5083 |
-
|
5084 |
-
|
5085 |
-
|
5086 |
-
|
5087 |
-
#:
|
5088 |
-
msgid "
|
5089 |
-
msgstr ""
|
5090 |
-
|
5091 |
-
#:
|
5092 |
-
|
5093 |
-
|
5094 |
-
|
5095 |
-
|
5096 |
-
|
5097 |
-
|
5098 |
-
|
5099 |
-
|
5100 |
-
|
5101 |
-
|
5102 |
-
|
5103 |
-
|
5104 |
-
|
5105 |
-
|
5106 |
-
|
5107 |
-
|
5108 |
-
|
5109 |
-
|
5110 |
-
|
5111 |
-
|
5112 |
-
|
5113 |
-
|
5114 |
-
|
5115 |
-
|
5116 |
-
|
5117 |
-
|
5118 |
-
|
5119 |
-
|
5120 |
-
|
5121 |
-
|
5122 |
-
|
5123 |
-
|
5124 |
-
|
5125 |
-
|
5126 |
-
|
5127 |
-
|
5128 |
-
|
5129 |
-
|
5130 |
-
|
5131 |
-
|
5132 |
-
|
5133 |
-
|
5134 |
-
|
5135 |
-
"
|
5136 |
-
msgstr ""
|
5137 |
-
|
5138 |
-
#:
|
5139 |
-
|
5140 |
-
|
5141 |
-
|
5142 |
-
|
5143 |
-
|
5144 |
-
|
5145 |
-
|
5146 |
-
|
5147 |
-
msgid "
|
5148 |
-
msgstr ""
|
5149 |
-
|
5150 |
-
#:
|
5151 |
-
msgid "
|
5152 |
-
msgstr ""
|
5153 |
-
|
5154 |
-
#:
|
5155 |
-
|
5156 |
-
|
5157 |
-
|
5158 |
-
|
5159 |
-
|
5160 |
-
|
5161 |
-
|
5162 |
-
|
5163 |
-
|
5164 |
-
#:
|
5165 |
-
#, php-format
|
5166 |
-
msgid "
|
5167 |
-
msgstr ""
|
5168 |
-
|
5169 |
-
#:
|
5170 |
-
#, php-format
|
5171 |
-
msgid "
|
5172 |
-
msgstr ""
|
5173 |
-
|
5174 |
-
#:
|
5175 |
-
|
5176 |
-
|
5177 |
-
|
5178 |
-
|
5179 |
-
|
5180 |
-
|
5181 |
-
msgid "
|
5182 |
-
msgstr ""
|
5183 |
-
|
5184 |
-
#:
|
5185 |
-
|
5186 |
-
|
5187 |
-
|
5188 |
-
|
5189 |
-
|
5190 |
-
|
5191 |
-
|
5192 |
-
|
5193 |
-
|
5194 |
-
|
5195 |
-
|
5196 |
-
|
5197 |
-
|
5198 |
-
|
5199 |
-
|
5200 |
-
|
5201 |
-
|
5202 |
-
|
5203 |
-
|
5204 |
-
|
5205 |
-
|
5206 |
-
msgstr
|
5207 |
-
|
5208 |
-
|
5209 |
-
|
5210 |
-
|
5211 |
-
|
5212 |
-
|
5213 |
-
|
5214 |
-
|
5215 |
-
|
5216 |
-
|
5217 |
-
|
5218 |
-
|
5219 |
-
msgctxt "MarketPress URL part, should be .de for German languages"
|
5220 |
-
msgid "marketpress.com"
|
5221 |
-
msgstr ""
|
5222 |
-
|
5223 |
-
#: ../inc/pro/class-marketpress-autoupdate.php:362
|
5224 |
-
#, php-format
|
5225 |
-
msgid ""
|
5226 |
-
"<strong>Whoops!</strong> The license key you have entered appears not to be "
|
5227 |
-
"valid. You can always get your valid key from your Downloads page at %s. "
|
5228 |
-
"Automatic updates for this plugin have been disabled until you enter a valid "
|
5229 |
-
"key."
|
5230 |
-
msgstr ""
|
5231 |
-
|
5232 |
-
#: ../inc/pro/class-marketpress-autoupdate.php:369
|
5233 |
-
#, php-format
|
5234 |
-
msgid ""
|
5235 |
-
"<strong>All is fine.</strong> You are using a valid license key from %s for "
|
5236 |
-
"this plugin. If you need to enter a new key, just override the current one "
|
5237 |
-
"and save."
|
5238 |
-
msgstr ""
|
5239 |
-
|
5240 |
-
#: ../inc/pro/class-marketpress-autoupdate.php:382
|
5241 |
-
#, php-format
|
5242 |
-
msgid "Enter a valid license key from %s below."
|
5243 |
-
msgstr ""
|
5244 |
-
|
5245 |
-
#: ../inc/pro/class-marketpress-autoupdate.php:387
|
5246 |
-
msgid "Help! I need to retrieve my key."
|
5247 |
-
msgstr ""
|
5248 |
-
|
5249 |
-
#: ../inc/pro/class-marketpress-autoupdate.php:393
|
5250 |
-
msgid ""
|
5251 |
-
"<strong>Whoops!</strong> The license key you have entered appears not to be "
|
5252 |
-
"valid. Automatic updates for this plugin have been disabled until you enter "
|
5253 |
-
"a valid key."
|
5254 |
-
msgstr ""
|
5255 |
-
|
5256 |
-
#: ../inc/pro/class-marketpress-autoupdate.php:398
|
5257 |
-
#, php-format
|
5258 |
-
msgid ""
|
5259 |
-
"<strong>All is fine.</strong> You are using a valid license key from %s for "
|
5260 |
-
"this plugin. If you need to enter a new key, just override the current one "
|
5261 |
-
"and save. Or just <a href=\\\"%s\\\">delete it</a> to make it disappear."
|
5262 |
-
msgstr ""
|
5263 |
-
|
5264 |
-
#: ../inc/pro/class-marketpress-autoupdate.php:408
|
5265 |
-
msgid "Your license status"
|
5266 |
-
msgstr ""
|
5267 |
-
|
5268 |
-
#: ../inc/pro/class-marketpress-autoupdate.php:414
|
5269 |
-
msgid "License Key"
|
5270 |
-
msgstr ""
|
5271 |
-
|
5272 |
-
#: ../inc/pro/class-marketpress-autoupdate.php:416
|
5273 |
-
msgid "Activate"
|
5274 |
-
msgstr ""
|
5275 |
-
|
5276 |
-
#: ../inc/pro/class-marketpress-autoupdate.php:594
|
5277 |
-
msgid "License key has been deleted."
|
5278 |
-
msgstr ""
|
5279 |
-
|
5280 |
-
#: ../inc/pro/class-marketpress-autoupdate.php:600
|
5281 |
-
msgid "License activated successfully."
|
5282 |
-
msgstr ""
|
5283 |
-
|
5284 |
-
#: ../inc/pro/class-marketpress-autoupdate.php:606 ../inc/pro/class-marketpress-
|
5285 |
-
#: autoupdate.php:613 ../inc/pro/class-marketpress-autoupdate.php:622 ..
|
5286 |
-
#: /inc/pro/class-marketpress-autoupdate.php:631
|
5287 |
-
msgid "License cannot be activated."
|
5288 |
-
msgstr ""
|
5289 |
-
|
5290 |
-
#: ../inc/pro/class-marketpress-autoupdate.php:607
|
5291 |
-
msgid "The license key you have entered is not correct."
|
5292 |
-
msgstr ""
|
5293 |
-
|
5294 |
-
#: ../inc/pro/class-marketpress-autoupdate.php:614
|
5295 |
-
#, php-format
|
5296 |
-
msgid ""
|
5297 |
-
"You have reached the limit of URLs included in your license. Please update "
|
5298 |
-
"your license at %s."
|
5299 |
-
msgstr ""
|
5300 |
-
|
5301 |
-
#: ../inc/pro/class-marketpress-autoupdate.php:623
|
5302 |
-
#, php-format
|
5303 |
-
msgid ""
|
5304 |
-
"Something went wrong. Please try again later or contact the support staff at "
|
5305 |
-
"%s."
|
5306 |
-
msgstr ""
|
5307 |
-
|
5308 |
-
#: ../inc/pro/class-marketpress-autoupdate.php:632
|
5309 |
-
#, php-format
|
5310 |
-
msgid ""
|
5311 |
-
"Your license does not appear to be valid for this plugin. Please update your "
|
5312 |
-
"license at %s."
|
5313 |
-
msgstr ""
|
5314 |
-
|
5315 |
-
#: ../inc/pro/class-wizard-job.php:15
|
5316 |
-
msgid "Create a job"
|
5317 |
-
msgstr ""
|
5318 |
-
|
5319 |
-
#: ../inc/pro/class-wizard-job.php:16
|
5320 |
-
msgid "Choose a job"
|
5321 |
-
msgstr ""
|
5322 |
-
|
5323 |
-
#: ../inc/pro/class-wizard-job.php:41
|
5324 |
-
msgid "Job Types"
|
5325 |
-
msgstr ""
|
5326 |
-
|
5327 |
-
#: ../inc/pro/class-wizard-job.php:41
|
5328 |
-
msgid "Select a task for your job."
|
5329 |
-
msgstr ""
|
5330 |
-
|
5331 |
-
#: ../inc/pro/class-wizard-job.php:61
|
5332 |
-
msgid "Archive Settings"
|
5333 |
-
msgstr ""
|
5334 |
-
|
5335 |
-
#: ../inc/pro/class-wizard-job.php:62
|
5336 |
-
msgid "Settings for the Backup Archive"
|
5337 |
-
msgstr ""
|
5338 |
-
|
5339 |
-
#: ../inc/pro/class-wizard-job.php:68
|
5340 |
-
msgid "Where would you like to store the backup file?"
|
5341 |
-
msgstr ""
|
5342 |
-
|
5343 |
-
#: ../inc/pro/class-wizard-job.php:82 ../inc/pro/class-wizard-job.php:314
|
5344 |
-
msgid "Scheduling"
|
5345 |
-
msgstr ""
|
5346 |
-
|
5347 |
-
#: ../inc/pro/class-wizard-job.php:82
|
5348 |
-
msgid "When would you like to start the job?"
|
5349 |
-
msgstr ""
|
5350 |
-
|
5351 |
-
#: ../inc/pro/class-wizard-job.php:255
|
5352 |
-
msgid "Select one or more tasks for your backup job."
|
5353 |
-
msgstr ""
|
5354 |
-
|
5355 |
-
#: ../inc/pro/class-wizard-job.php:315
|
5356 |
-
msgid "Activate scheduling"
|
5357 |
-
msgstr ""
|
5358 |
-
|
5359 |
-
#: ../inc/pro/class-wizard-job.php:409
|
5360 |
-
msgid "Sync file by file to destination"
|
5361 |
-
msgstr ""
|
5362 |
-
|
5363 |
-
#: ../inc/pro/class-wizard-job.php:420
|
5364 |
-
msgid "Select a compression type for the backup archive"
|
5365 |
-
msgstr ""
|
5366 |
-
|
5367 |
-
#: ../inc/pro/class-wizard-job.php:423
|
5368 |
-
msgid "Archive compression type"
|
5369 |
-
msgstr ""
|
5370 |
-
|
5371 |
-
#: ../inc/pro/class-wizard-job.php:427
|
5372 |
-
msgid ""
|
5373 |
-
"PHP Zip functions will be used if available (memory lees). Else PCLZip Class "
|
5374 |
-
"will used."
|
5375 |
-
msgstr ""
|
5376 |
-
|
5377 |
-
#: ../inc/pro/class-wizard-job.php:430 ../inc/pro/class-wizard-job.php:441 ..
|
5378 |
-
#: /inc/pro/class-wizard-job.php:449
|
5379 |
-
msgid "Disabled because missing PHP function."
|
5380 |
-
msgstr ""
|
5381 |
-
|
5382 |
-
#: ../inc/pro/class-wizard-job.php:433 ../inc/pro/class-wizard-job.php:434
|
5383 |
-
msgid "Tar (fast and memory less) uncompressed"
|
5384 |
-
msgstr ""
|
5385 |
-
|
5386 |
-
#: ../inc/pro/class-wizard-job.php:437 ../inc/pro/class-wizard-job.php:438
|
5387 |
-
msgid "A tared and GZipped archive (fast and memory less)"
|
5388 |
-
msgstr ""
|
5389 |
-
|
5390 |
-
#: ../inc/pro/class-wizard-job.php:445
|
5391 |
-
msgid "A tared and BZipped archive (fast and memory less)"
|
5392 |
-
msgstr ""
|
5393 |
-
|
5394 |
-
#: ../inc/pro/class-wizard-job.php:470
|
5395 |
-
msgid "Where to store the files"
|
5396 |
-
msgstr ""
|
5397 |
-
|
5398 |
-
#: ../inc/pro/class-wizard-job.php:661
|
5399 |
-
#, php-format
|
5400 |
-
msgid "Wizard: %1$s"
|
5401 |
-
msgstr ""
|
5402 |
-
|
5403 |
-
#: ../inc/pro/class-wizard-job.php:680
|
5404 |
-
#, php-format
|
5405 |
-
msgid "New job %s generated."
|
5406 |
-
msgstr ""
|
5407 |
-
|
5408 |
-
#: ../inc/pro/class-wizard-job.php:692
|
5409 |
-
msgid "Create Job"
|
5410 |
-
msgstr ""
|
5411 |
-
|
5412 |
-
#: ../inc/pro/class-wizard-job.php:717 ../inc/pro/class-wizard-job.php:718
|
5413 |
-
msgid "Database Backup and XML Export (Daily)"
|
5414 |
-
msgstr ""
|
5415 |
-
|
5416 |
-
#: ../inc/pro/class-wizard-job.php:735 ../inc/pro/class-wizard-job.php:736
|
5417 |
-
msgid "Database Check (Weekly)"
|
5418 |
-
msgstr ""
|
5419 |
-
|
5420 |
-
#: ../inc/pro/class-wizard-job.php:760 ../inc/pro/class-wizard-job.php:761
|
5421 |
-
msgid "Backup all files"
|
5422 |
-
msgstr ""
|
5423 |
-
|
5424 |
-
#: ../inc/pro/class-wizard-job.php:775
|
5425 |
-
msgid "Essential files + list of plugins"
|
5426 |
-
msgstr ""
|
5427 |
-
|
5428 |
-
#: ../inc/pro/class-wizard-job.php:776
|
5429 |
-
msgid "Backup essential files and folders, plus a list of installed plugins."
|
5430 |
-
msgstr ""
|
5431 |
-
|
5432 |
-
#: ../inc/pro/class-wizard-job.php:791 ../inc/pro/class-wizard-job.php:792
|
5433 |
-
msgid "Custom configuration"
|
5434 |
-
msgstr ""
|
5435 |
-
|
5436 |
-
#: ../inc/pro/class-pro.php:122
|
5437 |
-
msgid "GDrive"
|
5438 |
-
msgstr ""
|
5439 |
-
|
5440 |
-
#: ../inc/pro/class-pro.php:175 ../inc/pro/class-pro.php:175 ../inc/pro/class-pro.
|
5441 |
-
#: php:200
|
5442 |
-
msgid "Wizards"
|
5443 |
-
msgstr ""
|
1 |
+
# Translation of BackWPup Pro
|
2 |
+
# Copyright (C) 2017 Inpsyde GmbH
|
3 |
+
# This file is distributed under the same license BackWPup Pro package.
|
4 |
+
#
|
5 |
+
#, fuzzy
|
6 |
+
msgid ""
|
7 |
+
msgstr ""
|
8 |
+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
13 |
+
"Project-Id-Version: BackWPup Pro\n"
|
14 |
+
|
15 |
+
#: backwpup.php:324 inc/class-page-backups.php:271
|
16 |
+
msgid "Folder"
|
17 |
+
msgstr ""
|
18 |
+
|
19 |
+
#: backwpup.php:325
|
20 |
+
msgid "Backup to Folder"
|
21 |
+
msgstr ""
|
22 |
+
|
23 |
+
#: backwpup.php:340
|
24 |
+
msgid "Email"
|
25 |
+
msgstr ""
|
26 |
+
|
27 |
+
#: backwpup.php:341
|
28 |
+
msgid "Backup sent via email"
|
29 |
+
msgstr ""
|
30 |
+
|
31 |
+
#: backwpup.php:356
|
32 |
+
msgid "FTP"
|
33 |
+
msgstr ""
|
34 |
+
|
35 |
+
#: backwpup.php:357
|
36 |
+
msgid "Backup to FTP"
|
37 |
+
msgstr ""
|
38 |
+
|
39 |
+
#: backwpup.php:372 inc/class-destination-dropbox.php:307
|
40 |
+
msgid "Dropbox"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#: backwpup.php:373 inc/class-page-about.php:517
|
44 |
+
msgid "Backup to Dropbox"
|
45 |
+
msgstr ""
|
46 |
+
|
47 |
+
#: backwpup.php:388 inc/class-destination-s3.php:27
|
48 |
+
msgid "S3 Service"
|
49 |
+
msgstr ""
|
50 |
+
|
51 |
+
#: backwpup.php:389
|
52 |
+
msgid "Backup to an S3 Service"
|
53 |
+
msgstr ""
|
54 |
+
|
55 |
+
#: backwpup.php:407
|
56 |
+
msgid "MS Azure"
|
57 |
+
msgstr ""
|
58 |
+
|
59 |
+
#: backwpup.php:408
|
60 |
+
msgid "Backup to Microsoft Azure (Blob)"
|
61 |
+
msgstr ""
|
62 |
+
|
63 |
+
#: backwpup.php:423
|
64 |
+
msgid "RSC"
|
65 |
+
msgstr ""
|
66 |
+
|
67 |
+
#: backwpup.php:424 inc/class-page-about.php:522
|
68 |
+
msgid "Backup to Rackspace Cloud Files"
|
69 |
+
msgstr ""
|
70 |
+
|
71 |
+
#: backwpup.php:441
|
72 |
+
msgid "SugarSync"
|
73 |
+
msgstr ""
|
74 |
+
|
75 |
+
#: backwpup.php:442 inc/class-page-about.php:537
|
76 |
+
msgid "Backup to SugarSync"
|
77 |
+
msgstr ""
|
78 |
+
|
79 |
+
#: backwpup.php:461
|
80 |
+
#, php-format
|
81 |
+
msgid "PHP Version %1$s is to low, you need Version %2$s or above."
|
82 |
+
msgstr ""
|
83 |
+
|
84 |
+
#: backwpup.php:468
|
85 |
+
#, php-format
|
86 |
+
msgid "Missing function \"%s\"."
|
87 |
+
msgstr ""
|
88 |
+
|
89 |
+
#: backwpup.php:477
|
90 |
+
#, php-format
|
91 |
+
msgid "Missing class \"%s\"."
|
92 |
+
msgstr ""
|
93 |
+
|
94 |
+
#: inc/class-admin.php:213 inc/class-help.php:24
|
95 |
+
msgid "http://docs.backwpup.com"
|
96 |
+
msgstr ""
|
97 |
+
|
98 |
+
#: inc/class-admin.php:213
|
99 |
+
msgid "Documentation"
|
100 |
+
msgstr ""
|
101 |
+
|
102 |
+
#: inc/class-admin.php:225
|
103 |
+
msgid "BackWPup Dashboard"
|
104 |
+
msgstr ""
|
105 |
+
|
106 |
+
#: inc/class-admin.php:225
|
107 |
+
msgid "Dashboard"
|
108 |
+
msgstr ""
|
109 |
+
|
110 |
+
#: inc/class-admin.php:241 inc/class-adminbar.php:82
|
111 |
+
#: inc/class-page-settings.php:115
|
112 |
+
msgid "Jobs"
|
113 |
+
msgstr ""
|
114 |
+
|
115 |
+
#: inc/class-admin.php:256
|
116 |
+
msgid "Add new job"
|
117 |
+
msgstr ""
|
118 |
+
|
119 |
+
#: inc/class-admin.php:271 inc/class-adminbar.php:98
|
120 |
+
#: inc/class-page-logs.php:328 inc/class-page-settings.php:115
|
121 |
+
msgid "Logs"
|
122 |
+
msgstr ""
|
123 |
+
|
124 |
+
#: inc/class-admin.php:286 inc/class-adminbar.php:106
|
125 |
+
msgid "Backups"
|
126 |
+
msgstr ""
|
127 |
+
|
128 |
+
#: inc/class-admin.php:301
|
129 |
+
msgid "Settings"
|
130 |
+
msgstr ""
|
131 |
+
|
132 |
+
#: inc/class-admin.php:314
|
133 |
+
msgid "About"
|
134 |
+
msgstr ""
|
135 |
+
|
136 |
+
#: inc/class-admin.php:329 inc/class-admin.php:335
|
137 |
+
msgid "Cheating, huh?"
|
138 |
+
msgstr ""
|
139 |
+
|
140 |
+
#: inc/class-admin.php:379
|
141 |
+
#, php-format
|
142 |
+
msgid "<a class=\"backwpup-get-pro\" href=\"%s\">Get BackWPup Pro now.</a>"
|
143 |
+
msgstr ""
|
144 |
+
|
145 |
+
#: inc/class-admin.php:379 inc/class-admin.php:399 inc/class-help.php:17
|
146 |
+
#: inc/class-help.php:22 inc/class-job.php:394
|
147 |
+
#: inc/class-jobtype-dbcheck.php:15 inc/class-jobtype-dbdump.php:15
|
148 |
+
#: inc/class-jobtype-file.php:15 inc/class-jobtype-wpexp.php:15
|
149 |
+
#: inc/class-jobtype-wpplugin.php:15 inc/class-page-about.php:624
|
150 |
+
#: inc/class-page-backwpup.php:260 inc/class-page-backwpup.php:262
|
151 |
+
#: inc/class-page-settings.php:376 inc/pro/class-wizard-job.php:17
|
152 |
+
#: inc/pro/class-wizard-jobimport.php:16
|
153 |
+
#: inc/pro/class-wizard-systemtest.php:16
|
154 |
+
msgid "http://backwpup.com"
|
155 |
+
msgstr ""
|
156 |
+
|
157 |
+
#: inc/class-admin.php:399
|
158 |
+
#, php-format
|
159 |
+
msgid "version %s"
|
160 |
+
msgstr ""
|
161 |
+
|
162 |
+
#: inc/class-admin.php:443
|
163 |
+
msgid "Add BackWPup Role"
|
164 |
+
msgstr ""
|
165 |
+
|
166 |
+
#: inc/class-admin.php:447
|
167 |
+
msgid "— No additional role for BackWPup —"
|
168 |
+
msgstr ""
|
169 |
+
|
170 |
+
#: inc/class-adminbar.php:51
|
171 |
+
msgid "running"
|
172 |
+
msgstr ""
|
173 |
+
|
174 |
+
#: inc/class-adminbar.php:67
|
175 |
+
msgid "Now Running"
|
176 |
+
msgstr ""
|
177 |
+
|
178 |
+
#: inc/class-adminbar.php:73
|
179 |
+
msgid "Abort!"
|
180 |
+
msgstr ""
|
181 |
+
|
182 |
+
#: inc/class-adminbar.php:90 inc/class-page-jobs.php:584
|
183 |
+
msgid "Add new"
|
184 |
+
msgstr ""
|
185 |
+
|
186 |
+
#: inc/class-adminbar.php:128
|
187 |
+
msgid "Run Now"
|
188 |
+
msgstr ""
|
189 |
+
|
190 |
+
#: inc/class-become-inpsyder-widget.php:22
|
191 |
+
#: inc/class-become-inpsyder-widget.php:34
|
192 |
+
msgid "Make BackWPup better!"
|
193 |
+
msgstr ""
|
194 |
+
|
195 |
+
#: inc/class-become-inpsyder-widget.php:88
|
196 |
+
msgid "https://inpsyde.com/en/jobs/?utm_source=BackWPup&utm_medium=Link&utm_campaign=BecomeAnInpsyder"
|
197 |
+
msgstr ""
|
198 |
+
|
199 |
+
#: inc/class-become-inpsyder-widget.php:96
|
200 |
+
msgid "We want to make BackWPup even stronger and its support much faster."
|
201 |
+
msgstr ""
|
202 |
+
|
203 |
+
#: inc/class-become-inpsyder-widget.php:104
|
204 |
+
msgid "This is why we are looking for a talented developer who can work remotely and support us in BackWPup"
|
205 |
+
msgstr ""
|
206 |
+
|
207 |
+
#: inc/class-become-inpsyder-widget.php:111
|
208 |
+
msgid "and other exciting WordPress projects at our VIP partner agency."
|
209 |
+
msgstr ""
|
210 |
+
|
211 |
+
#: inc/class-become-inpsyder-widget.php:122
|
212 |
+
msgid "Apply now!"
|
213 |
+
msgstr ""
|
214 |
+
|
215 |
+
#: inc/class-become-inpsyder-widget.php:129
|
216 |
+
msgid "Don't show again"
|
217 |
+
msgstr ""
|
218 |
+
|
219 |
+
#: inc/class-become-inpsyder-widget.php:133
|
220 |
+
msgid "Work for Inpsyde"
|
221 |
+
msgstr ""
|
222 |
+
|
223 |
+
#: inc/class-create-archive.php:64
|
224 |
+
msgid "The file name of an archive cannot be empty."
|
225 |
+
msgstr ""
|
226 |
+
|
227 |
+
#: inc/class-create-archive.php:72
|
228 |
+
#, php-format
|
229 |
+
msgctxt "%s = Folder name"
|
230 |
+
msgid "Folder %s for archive not found"
|
231 |
+
msgstr ""
|
232 |
+
|
233 |
+
#: inc/class-create-archive.php:78 inc/class-create-archive.php:110
|
234 |
+
#: inc/class-create-archive.php:123 inc/class-mysqldump.php:133
|
235 |
+
msgid "Functions for gz compression not available"
|
236 |
+
msgstr ""
|
237 |
+
|
238 |
+
#: inc/class-create-archive.php:85 inc/class-create-archive.php:129
|
239 |
+
msgid "Functions for bz2 compression not available"
|
240 |
+
msgstr ""
|
241 |
+
|
242 |
+
#: inc/class-create-archive.php:106
|
243 |
+
#, php-format
|
244 |
+
msgctxt "ZipArchive open() result"
|
245 |
+
msgid "Cannot create zip archive: %d"
|
246 |
+
msgstr ""
|
247 |
+
|
248 |
+
#: inc/class-create-archive.php:135
|
249 |
+
#, php-format
|
250 |
+
msgctxt "%s = file name"
|
251 |
+
msgid "Method to archive file %s not detected"
|
252 |
+
msgstr ""
|
253 |
+
|
254 |
+
#: inc/class-create-archive.php:140
|
255 |
+
msgid "Cannot open archive file"
|
256 |
+
msgstr ""
|
257 |
+
|
258 |
+
#: inc/class-create-archive.php:155 inc/class-create-archive.php:349
|
259 |
+
#, php-format
|
260 |
+
msgid "PclZip archive add error: %s"
|
261 |
+
msgstr ""
|
262 |
+
|
263 |
+
#: inc/class-create-archive.php:165
|
264 |
+
msgid "ZIP archive cannot be closed correctly."
|
265 |
+
msgstr ""
|
266 |
+
|
267 |
+
#: inc/class-create-archive.php:219
|
268 |
+
msgid "File name cannot be empty"
|
269 |
+
msgstr ""
|
270 |
+
|
271 |
+
#: inc/class-create-archive.php:228
|
272 |
+
#, php-format
|
273 |
+
msgctxt "File to add to archive"
|
274 |
+
msgid "File %s does not exist or is not readable"
|
275 |
+
msgstr ""
|
276 |
+
|
277 |
+
#: inc/class-create-archive.php:242 inc/class-create-archive.php:258
|
278 |
+
#: inc/class-create-archive.php:392 inc/class-create-archive.php:396
|
279 |
+
msgid "This archive method can only add one file"
|
280 |
+
msgstr ""
|
281 |
+
|
282 |
+
#: inc/class-create-archive.php:247 inc/class-create-archive.php:263
|
283 |
+
#, php-format
|
284 |
+
msgid "Cannot open source file %s to archive"
|
285 |
+
msgstr ""
|
286 |
+
|
287 |
+
#: inc/class-create-archive.php:311
|
288 |
+
msgid "ZIP archive cannot be closed correctly"
|
289 |
+
msgstr ""
|
290 |
+
|
291 |
+
#: inc/class-create-archive.php:329 inc/class-create-archive.php:338
|
292 |
+
#: inc/class-create-archive.php:407
|
293 |
+
#, php-format
|
294 |
+
msgid "Cannot add \"%s\" to zip archive!"
|
295 |
+
msgstr ""
|
296 |
+
|
297 |
+
#: inc/class-create-archive.php:374
|
298 |
+
msgid "Folder name cannot be empty"
|
299 |
+
msgstr ""
|
300 |
+
|
301 |
+
#: inc/class-create-archive.php:379
|
302 |
+
#, php-format
|
303 |
+
msgctxt "Folder path to add to archive"
|
304 |
+
msgid "Folder %s does not exist or is not readable"
|
305 |
+
msgstr ""
|
306 |
+
|
307 |
+
#: inc/class-create-archive.php:429
|
308 |
+
#, php-format
|
309 |
+
msgctxt "Text of ZipArchive status Message"
|
310 |
+
msgid "ZipArchive returns status: %s"
|
311 |
+
msgstr ""
|
312 |
+
|
313 |
+
#: inc/class-create-archive.php:459
|
314 |
+
#, php-format
|
315 |
+
msgid "File name \"%1$s\" is too long to be saved correctly in %2$s archive!"
|
316 |
+
msgstr ""
|
317 |
+
|
318 |
+
#: inc/class-create-archive.php:462
|
319 |
+
#, php-format
|
320 |
+
msgid "File path \"%1$s\" is too long to be saved correctly in %2$s archive!"
|
321 |
+
msgstr ""
|
322 |
+
|
323 |
+
#: inc/class-create-archive.php:474
|
324 |
+
#, php-format
|
325 |
+
msgid "Cannot open source file %s for archiving"
|
326 |
+
msgstr ""
|
327 |
+
|
328 |
+
#: inc/class-create-archive.php:479 inc/class-create-archive.php:480
|
329 |
+
#: inc/class-create-archive.php:579 inc/class-create-archive.php:580
|
330 |
+
msgid "Unknown"
|
331 |
+
msgstr ""
|
332 |
+
|
333 |
+
#: inc/class-create-archive.php:570
|
334 |
+
#, php-format
|
335 |
+
msgid "Folder name \"%1$s\" is too long to be saved correctly in %2$s archive!"
|
336 |
+
msgstr ""
|
337 |
+
|
338 |
+
#: inc/class-create-archive.php:573
|
339 |
+
#, php-format
|
340 |
+
msgid "Folder path \"%1$s\" is too long to be saved correctly in %2$s archive!"
|
341 |
+
msgstr ""
|
342 |
+
|
343 |
+
#: inc/class-create-archive.php:654
|
344 |
+
#, php-format
|
345 |
+
msgid "If %s will be added to your backup archive, the archive will be too large for operations with this PHP Version. You might want to consider splitting the backup job in multiple jobs with less files each."
|
346 |
+
msgstr ""
|
347 |
+
|
348 |
+
#: inc/class-cron.php:69
|
349 |
+
msgid "Aborted, because no progress for one hour!"
|
350 |
+
msgstr ""
|
351 |
+
|
352 |
+
#: inc/class-destination-dropbox.php:47 inc/class-destination-dropbox.php:364
|
353 |
+
#: inc/pro/class-destination-dropbox.php:266
|
354 |
+
#, php-format
|
355 |
+
msgid "Dropbox API: %s"
|
356 |
+
msgstr ""
|
357 |
+
|
358 |
+
#: inc/class-destination-dropbox.php:62
|
359 |
+
#: inc/pro/class-destination-gdrive.php:51
|
360 |
+
msgid "Login"
|
361 |
+
msgstr ""
|
362 |
+
|
363 |
+
#: inc/class-destination-dropbox.php:66 inc/class-destination-sugarsync.php:28
|
364 |
+
#: inc/class-destination-sugarsync.php:43
|
365 |
+
msgid "Authentication"
|
366 |
+
msgstr ""
|
367 |
+
|
368 |
+
#: inc/class-destination-dropbox.php:68
|
369 |
+
#: inc/pro/class-destination-gdrive.php:57
|
370 |
+
#: inc/pro/class-destination-gdrive.php:294
|
371 |
+
msgid "Not authenticated!"
|
372 |
+
msgstr ""
|
373 |
+
|
374 |
+
#: inc/class-destination-dropbox.php:70
|
375 |
+
#: inc/pro/class-destination-dropbox.php:29
|
376 |
+
msgid "Create Account"
|
377 |
+
msgstr ""
|
378 |
+
|
379 |
+
#: inc/class-destination-dropbox.php:72 inc/class-destination-sugarsync.php:45
|
380 |
+
#: inc/pro/class-destination-dropbox.php:35
|
381 |
+
#: inc/pro/class-destination-gdrive.php:59
|
382 |
+
#: inc/pro/class-destination-gdrive.php:299
|
383 |
+
#: inc/pro/class-destination-sugarsync.php:31
|
384 |
+
msgid "Authenticated!"
|
385 |
+
msgstr ""
|
386 |
+
|
387 |
+
#: inc/class-destination-dropbox.php:75
|
388 |
+
msgid "Delete Dropbox Authentication"
|
389 |
+
msgstr ""
|
390 |
+
|
391 |
+
#: inc/class-destination-dropbox.php:82
|
392 |
+
msgid "App Access to Dropbox"
|
393 |
+
msgstr ""
|
394 |
+
|
395 |
+
#: inc/class-destination-dropbox.php:85
|
396 |
+
msgid "Get Dropbox App auth code"
|
397 |
+
msgstr ""
|
398 |
+
|
399 |
+
#: inc/class-destination-dropbox.php:86
|
400 |
+
msgid "A dedicated folder named BackWPup will be created inside of the Apps folder in your Dropbox. BackWPup will get read and write access to that folder only. You can specify a subfolder as your backup destination for this job in the destination field below."
|
401 |
+
msgstr ""
|
402 |
+
|
403 |
+
#: inc/class-destination-dropbox.php:91
|
404 |
+
msgid " OR "
|
405 |
+
msgstr ""
|
406 |
+
|
407 |
+
#: inc/class-destination-dropbox.php:94
|
408 |
+
msgid "Full Access to Dropbox"
|
409 |
+
msgstr ""
|
410 |
+
|
411 |
+
#: inc/class-destination-dropbox.php:97
|
412 |
+
msgid "Get full Dropbox auth code "
|
413 |
+
msgstr ""
|
414 |
+
|
415 |
+
#: inc/class-destination-dropbox.php:98
|
416 |
+
msgid "BackWPup will have full read and write access to your entire Dropbox. You can specify your backup destination wherever you want, just be aware that ANY files or folders inside of your Dropbox can be overridden or deleted by BackWPup."
|
417 |
+
msgstr ""
|
418 |
+
|
419 |
+
#: inc/class-destination-dropbox.php:105 inc/class-destination-folder.php:29
|
420 |
+
#: inc/class-destination-ftp.php:49 inc/class-destination-msazure.php:66
|
421 |
+
#: inc/class-destination-rsc.php:95 inc/class-destination-sugarsync.php:81
|
422 |
+
#: inc/pro/class-destination-gdrive.php:68
|
423 |
+
msgid "Backup settings"
|
424 |
+
msgstr ""
|
425 |
+
|
426 |
+
#: inc/class-destination-dropbox.php:109
|
427 |
+
msgid "Destination Folder"
|
428 |
+
msgstr ""
|
429 |
+
|
430 |
+
#: inc/class-destination-dropbox.php:113
|
431 |
+
msgid "Specify a subfolder where your backup archives will be stored. If you use the App option from above, this folder will be created inside of Apps/BackWPup. Otherwise it will be created at the root of your Dropbox. Already exisiting folders with the same name will not be overriden."
|
432 |
+
msgstr ""
|
433 |
+
|
434 |
+
#: inc/class-destination-dropbox.php:118 inc/class-destination-folder.php:39
|
435 |
+
#: inc/class-destination-ftp.php:59 inc/class-destination-sugarsync.php:91
|
436 |
+
#: inc/pro/class-destination-gdrive.php:81
|
437 |
+
msgid "File Deletion"
|
438 |
+
msgstr ""
|
439 |
+
|
440 |
+
#: inc/class-destination-dropbox.php:125 inc/class-destination-folder.php:46
|
441 |
+
#: inc/class-destination-ftp.php:66 inc/class-destination-msazure.php:83
|
442 |
+
#: inc/class-destination-rsc.php:112 inc/class-destination-s3.php:122
|
443 |
+
#: inc/class-destination-sugarsync.php:98
|
444 |
+
#: inc/pro/class-destination-dropbox.php:52
|
445 |
+
#: inc/pro/class-destination-folder.php:43
|
446 |
+
#: inc/pro/class-destination-gdrive.php:90
|
447 |
+
#: inc/pro/class-destination-gdrive.php:322
|
448 |
+
#: inc/pro/class-destination-msazure.php:45
|
449 |
+
#: inc/pro/class-destination-rsc.php:65 inc/pro/class-destination-s3.php:74
|
450 |
+
msgid "Number of files to keep in folder."
|
451 |
+
msgstr ""
|
452 |
+
|
453 |
+
#: inc/class-destination-dropbox.php:130 inc/class-destination-folder.php:51
|
454 |
+
#: inc/class-destination-ftp.php:71 inc/class-destination-msazure.php:88
|
455 |
+
#: inc/class-destination-rsc.php:117 inc/class-destination-s3.php:127
|
456 |
+
#: inc/class-destination-sugarsync.php:103
|
457 |
+
#: inc/pro/class-destination-dropbox.php:55
|
458 |
+
#: inc/pro/class-destination-folder.php:48
|
459 |
+
#: inc/pro/class-destination-ftp.php:44
|
460 |
+
#: inc/pro/class-destination-gdrive.php:97
|
461 |
+
#: inc/pro/class-destination-gdrive.php:327
|
462 |
+
#: inc/pro/class-destination-msazure.php:56
|
463 |
+
#: inc/pro/class-destination-rsc.php:70 inc/pro/class-destination-s3.php:79
|
464 |
+
#: inc/pro/class-destination-sugarsync.php:65
|
465 |
+
msgid "Do not delete files while syncing to destination!"
|
466 |
+
msgstr ""
|
467 |
+
|
468 |
+
#: inc/class-destination-dropbox.php:248
|
469 |
+
#, php-format
|
470 |
+
msgid "%d. Try to send backup file to Dropbox …"
|
471 |
+
msgstr ""
|
472 |
+
|
473 |
+
#: inc/class-destination-dropbox.php:275
|
474 |
+
#: inc/pro/class-destination-dropbox.php:141
|
475 |
+
#, php-format
|
476 |
+
msgid "Authenticated with Dropbox of user: %s"
|
477 |
+
msgstr ""
|
478 |
+
|
479 |
+
#: inc/class-destination-dropbox.php:279
|
480 |
+
#: inc/pro/class-destination-dropbox.php:145
|
481 |
+
#, php-format
|
482 |
+
msgid "%s available on your Dropbox"
|
483 |
+
msgstr ""
|
484 |
+
|
485 |
+
#: inc/class-destination-dropbox.php:282
|
486 |
+
#: inc/pro/class-destination-dropbox.php:148
|
487 |
+
msgid "Not Authenticated with Dropbox!"
|
488 |
+
msgstr ""
|
489 |
+
|
490 |
+
#: inc/class-destination-dropbox.php:286
|
491 |
+
msgid "Uploading to Dropbox …"
|
492 |
+
msgstr ""
|
493 |
+
|
494 |
+
#: inc/class-destination-dropbox.php:299 inc/class-destination-msazure.php:285
|
495 |
+
#: inc/class-destination-sugarsync.php:259
|
496 |
+
#: inc/pro/class-destination-gdrive.php:662
|
497 |
+
#, php-format
|
498 |
+
msgid "Backup transferred to %s"
|
499 |
+
msgstr ""
|
500 |
+
|
501 |
+
#: inc/class-destination-dropbox.php:302
|
502 |
+
#: inc/pro/class-destination-gdrive.php:665
|
503 |
+
msgid "Uploaded file size and local file size don't match."
|
504 |
+
msgstr ""
|
505 |
+
|
506 |
+
#: inc/class-destination-dropbox.php:306
|
507 |
+
#: inc/pro/class-destination-gdrive.php:667
|
508 |
+
#: inc/pro/class-destination-glacier.php:447
|
509 |
+
#, php-format
|
510 |
+
msgid "Error transfering backup to %s."
|
511 |
+
msgstr ""
|
512 |
+
|
513 |
+
#: inc/class-destination-dropbox.php:354
|
514 |
+
#, php-format
|
515 |
+
msgid "Error while deleting file from Dropbox: %s"
|
516 |
+
msgstr ""
|
517 |
+
|
518 |
+
#: inc/class-destination-dropbox.php:358
|
519 |
+
#, php-format
|
520 |
+
msgid "One file deleted from Dropbox"
|
521 |
+
msgid_plural "%d files deleted on Dropbox"
|
522 |
+
msgstr[0] ""
|
523 |
+
msgstr[1] ""
|
524 |
+
|
525 |
+
#: inc/class-destination-email.php:38 inc/pro/class-destination-email.php:16
|
526 |
+
#: inc/pro/class-destination-email.php:18
|
527 |
+
msgid "Email address"
|
528 |
+
msgstr ""
|
529 |
+
|
530 |
+
#: inc/class-destination-email.php:41
|
531 |
+
msgid "To email address"
|
532 |
+
msgstr ""
|
533 |
+
|
534 |
+
#: inc/class-destination-email.php:47 inc/class-destination-email.php:49
|
535 |
+
#: inc/pro/class-destination-email.php:29
|
536 |
+
#: inc/pro/class-destination-email.php:30
|
537 |
+
msgid "Send test email"
|
538 |
+
msgstr ""
|
539 |
+
|
540 |
+
#: inc/class-destination-email.php:54
|
541 |
+
msgid "Send email settings"
|
542 |
+
msgstr ""
|
543 |
+
|
544 |
+
#: inc/class-destination-email.php:57
|
545 |
+
msgid "Maximum file size"
|
546 |
+
msgstr ""
|
547 |
+
|
548 |
+
#: inc/class-destination-email.php:59
|
549 |
+
msgid "MB"
|
550 |
+
msgstr ""
|
551 |
+
|
552 |
+
#: inc/class-destination-email.php:60
|
553 |
+
msgid "Maximum file size to be included in an email. 0 = unlimited"
|
554 |
+
msgstr ""
|
555 |
+
|
556 |
+
#: inc/class-destination-email.php:64
|
557 |
+
msgid "From email address"
|
558 |
+
msgstr ""
|
559 |
+
|
560 |
+
#: inc/class-destination-email.php:70
|
561 |
+
msgid "From name"
|
562 |
+
msgstr ""
|
563 |
+
|
564 |
+
#: inc/class-destination-email.php:76
|
565 |
+
msgid "Sending method"
|
566 |
+
msgstr ""
|
567 |
+
|
568 |
+
#: inc/class-destination-email.php:80
|
569 |
+
msgid "Use WordPress settings"
|
570 |
+
msgstr ""
|
571 |
+
|
572 |
+
#: inc/class-destination-email.php:81
|
573 |
+
msgid "PHP: mail()"
|
574 |
+
msgstr ""
|
575 |
+
|
576 |
+
#: inc/class-destination-email.php:82
|
577 |
+
msgid "Sendmail"
|
578 |
+
msgstr ""
|
579 |
+
|
580 |
+
#: inc/class-destination-email.php:83
|
581 |
+
msgid "SMTP"
|
582 |
+
msgstr ""
|
583 |
+
|
584 |
+
#: inc/class-destination-email.php:89
|
585 |
+
msgid "Sendmail path"
|
586 |
+
msgstr ""
|
587 |
+
|
588 |
+
#: inc/class-destination-email.php:95
|
589 |
+
msgid "SMTP host name"
|
590 |
+
msgstr ""
|
591 |
+
|
592 |
+
#: inc/class-destination-email.php:98 inc/class-destination-ftp.php:31
|
593 |
+
#: inc/pro/class-destination-ftp.php:21
|
594 |
+
msgid "Port:"
|
595 |
+
msgstr ""
|
596 |
+
|
597 |
+
#: inc/class-destination-email.php:102
|
598 |
+
msgid "SMTP secure connection"
|
599 |
+
msgstr ""
|
600 |
+
|
601 |
+
#: inc/class-destination-email.php:106 inc/class-jobtype-dbdump.php:67
|
602 |
+
#: inc/class-jobtype-dbdump.php:103 inc/class-jobtype-wpexp.php:73
|
603 |
+
#: inc/class-jobtype-wpplugin.php:57 inc/class-page-backwpup.php:329
|
604 |
+
#: inc/class-page-backwpup.php:396 inc/class-page-settings.php:313
|
605 |
+
#: inc/pro/class-jobtype-dbdump.php:157 inc/pro/class-jobtype-dbdump.php:205
|
606 |
+
msgid "none"
|
607 |
+
msgstr ""
|
608 |
+
|
609 |
+
#: inc/class-destination-email.php:107
|
610 |
+
msgid "SSL"
|
611 |
+
msgstr ""
|
612 |
+
|
613 |
+
#: inc/class-destination-email.php:108
|
614 |
+
msgid "TLS"
|
615 |
+
msgstr ""
|
616 |
+
|
617 |
+
#: inc/class-destination-email.php:113
|
618 |
+
msgid "SMTP username"
|
619 |
+
msgstr ""
|
620 |
+
|
621 |
+
#: inc/class-destination-email.php:120
|
622 |
+
msgid "SMTP password"
|
623 |
+
msgstr ""
|
624 |
+
|
625 |
+
#: inc/class-destination-email.php:199
|
626 |
+
#, php-format
|
627 |
+
msgid "%d. Try to send backup with email …"
|
628 |
+
msgstr ""
|
629 |
+
|
630 |
+
#: inc/class-destination-email.php:204
|
631 |
+
msgid "Backup archive too big to be sent by email!"
|
632 |
+
msgstr ""
|
633 |
+
|
634 |
+
#: inc/class-destination-email.php:211
|
635 |
+
#, php-format
|
636 |
+
msgid "Sending email to %s…"
|
637 |
+
msgstr ""
|
638 |
+
|
639 |
+
#: inc/class-destination-email.php:289
|
640 |
+
#, php-format
|
641 |
+
msgid "BackWPup archive from %1$s: %2$s"
|
642 |
+
msgstr ""
|
643 |
+
|
644 |
+
#: inc/class-destination-email.php:292
|
645 |
+
#, php-format
|
646 |
+
msgid "Backup archive: %s"
|
647 |
+
msgstr ""
|
648 |
+
|
649 |
+
#: inc/class-destination-email.php:306 inc/class-destination-email.php:430
|
650 |
+
msgid "Error while sending email!"
|
651 |
+
msgstr ""
|
652 |
+
|
653 |
+
#: inc/class-destination-email.php:312 inc/class-destination-email.php:432
|
654 |
+
msgid "Email sent."
|
655 |
+
msgstr ""
|
656 |
+
|
657 |
+
#: inc/class-destination-email.php:414
|
658 |
+
msgid "BackWPup archive sending TEST Message"
|
659 |
+
msgstr ""
|
660 |
+
|
661 |
+
#: inc/class-destination-email.php:417
|
662 |
+
msgid "If this message reaches your inbox, sending backup archives via email should work for you."
|
663 |
+
msgstr ""
|
664 |
+
|
665 |
+
#: inc/class-destination-folder.php:33
|
666 |
+
msgid "Folder to store backups in"
|
667 |
+
msgstr ""
|
668 |
+
|
669 |
+
#: inc/class-destination-folder.php:217
|
670 |
+
#, php-format
|
671 |
+
msgid "One backup file deleted"
|
672 |
+
msgid_plural "%d backup files deleted"
|
673 |
+
msgstr[0] ""
|
674 |
+
msgstr[1] ""
|
675 |
+
|
676 |
+
#: inc/class-destination-ftp.php:23
|
677 |
+
msgid "FTP server and login"
|
678 |
+
msgstr ""
|
679 |
+
|
680 |
+
#: inc/class-destination-ftp.php:27
|
681 |
+
msgid "FTP server"
|
682 |
+
msgstr ""
|
683 |
+
|
684 |
+
#: inc/class-destination-ftp.php:36 inc/class-destination-rsc.php:46
|
685 |
+
msgid "Username"
|
686 |
+
msgstr ""
|
687 |
+
|
688 |
+
#: inc/class-destination-ftp.php:42
|
689 |
+
msgid "Password"
|
690 |
+
msgstr ""
|
691 |
+
|
692 |
+
#: inc/class-destination-ftp.php:53
|
693 |
+
msgid "Folder to store files in"
|
694 |
+
msgstr ""
|
695 |
+
|
696 |
+
#: inc/class-destination-ftp.php:78
|
697 |
+
msgid "FTP specific settings"
|
698 |
+
msgstr ""
|
699 |
+
|
700 |
+
#: inc/class-destination-ftp.php:82
|
701 |
+
msgid "Timeout for FTP connection"
|
702 |
+
msgstr ""
|
703 |
+
|
704 |
+
#: inc/class-destination-ftp.php:86 inc/class-page-logs.php:257
|
705 |
+
#: inc/class-page-settings.php:451
|
706 |
+
msgid "seconds"
|
707 |
+
msgstr ""
|
708 |
+
|
709 |
+
#: inc/class-destination-ftp.php:90
|
710 |
+
msgid "SSL-FTP connection"
|
711 |
+
msgstr ""
|
712 |
+
|
713 |
+
#: inc/class-destination-ftp.php:93
|
714 |
+
msgid "Use explicit SSL-FTP connection."
|
715 |
+
msgstr ""
|
716 |
+
|
717 |
+
#: inc/class-destination-ftp.php:98
|
718 |
+
msgid "FTP Passive Mode"
|
719 |
+
msgstr ""
|
720 |
+
|
721 |
+
#: inc/class-destination-ftp.php:100
|
722 |
+
msgid "Use FTP Passive Mode."
|
723 |
+
msgstr ""
|
724 |
+
|
725 |
+
#: inc/class-destination-ftp.php:178
|
726 |
+
msgid "FTP: Login failure!"
|
727 |
+
msgstr ""
|
728 |
+
|
729 |
+
#: inc/class-destination-ftp.php:202
|
730 |
+
#, php-format
|
731 |
+
msgid "%d. Try to send backup file to an FTP server …"
|
732 |
+
msgstr ""
|
733 |
+
|
734 |
+
#: inc/class-destination-ftp.php:208
|
735 |
+
#, php-format
|
736 |
+
msgid "Connected via explicit SSL-FTP to server: %s"
|
737 |
+
msgstr ""
|
738 |
+
|
739 |
+
#: inc/class-destination-ftp.php:210
|
740 |
+
#, php-format
|
741 |
+
msgid "Cannot connect via explicit SSL-FTP to server: %s"
|
742 |
+
msgstr ""
|
743 |
+
|
744 |
+
#: inc/class-destination-ftp.php:216
|
745 |
+
msgid "PHP function to connect with explicit SSL-FTP to server does not exist!"
|
746 |
+
msgstr ""
|
747 |
+
|
748 |
+
#: inc/class-destination-ftp.php:224
|
749 |
+
#, php-format
|
750 |
+
msgid "Connected to FTP server: %s"
|
751 |
+
msgstr ""
|
752 |
+
|
753 |
+
#: inc/class-destination-ftp.php:226
|
754 |
+
#, php-format
|
755 |
+
msgid "Cannot connect to FTP server: %s"
|
756 |
+
msgstr ""
|
757 |
+
|
758 |
+
#: inc/class-destination-ftp.php:233 inc/class-destination-ftp.php:241
|
759 |
+
#: inc/class-destination-ftp.php:257 inc/class-destination-ftp.php:304
|
760 |
+
#, php-format
|
761 |
+
msgid "FTP client command: %s"
|
762 |
+
msgstr ""
|
763 |
+
|
764 |
+
#: inc/class-destination-ftp.php:235
|
765 |
+
#, php-format
|
766 |
+
msgid "FTP server response: %s"
|
767 |
+
msgstr ""
|
768 |
+
|
769 |
+
#: inc/class-destination-ftp.php:239 inc/class-destination-ftp.php:244
|
770 |
+
#: inc/class-destination-ftp.php:247 inc/class-destination-ftp.php:260
|
771 |
+
#: inc/class-destination-ftp.php:262 inc/class-destination-ftp.php:307
|
772 |
+
#: inc/class-destination-ftp.php:309 inc/class-destination-ftp.php:313
|
773 |
+
#: inc/class-destination-ftp.php:315
|
774 |
+
#, php-format
|
775 |
+
msgid "FTP server reply: %s"
|
776 |
+
msgstr ""
|
777 |
+
|
778 |
+
#: inc/class-destination-ftp.php:262
|
779 |
+
msgid "Error getting SYSTYPE"
|
780 |
+
msgstr ""
|
781 |
+
|
782 |
+
#: inc/class-destination-ftp.php:280
|
783 |
+
#, php-format
|
784 |
+
msgid "FTP Folder \"%s\" created!"
|
785 |
+
msgstr ""
|
786 |
+
|
787 |
+
#: inc/class-destination-ftp.php:284
|
788 |
+
#, php-format
|
789 |
+
msgid "FTP Folder \"%s\" cannot be created!"
|
790 |
+
msgstr ""
|
791 |
+
|
792 |
+
#: inc/class-destination-ftp.php:295
|
793 |
+
#, php-format
|
794 |
+
msgid "FTP current folder is: %s"
|
795 |
+
msgstr ""
|
796 |
+
|
797 |
+
#: inc/class-destination-ftp.php:307
|
798 |
+
msgid "Entering passive mode"
|
799 |
+
msgstr ""
|
800 |
+
|
801 |
+
#: inc/class-destination-ftp.php:309
|
802 |
+
msgid "Cannot enter passive mode"
|
803 |
+
msgstr ""
|
804 |
+
|
805 |
+
#: inc/class-destination-ftp.php:313
|
806 |
+
msgid "Entering normal mode"
|
807 |
+
msgstr ""
|
808 |
+
|
809 |
+
#: inc/class-destination-ftp.php:315
|
810 |
+
msgid "Cannot enter normal mode"
|
811 |
+
msgstr ""
|
812 |
+
|
813 |
+
#: inc/class-destination-ftp.php:319
|
814 |
+
msgid "Starting upload to FTP  …"
|
815 |
+
msgstr ""
|
816 |
+
|
817 |
+
#: inc/class-destination-ftp.php:331
|
818 |
+
msgid "Cannot transfer backup to FTP server!"
|
819 |
+
msgstr ""
|
820 |
+
|
821 |
+
#: inc/class-destination-ftp.php:336
|
822 |
+
#, php-format
|
823 |
+
msgid "Backup transferred to FTP server: %s"
|
824 |
+
msgstr ""
|
825 |
+
|
826 |
+
#: inc/class-destination-ftp.php:343 inc/class-destination-msazure.php:270
|
827 |
+
#: inc/class-destination-rsc.php:288 inc/class-destination-s3.php:500
|
828 |
+
#: inc/class-destination-s3.php:592 inc/pro/class-destination-gdrive.php:652
|
829 |
+
#: inc/pro/class-destination-glacier.php:467
|
830 |
+
#: inc/pro/class-destination-rsc.php:226 inc/pro/class-destination-rsc.php:259
|
831 |
+
msgid "Can not open source file for transfer."
|
832 |
+
msgstr ""
|
833 |
+
|
834 |
+
#: inc/class-destination-ftp.php:387
|
835 |
+
#, php-format
|
836 |
+
msgid "Cannot delete \"%s\" on FTP server!"
|
837 |
+
msgstr ""
|
838 |
+
|
839 |
+
#: inc/class-destination-ftp.php:390
|
840 |
+
#, php-format
|
841 |
+
msgid "One file deleted on FTP server"
|
842 |
+
msgid_plural "%d files deleted on FTP server"
|
843 |
+
msgstr[0] ""
|
844 |
+
msgstr[1] ""
|
845 |
+
|
846 |
+
#: inc/class-destination-msazure.php:25
|
847 |
+
msgid "MS Azure access keys"
|
848 |
+
msgstr ""
|
849 |
+
|
850 |
+
#: inc/class-destination-msazure.php:29
|
851 |
+
msgid "Account name"
|
852 |
+
msgstr ""
|
853 |
+
|
854 |
+
#: inc/class-destination-msazure.php:36
|
855 |
+
msgid "Access key"
|
856 |
+
msgstr ""
|
857 |
+
|
858 |
+
#: inc/class-destination-msazure.php:44
|
859 |
+
msgid "Blob container"
|
860 |
+
msgstr ""
|
861 |
+
|
862 |
+
#: inc/class-destination-msazure.php:48 inc/class-destination-rsc.php:76
|
863 |
+
msgid "Container selection"
|
864 |
+
msgstr ""
|
865 |
+
|
866 |
+
#: inc/class-destination-msazure.php:59 inc/class-destination-rsc.php:88
|
867 |
+
msgid "Create a new container"
|
868 |
+
msgstr ""
|
869 |
+
|
870 |
+
#: inc/class-destination-msazure.php:70
|
871 |
+
msgid "Folder in container"
|
872 |
+
msgstr ""
|
873 |
+
|
874 |
+
#: inc/class-destination-msazure.php:76 inc/class-destination-rsc.php:105
|
875 |
+
#: inc/class-destination-s3.php:115 inc/pro/class-destination-glacier.php:96
|
876 |
+
msgid "File deletion"
|
877 |
+
msgstr ""
|
878 |
+
|
879 |
+
#: inc/class-destination-msazure.php:127
|
880 |
+
#: inc/pro/class-destination-msazure.php:99
|
881 |
+
#, php-format
|
882 |
+
msgid "MS Azure container \"%s\" created."
|
883 |
+
msgstr ""
|
884 |
+
|
885 |
+
#: inc/class-destination-msazure.php:130
|
886 |
+
#: inc/pro/class-destination-msazure.php:102
|
887 |
+
#, php-format
|
888 |
+
msgid "MS Azure container create: %s"
|
889 |
+
msgstr ""
|
890 |
+
|
891 |
+
#: inc/class-destination-msazure.php:210
|
892 |
+
#, php-format
|
893 |
+
msgid "%d. Try sending backup to a Microsoft Azure (Blob) …"
|
894 |
+
msgstr ""
|
895 |
+
|
896 |
+
#: inc/class-destination-msazure.php:232
|
897 |
+
#: inc/pro/class-destination-msazure.php:144
|
898 |
+
#, php-format
|
899 |
+
msgid "MS Azure container \"%s\" does not exist!"
|
900 |
+
msgstr ""
|
901 |
+
|
902 |
+
#: inc/class-destination-msazure.php:236
|
903 |
+
#: inc/pro/class-destination-msazure.php:148
|
904 |
+
#, php-format
|
905 |
+
msgid "Connected to MS Azure container \"%s\"."
|
906 |
+
msgstr ""
|
907 |
+
|
908 |
+
#: inc/class-destination-msazure.php:239
|
909 |
+
msgid "Starting upload to MS Azure …"
|
910 |
+
msgstr ""
|
911 |
+
|
912 |
+
#: inc/class-destination-msazure.php:291 inc/class-destination-msazure.php:347
|
913 |
+
#: inc/pro/class-destination-msazure.php:233
|
914 |
+
#, php-format
|
915 |
+
msgid "Microsoft Azure API: %s"
|
916 |
+
msgstr ""
|
917 |
+
|
918 |
+
#: inc/class-destination-msazure.php:340
|
919 |
+
#, php-format
|
920 |
+
msgid "One file deleted on Microsoft Azure container."
|
921 |
+
msgid_plural "%d files deleted on Microsoft Azure container."
|
922 |
+
msgstr[0] ""
|
923 |
+
msgstr[1] ""
|
924 |
+
|
925 |
+
#: inc/class-destination-msazure.php:441
|
926 |
+
msgid "Missing account name!"
|
927 |
+
msgstr ""
|
928 |
+
|
929 |
+
#: inc/class-destination-msazure.php:443 inc/class-destination-s3.php:221
|
930 |
+
#: inc/pro/class-destination-glacier.php:165
|
931 |
+
msgid "Missing access key!"
|
932 |
+
msgstr ""
|
933 |
+
|
934 |
+
#: inc/class-destination-msazure.php:447
|
935 |
+
msgid "No container found!"
|
936 |
+
msgstr ""
|
937 |
+
|
938 |
+
#: inc/class-destination-rsc.php:42
|
939 |
+
msgid "Rack Space Cloud Keys"
|
940 |
+
msgstr ""
|
941 |
+
|
942 |
+
#: inc/class-destination-rsc.php:52
|
943 |
+
msgid "API Key"
|
944 |
+
msgstr ""
|
945 |
+
|
946 |
+
#: inc/class-destination-rsc.php:59
|
947 |
+
msgid "Select region"
|
948 |
+
msgstr ""
|
949 |
+
|
950 |
+
#: inc/class-destination-rsc.php:63 inc/class-destination-rsc.php:65
|
951 |
+
#: inc/pro/class-destination-rsc.php:30
|
952 |
+
msgid "Rackspace Cloud Files Region"
|
953 |
+
msgstr ""
|
954 |
+
|
955 |
+
#: inc/class-destination-rsc.php:66 inc/pro/class-destination-rsc.php:31
|
956 |
+
msgid "Dallas (DFW)"
|
957 |
+
msgstr ""
|
958 |
+
|
959 |
+
#: inc/class-destination-rsc.php:67 inc/pro/class-destination-rsc.php:32
|
960 |
+
msgid "Chicago (ORD)"
|
961 |
+
msgstr ""
|
962 |
+
|
963 |
+
#: inc/class-destination-rsc.php:68 inc/pro/class-destination-rsc.php:33
|
964 |
+
msgid "Sydney (SYD)"
|
965 |
+
msgstr ""
|
966 |
+
|
967 |
+
#: inc/class-destination-rsc.php:69 inc/pro/class-destination-rsc.php:34
|
968 |
+
msgid "London (LON)"
|
969 |
+
msgstr ""
|
970 |
+
|
971 |
+
#: inc/class-destination-rsc.php:70 inc/pro/class-destination-rsc.php:35
|
972 |
+
msgid "Northern Virginia (IAD)"
|
973 |
+
msgstr ""
|
974 |
+
|
975 |
+
#: inc/class-destination-rsc.php:71 inc/pro/class-destination-rsc.php:36
|
976 |
+
msgid "Hong Kong (HKG)"
|
977 |
+
msgstr ""
|
978 |
+
|
979 |
+
#: inc/class-destination-rsc.php:99 inc/class-destination-s3.php:109
|
980 |
+
msgid "Folder in bucket"
|
981 |
+
msgstr ""
|
982 |
+
|
983 |
+
#: inc/class-destination-rsc.php:157 inc/pro/class-destination-rsc.php:116
|
984 |
+
#, php-format
|
985 |
+
msgid "Rackspace Cloud container \"%s\" created."
|
986 |
+
msgstr ""
|
987 |
+
|
988 |
+
#: inc/class-destination-rsc.php:161 inc/class-destination-rsc.php:273
|
989 |
+
#: inc/class-destination-rsc.php:313 inc/class-destination-rsc.php:358
|
990 |
+
#: inc/pro/class-destination-rsc.php:120 inc/pro/class-destination-rsc.php:170
|
991 |
+
#: inc/pro/class-destination-rsc.php:290
|
992 |
+
#, php-format
|
993 |
+
msgid "Rackspace Cloud API: %s"
|
994 |
+
msgstr ""
|
995 |
+
|
996 |
+
#: inc/class-destination-rsc.php:256
|
997 |
+
#, php-format
|
998 |
+
msgid "%d. Trying to send backup file to Rackspace cloud …"
|
999 |
+
msgstr ""
|
1000 |
+
|
1001 |
+
#: inc/class-destination-rsc.php:270
|
1002 |
+
#, php-format
|
1003 |
+
msgid "Connected to Rackspace cloud files container %s"
|
1004 |
+
msgstr ""
|
1005 |
+
|
1006 |
+
#: inc/class-destination-rsc.php:282
|
1007 |
+
msgid "Upload to Rackspace cloud started …"
|
1008 |
+
msgstr ""
|
1009 |
+
|
1010 |
+
#: inc/class-destination-rsc.php:301
|
1011 |
+
msgid "Backup File transferred to RSC://"
|
1012 |
+
msgstr ""
|
1013 |
+
|
1014 |
+
#: inc/class-destination-rsc.php:307
|
1015 |
+
msgid "Cannot transfer backup to Rackspace cloud."
|
1016 |
+
msgstr ""
|
1017 |
+
|
1018 |
+
#: inc/class-destination-rsc.php:352
|
1019 |
+
#, php-format
|
1020 |
+
msgid "One file deleted on Rackspace cloud container."
|
1021 |
+
msgid_plural "%d files deleted on Rackspace cloud container."
|
1022 |
+
msgstr[0] ""
|
1023 |
+
msgstr[1] ""
|
1024 |
+
|
1025 |
+
#: inc/class-destination-rsc.php:465
|
1026 |
+
msgid "Missing username!"
|
1027 |
+
msgstr ""
|
1028 |
+
|
1029 |
+
#: inc/class-destination-rsc.php:467
|
1030 |
+
msgid "Missing API Key!"
|
1031 |
+
msgstr ""
|
1032 |
+
|
1033 |
+
#: inc/class-destination-rsc.php:471
|
1034 |
+
msgid "A container could not be found!"
|
1035 |
+
msgstr ""
|
1036 |
+
|
1037 |
+
#: inc/class-destination-s3.php:31
|
1038 |
+
msgid "Select a S3 service"
|
1039 |
+
msgstr ""
|
1040 |
+
|
1041 |
+
#: inc/class-destination-s3.php:33 inc/pro/class-destination-s3.php:18
|
1042 |
+
msgid "Amazon S3 Region"
|
1043 |
+
msgstr ""
|
1044 |
+
|
1045 |
+
#: inc/class-destination-s3.php:34 inc/pro/class-destination-s3.php:19
|
1046 |
+
msgid "Amazon S3: US Standard"
|
1047 |
+
msgstr ""
|
1048 |
+
|
1049 |
+
#: inc/class-destination-s3.php:35 inc/pro/class-destination-s3.php:20
|
1050 |
+
msgid "Amazon S3: US West (Northern California)"
|
1051 |
+
msgstr ""
|
1052 |
+
|
1053 |
+
#: inc/class-destination-s3.php:36 inc/pro/class-destination-s3.php:21
|
1054 |
+
msgid "Amazon S3: US West (Oregon)"
|
1055 |
+
msgstr ""
|
1056 |
+
|
1057 |
+
#: inc/class-destination-s3.php:37 inc/pro/class-destination-s3.php:22
|
1058 |
+
msgid "Amazon S3: EU (Ireland)"
|
1059 |
+
msgstr ""
|
1060 |
+
|
1061 |
+
#: inc/class-destination-s3.php:38 inc/pro/class-destination-s3.php:23
|
1062 |
+
msgid "Amazon S3: EU (Germany)"
|
1063 |
+
msgstr ""
|
1064 |
+
|
1065 |
+
#: inc/class-destination-s3.php:39 inc/pro/class-destination-s3.php:24
|
1066 |
+
msgid "Amazon S3: Asia Pacific (Mumbai)"
|
1067 |
+
msgstr ""
|
1068 |
+
|
1069 |
+
#: inc/class-destination-s3.php:40 inc/pro/class-destination-s3.php:25
|
1070 |
+
msgid "Amazon S3: Asia Pacific (Tokyo)"
|
1071 |
+
msgstr ""
|
1072 |
+
|
1073 |
+
#: inc/class-destination-s3.php:41 inc/pro/class-destination-s3.php:26
|
1074 |
+
msgid "Amazon S3: Asia Pacific (Seoul)"
|
1075 |
+
msgstr ""
|
1076 |
+
|
1077 |
+
#: inc/class-destination-s3.php:42 inc/pro/class-destination-s3.php:27
|
1078 |
+
msgid "Amazon S3: Asia Pacific (Singapore)"
|
1079 |
+
msgstr ""
|
1080 |
+
|
1081 |
+
#: inc/class-destination-s3.php:43 inc/pro/class-destination-s3.php:28
|
1082 |
+
msgid "Amazon S3: Asia Pacific (Sydney)"
|
1083 |
+
msgstr ""
|
1084 |
+
|
1085 |
+
#: inc/class-destination-s3.php:44 inc/pro/class-destination-s3.php:29
|
1086 |
+
msgid "Amazon S3: South America (Sao Paulo)"
|
1087 |
+
msgstr ""
|
1088 |
+
|
1089 |
+
#: inc/class-destination-s3.php:45 inc/pro/class-destination-s3.php:30
|
1090 |
+
msgid "Amazon S3: China (Beijing)"
|
1091 |
+
msgstr ""
|
1092 |
+
|
1093 |
+
#: inc/class-destination-s3.php:46 inc/pro/class-destination-s3.php:31
|
1094 |
+
msgid "Google Storage: EU"
|
1095 |
+
msgstr ""
|
1096 |
+
|
1097 |
+
#: inc/class-destination-s3.php:47 inc/pro/class-destination-s3.php:32
|
1098 |
+
msgid "Google Storage: USA"
|
1099 |
+
msgstr ""
|
1100 |
+
|
1101 |
+
#: inc/class-destination-s3.php:48 inc/pro/class-destination-s3.php:33
|
1102 |
+
msgid "Google Storage: Asia"
|
1103 |
+
msgstr ""
|
1104 |
+
|
1105 |
+
#: inc/class-destination-s3.php:49 inc/pro/class-destination-s3.php:34
|
1106 |
+
msgid "Dream Host Cloud Storage"
|
1107 |
+
msgstr ""
|
1108 |
+
|
1109 |
+
#: inc/class-destination-s3.php:50 inc/pro/class-destination-s3.php:35
|
1110 |
+
msgid "GreenQloud Storage Qloud"
|
1111 |
+
msgstr ""
|
1112 |
+
|
1113 |
+
#: inc/class-destination-s3.php:55
|
1114 |
+
msgid "Or a S3 Server URL"
|
1115 |
+
msgstr ""
|
1116 |
+
|
1117 |
+
#: inc/class-destination-s3.php:62
|
1118 |
+
msgid "S3 Access Keys"
|
1119 |
+
msgstr ""
|
1120 |
+
|
1121 |
+
#: inc/class-destination-s3.php:66 inc/pro/class-destination-glacier.php:54
|
1122 |
+
msgid "Access Key"
|
1123 |
+
msgstr ""
|
1124 |
+
|
1125 |
+
#: inc/class-destination-s3.php:73 inc/pro/class-destination-glacier.php:61
|
1126 |
+
msgid "Secret Key"
|
1127 |
+
msgstr ""
|
1128 |
+
|
1129 |
+
#: inc/class-destination-s3.php:81
|
1130 |
+
msgid "S3 Bucket"
|
1131 |
+
msgstr ""
|
1132 |
+
|
1133 |
+
#: inc/class-destination-s3.php:85
|
1134 |
+
msgid "Bucket selection"
|
1135 |
+
msgstr ""
|
1136 |
+
|
1137 |
+
#: inc/class-destination-s3.php:98
|
1138 |
+
msgid "Create a new bucket"
|
1139 |
+
msgstr ""
|
1140 |
+
|
1141 |
+
#: inc/class-destination-s3.php:105
|
1142 |
+
msgid "S3 Backup settings"
|
1143 |
+
msgstr ""
|
1144 |
+
|
1145 |
+
#: inc/class-destination-s3.php:134
|
1146 |
+
msgid "Multipart Upload"
|
1147 |
+
msgstr ""
|
1148 |
+
|
1149 |
+
#: inc/class-destination-s3.php:136
|
1150 |
+
msgid "Use multipart upload for uploading a file"
|
1151 |
+
msgstr ""
|
1152 |
+
|
1153 |
+
#: inc/class-destination-s3.php:137
|
1154 |
+
msgid "Multipart splits file into multiple chunks while uploading. This is necessary for displaying the upload process and to transfer bigger files. Works without a problem on Amazon. Other services might have issues."
|
1155 |
+
msgstr ""
|
1156 |
+
|
1157 |
+
#: inc/class-destination-s3.php:143
|
1158 |
+
msgid "Amazon specific settings"
|
1159 |
+
msgstr ""
|
1160 |
+
|
1161 |
+
#: inc/class-destination-s3.php:147 inc/class-destination-s3.php:149
|
1162 |
+
msgid "Amazon: Storage Class"
|
1163 |
+
msgstr ""
|
1164 |
+
|
1165 |
+
#: inc/class-destination-s3.php:150
|
1166 |
+
msgid "Standard"
|
1167 |
+
msgstr ""
|
1168 |
+
|
1169 |
+
#: inc/class-destination-s3.php:151
|
1170 |
+
msgid "Standard-Infrequent Access"
|
1171 |
+
msgstr ""
|
1172 |
+
|
1173 |
+
#: inc/class-destination-s3.php:152
|
1174 |
+
msgid "Reduced Redundancy"
|
1175 |
+
msgstr ""
|
1176 |
+
|
1177 |
+
#: inc/class-destination-s3.php:157
|
1178 |
+
msgid "Server side encryption"
|
1179 |
+
msgstr ""
|
1180 |
+
|
1181 |
+
#: inc/class-destination-s3.php:161
|
1182 |
+
msgid "Save files encrypted (AES256) on server."
|
1183 |
+
msgstr ""
|
1184 |
+
|
1185 |
+
#: inc/class-destination-s3.php:223 inc/pro/class-destination-glacier.php:167
|
1186 |
+
msgid "Missing secret access key!"
|
1187 |
+
msgstr ""
|
1188 |
+
|
1189 |
+
#: inc/class-destination-s3.php:229
|
1190 |
+
msgid "No bucket found!"
|
1191 |
+
msgstr ""
|
1192 |
+
|
1193 |
+
#: inc/class-destination-s3.php:347
|
1194 |
+
#, php-format
|
1195 |
+
msgid "Bucket %1$s created."
|
1196 |
+
msgstr ""
|
1197 |
+
|
1198 |
+
#: inc/class-destination-s3.php:349 inc/pro/class-destination-s3.php:148
|
1199 |
+
#, php-format
|
1200 |
+
msgid " %s is not a valid bucket name."
|
1201 |
+
msgstr ""
|
1202 |
+
|
1203 |
+
#: inc/class-destination-s3.php:390 inc/class-destination-s3.php:523
|
1204 |
+
#: inc/class-destination-s3.php:577 inc/class-destination-s3.php:611
|
1205 |
+
#: inc/class-destination-s3.php:671 inc/pro/class-destination-s3.php:338
|
1206 |
+
#, php-format
|
1207 |
+
msgid "S3 Service API: %s"
|
1208 |
+
msgstr ""
|
1209 |
+
|
1210 |
+
#: inc/class-destination-s3.php:458
|
1211 |
+
#, php-format
|
1212 |
+
msgid "%d. Trying to send backup file to S3 Service …"
|
1213 |
+
msgstr ""
|
1214 |
+
|
1215 |
+
#: inc/class-destination-s3.php:471 inc/pro/class-destination-s3.php:189
|
1216 |
+
#, php-format
|
1217 |
+
msgid "Connected to S3 Bucket \"%1$s\" in %2$s"
|
1218 |
+
msgstr ""
|
1219 |
+
|
1220 |
+
#: inc/class-destination-s3.php:474 inc/pro/class-destination-s3.php:192
|
1221 |
+
#, php-format
|
1222 |
+
msgid "S3 Bucket \"%s\" does not exist!"
|
1223 |
+
msgstr ""
|
1224 |
+
|
1225 |
+
#: inc/class-destination-s3.php:481
|
1226 |
+
msgid "Checking for not aborted multipart Uploads …"
|
1227 |
+
msgstr ""
|
1228 |
+
|
1229 |
+
#: inc/class-destination-s3.php:487
|
1230 |
+
#, php-format
|
1231 |
+
msgid "Upload for %s aborted."
|
1232 |
+
msgstr ""
|
1233 |
+
|
1234 |
+
#: inc/class-destination-s3.php:493
|
1235 |
+
msgid "Starting upload to S3 Service …"
|
1236 |
+
msgstr ""
|
1237 |
+
|
1238 |
+
#: inc/class-destination-s3.php:602 inc/pro/class-destination-glacier.php:443
|
1239 |
+
#, php-format
|
1240 |
+
msgid "Backup transferred to %s."
|
1241 |
+
msgstr ""
|
1242 |
+
|
1243 |
+
#: inc/class-destination-s3.php:607
|
1244 |
+
#, php-format
|
1245 |
+
msgid "Cannot transfer backup to S3! (%1$d) %2$s"
|
1246 |
+
msgstr ""
|
1247 |
+
|
1248 |
+
#: inc/class-destination-s3.php:635
|
1249 |
+
#, php-format
|
1250 |
+
msgid "Storage Class: %s"
|
1251 |
+
msgstr ""
|
1252 |
+
|
1253 |
+
#: inc/class-destination-s3.php:661
|
1254 |
+
#, php-format
|
1255 |
+
msgid "Cannot delete backup from %s."
|
1256 |
+
msgstr ""
|
1257 |
+
|
1258 |
+
#: inc/class-destination-s3.php:665
|
1259 |
+
#, php-format
|
1260 |
+
msgid "One file deleted on S3 Bucket."
|
1261 |
+
msgid_plural "%d files deleted on S3 Bucket"
|
1262 |
+
msgstr[0] ""
|
1263 |
+
msgstr[1] ""
|
1264 |
+
|
1265 |
+
#: inc/class-destination-sugarsync.php:22
|
1266 |
+
msgid "Sugarsync Login"
|
1267 |
+
msgstr ""
|
1268 |
+
|
1269 |
+
#: inc/class-destination-sugarsync.php:30
|
1270 |
+
#: inc/pro/class-destination-sugarsync.php:17
|
1271 |
+
msgid "Email address:"
|
1272 |
+
msgstr ""
|
1273 |
+
|
1274 |
+
#: inc/class-destination-sugarsync.php:33 inc/pro/class-destination-ftp.php:29
|
1275 |
+
#: inc/pro/class-destination-sugarsync.php:20
|
1276 |
+
#: inc/pro/class-jobtype-dbdump.php:126
|
1277 |
+
msgid "Password:"
|
1278 |
+
msgstr ""
|
1279 |
+
|
1280 |
+
#: inc/class-destination-sugarsync.php:37
|
1281 |
+
#: inc/class-destination-sugarsync.php:119
|
1282 |
+
msgid "Authenticate with Sugarsync!"
|
1283 |
+
msgstr ""
|
1284 |
+
|
1285 |
+
#: inc/class-destination-sugarsync.php:38
|
1286 |
+
#: inc/class-destination-sugarsync.php:135
|
1287 |
+
#: inc/pro/class-destination-sugarsync.php:26
|
1288 |
+
#: inc/pro/class-destination-sugarsync.php:98
|
1289 |
+
msgid "Create Sugarsync account"
|
1290 |
+
msgstr ""
|
1291 |
+
|
1292 |
+
#: inc/class-destination-sugarsync.php:46
|
1293 |
+
#: inc/class-destination-sugarsync.php:131
|
1294 |
+
#: inc/pro/class-destination-sugarsync.php:32
|
1295 |
+
#: inc/pro/class-destination-sugarsync.php:94
|
1296 |
+
msgid "Delete Sugarsync authentication!"
|
1297 |
+
msgstr ""
|
1298 |
+
|
1299 |
+
#: inc/class-destination-sugarsync.php:52
|
1300 |
+
msgid "SugarSync Root"
|
1301 |
+
msgstr ""
|
1302 |
+
|
1303 |
+
#: inc/class-destination-sugarsync.php:56
|
1304 |
+
msgid "Sync folder selection"
|
1305 |
+
msgstr ""
|
1306 |
+
|
1307 |
+
#: inc/class-destination-sugarsync.php:64
|
1308 |
+
#: inc/pro/class-destination-sugarsync.php:41
|
1309 |
+
msgid "No Syncfolders found!"
|
1310 |
+
msgstr ""
|
1311 |
+
|
1312 |
+
#: inc/class-destination-sugarsync.php:85
|
1313 |
+
msgid "Folder in root"
|
1314 |
+
msgstr ""
|
1315 |
+
|
1316 |
+
#: inc/class-destination-sugarsync.php:229
|
1317 |
+
#, php-format
|
1318 |
+
msgid "%d. Try to send backup to SugarSync …"
|
1319 |
+
msgstr ""
|
1320 |
+
|
1321 |
+
#: inc/class-destination-sugarsync.php:236
|
1322 |
+
#, php-format
|
1323 |
+
msgid "Authenticated to SugarSync with nickname %s"
|
1324 |
+
msgstr ""
|
1325 |
+
|
1326 |
+
#: inc/class-destination-sugarsync.php:239
|
1327 |
+
#, php-format
|
1328 |
+
msgctxt "Available space on SugarSync"
|
1329 |
+
msgid "Not enough disk space available on SugarSync. Available: %s."
|
1330 |
+
msgstr ""
|
1331 |
+
|
1332 |
+
#: inc/class-destination-sugarsync.php:245
|
1333 |
+
#, php-format
|
1334 |
+
msgid "%s available at SugarSync"
|
1335 |
+
msgstr ""
|
1336 |
+
|
1337 |
+
#: inc/class-destination-sugarsync.php:252
|
1338 |
+
msgid "Starting upload to SugarSync …"
|
1339 |
+
msgstr ""
|
1340 |
+
|
1341 |
+
#: inc/class-destination-sugarsync.php:262
|
1342 |
+
msgid "Cannot transfer backup to SugarSync!"
|
1343 |
+
msgstr ""
|
1344 |
+
|
1345 |
+
#: inc/class-destination-sugarsync.php:301
|
1346 |
+
#, php-format
|
1347 |
+
msgid "One file deleted on SugarSync folder"
|
1348 |
+
msgid_plural "%d files deleted on SugarSync folder"
|
1349 |
+
msgstr[0] ""
|
1350 |
+
msgstr[1] ""
|
1351 |
+
|
1352 |
+
#: inc/class-destination-sugarsync.php:307
|
1353 |
+
#, php-format
|
1354 |
+
msgid "SugarSync API: %s"
|
1355 |
+
msgstr ""
|
1356 |
+
|
1357 |
+
#: inc/class-easycron.php:179
|
1358 |
+
#, php-format
|
1359 |
+
msgid "EasyCron.com API returns (%s): %s"
|
1360 |
+
msgstr ""
|
1361 |
+
|
1362 |
+
#: inc/class-easycron.php:188
|
1363 |
+
msgid "EasyCron"
|
1364 |
+
msgstr ""
|
1365 |
+
|
1366 |
+
#: inc/class-easycron.php:189
|
1367 |
+
msgid "Here you can setup your <a href=\"https://www.easycron.com/user/token?ref=36673\" title=\"Affiliate Link!\">EasyCron.com API key</a> to use this service."
|
1368 |
+
msgstr ""
|
1369 |
+
|
1370 |
+
#: inc/class-easycron.php:192
|
1371 |
+
msgid "Api key:"
|
1372 |
+
msgstr ""
|
1373 |
+
|
1374 |
+
#: inc/class-easycron.php:200
|
1375 |
+
msgid "Trigger WordPress Cron:"
|
1376 |
+
msgstr ""
|
1377 |
+
|
1378 |
+
#: inc/class-easycron.php:203
|
1379 |
+
msgid "If you check this box, a cron job will be created on EasyCron that all 5 Minutes calls the WordPress cron."
|
1380 |
+
msgstr ""
|
1381 |
+
|
1382 |
+
#: inc/class-file.php:154
|
1383 |
+
#, php-format
|
1384 |
+
msgid "Folder %1$s not allowed, please use another folder."
|
1385 |
+
msgstr ""
|
1386 |
+
|
1387 |
+
#: inc/class-file.php:159
|
1388 |
+
#, php-format
|
1389 |
+
msgid "Folder %1$s is not in open basedir, please use another folder."
|
1390 |
+
msgstr ""
|
1391 |
+
|
1392 |
+
#: inc/class-file.php:165
|
1393 |
+
#, php-format
|
1394 |
+
msgid "Cannot create folder: %1$s"
|
1395 |
+
msgstr ""
|
1396 |
+
|
1397 |
+
#: inc/class-file.php:171
|
1398 |
+
#, php-format
|
1399 |
+
msgid "Folder \"%1$s\" is not writable"
|
1400 |
+
msgstr ""
|
1401 |
+
|
1402 |
+
#: inc/class-file.php:200
|
1403 |
+
msgid "BackWPup will not backup folders and its sub folders when this file is inside."
|
1404 |
+
msgstr ""
|
1405 |
+
|
1406 |
+
#: inc/class-help.php:15
|
1407 |
+
msgid "Plugin Info"
|
1408 |
+
msgstr ""
|
1409 |
+
|
1410 |
+
#: inc/class-help.php:17
|
1411 |
+
#, php-format
|
1412 |
+
msgctxt "Plugin name and link; Plugin Version"
|
1413 |
+
msgid "%1$s version %2$s. A project by <a href=\"http://inpsyde.com\">Inpsyde GmbH</a>."
|
1414 |
+
msgstr ""
|
1415 |
+
|
1416 |
+
#: inc/class-help.php:18
|
1417 |
+
msgid "BackWPup comes with ABSOLUTELY NO WARRANTY. This is a free software, and you are welcome to redistribute it under certain conditions."
|
1418 |
+
msgstr ""
|
1419 |
+
|
1420 |
+
#: inc/class-help.php:21
|
1421 |
+
msgid "For more information:"
|
1422 |
+
msgstr ""
|
1423 |
+
|
1424 |
+
#: inc/class-help.php:23
|
1425 |
+
msgid "Plugin on wordpress.org"
|
1426 |
+
msgstr ""
|
1427 |
+
|
1428 |
+
#: inc/class-help.php:24
|
1429 |
+
msgid "Manual"
|
1430 |
+
msgstr ""
|
1431 |
+
|
1432 |
+
#: inc/class-install.php:84
|
1433 |
+
msgid "BackWPup Admin"
|
1434 |
+
msgstr ""
|
1435 |
+
|
1436 |
+
#: inc/class-install.php:98
|
1437 |
+
msgid "BackWPup jobs checker"
|
1438 |
+
msgstr ""
|
1439 |
+
|
1440 |
+
#: inc/class-install.php:112
|
1441 |
+
msgid "BackWPup jobs helper"
|
1442 |
+
msgstr ""
|
1443 |
+
|
1444 |
+
#: inc/class-job.php:263
|
1445 |
+
msgid "Starting job"
|
1446 |
+
msgstr ""
|
1447 |
+
|
1448 |
+
#: inc/class-job.php:278
|
1449 |
+
msgid "Job Start"
|
1450 |
+
msgstr ""
|
1451 |
+
|
1452 |
+
#: inc/class-job.php:298
|
1453 |
+
msgid "Creates manifest file"
|
1454 |
+
msgstr ""
|
1455 |
+
|
1456 |
+
#: inc/class-job.php:320
|
1457 |
+
msgid "Creates archive"
|
1458 |
+
msgstr ""
|
1459 |
+
|
1460 |
+
#: inc/class-job.php:360
|
1461 |
+
msgid "End of Job"
|
1462 |
+
msgstr ""
|
1463 |
+
|
1464 |
+
#: inc/class-job.php:377
|
1465 |
+
#, php-format
|
1466 |
+
msgid "BackWPup log for %1$s from %2$s at %3$s"
|
1467 |
+
msgstr ""
|
1468 |
+
|
1469 |
+
#: inc/class-job.php:394
|
1470 |
+
#, php-format
|
1471 |
+
msgctxt "Plugin name; Plugin Version; plugin url"
|
1472 |
+
msgid "[INFO] %1$s %2$s; A project of Inpsyde GmbH"
|
1473 |
+
msgstr ""
|
1474 |
+
|
1475 |
+
#: inc/class-job.php:395
|
1476 |
+
#, php-format
|
1477 |
+
msgctxt "WordPress Version; Blog url"
|
1478 |
+
msgid "[INFO] WordPress %1$s on %2$s"
|
1479 |
+
msgstr ""
|
1480 |
+
|
1481 |
+
#: inc/class-job.php:396
|
1482 |
+
msgid "Normal"
|
1483 |
+
msgstr ""
|
1484 |
+
|
1485 |
+
#: inc/class-job.php:399
|
1486 |
+
msgid "Debug"
|
1487 |
+
msgstr ""
|
1488 |
+
|
1489 |
+
#: inc/class-job.php:402
|
1490 |
+
msgid "(translated)"
|
1491 |
+
msgstr ""
|
1492 |
+
|
1493 |
+
#: inc/class-job.php:404
|
1494 |
+
#, php-format
|
1495 |
+
msgid "[INFO] Log Level: %1$s %2$s"
|
1496 |
+
msgstr ""
|
1497 |
+
|
1498 |
+
#: inc/class-job.php:409
|
1499 |
+
#, php-format
|
1500 |
+
msgid "[INFO] BackWPup job: %1$s"
|
1501 |
+
msgstr ""
|
1502 |
+
|
1503 |
+
#: inc/class-job.php:412
|
1504 |
+
#, php-format
|
1505 |
+
msgid "[INFO] Runs with user: %1$s (%2$d) "
|
1506 |
+
msgstr ""
|
1507 |
+
|
1508 |
+
#: inc/class-job.php:426 inc/class-page-backwpup.php:323
|
1509 |
+
#: inc/class-page-jobs.php:282 inc/class-page-jobs.php:291
|
1510 |
+
msgid "Not scheduled!"
|
1511 |
+
msgstr ""
|
1512 |
+
|
1513 |
+
#: inc/class-job.php:430 inc/class-job.php:440
|
1514 |
+
#, php-format
|
1515 |
+
msgid "[INFO] Cron: %s; Next: %s "
|
1516 |
+
msgstr ""
|
1517 |
+
|
1518 |
+
#: inc/class-job.php:433
|
1519 |
+
msgid "[INFO] BackWPup job start with link is active"
|
1520 |
+
msgstr ""
|
1521 |
+
|
1522 |
+
#: inc/class-job.php:435
|
1523 |
+
msgid "[INFO] BackWPup job start with EasyCron.com"
|
1524 |
+
msgstr ""
|
1525 |
+
|
1526 |
+
#: inc/class-job.php:443
|
1527 |
+
msgid "[INFO] BackWPup no automatic job start configured"
|
1528 |
+
msgstr ""
|
1529 |
+
|
1530 |
+
#: inc/class-job.php:447
|
1531 |
+
msgid "[INFO] BackWPup job started from wp-cron"
|
1532 |
+
msgstr ""
|
1533 |
+
|
1534 |
+
#: inc/class-job.php:449
|
1535 |
+
msgid "[INFO] BackWPup job started manually"
|
1536 |
+
msgstr ""
|
1537 |
+
|
1538 |
+
#: inc/class-job.php:451
|
1539 |
+
msgid "[INFO] BackWPup job started from external url"
|
1540 |
+
msgstr ""
|
1541 |
+
|
1542 |
+
#: inc/class-job.php:453
|
1543 |
+
msgid "[INFO] BackWPup job started form commandline interface"
|
1544 |
+
msgstr ""
|
1545 |
+
|
1546 |
+
#: inc/class-job.php:462
|
1547 |
+
msgid "[INFO] PHP ver.:"
|
1548 |
+
msgstr ""
|
1549 |
+
|
1550 |
+
#: inc/class-job.php:463
|
1551 |
+
#, php-format
|
1552 |
+
msgid "[INFO] Maximum PHP script execution time is %1$d seconds"
|
1553 |
+
msgstr ""
|
1554 |
+
|
1555 |
+
#: inc/class-job.php:467
|
1556 |
+
#, php-format
|
1557 |
+
msgid "[INFO] Script restart time is configured to %1$d seconds"
|
1558 |
+
msgstr ""
|
1559 |
+
|
1560 |
+
#: inc/class-job.php:470
|
1561 |
+
#, php-format
|
1562 |
+
msgid "[INFO] MySQL ver.: %s"
|
1563 |
+
msgstr ""
|
1564 |
+
|
1565 |
+
#: inc/class-job.php:472
|
1566 |
+
#, php-format
|
1567 |
+
msgid "[INFO] Web Server: %s"
|
1568 |
+
msgstr ""
|
1569 |
+
|
1570 |
+
#: inc/class-job.php:476
|
1571 |
+
#, php-format
|
1572 |
+
msgid "[INFO] curl ver.: %1$s; %2$s"
|
1573 |
+
msgstr ""
|
1574 |
+
|
1575 |
+
#: inc/class-job.php:478
|
1576 |
+
#, php-format
|
1577 |
+
msgid "[INFO] Temp folder is: %s"
|
1578 |
+
msgstr ""
|
1579 |
+
|
1580 |
+
#: inc/class-job.php:485
|
1581 |
+
#, php-format
|
1582 |
+
msgid "[INFO] Logfile is: %s"
|
1583 |
+
msgstr ""
|
1584 |
+
|
1585 |
+
#: inc/class-job.php:492
|
1586 |
+
#, php-format
|
1587 |
+
msgid "[INFO] Backup file is: %s"
|
1588 |
+
msgstr ""
|
1589 |
+
|
1590 |
+
#: inc/class-job.php:494
|
1591 |
+
#, php-format
|
1592 |
+
msgid "[INFO] Backup type is: %s"
|
1593 |
+
msgstr ""
|
1594 |
+
|
1595 |
+
#: inc/class-job.php:502
|
1596 |
+
msgid "Could not write log file"
|
1597 |
+
msgstr ""
|
1598 |
+
|
1599 |
+
#: inc/class-job.php:514
|
1600 |
+
msgid "No destination correctly defined for backup! Please correct job settings."
|
1601 |
+
msgstr ""
|
1602 |
+
|
1603 |
+
#: inc/class-job.php:631
|
1604 |
+
msgid "Cannot write progress to working file. Job will be aborted."
|
1605 |
+
msgstr ""
|
1606 |
+
|
1607 |
+
#: inc/class-job.php:703 inc/class-page-jobs.php:786
|
1608 |
+
msgid "WARNING:"
|
1609 |
+
msgstr ""
|
1610 |
+
|
1611 |
+
#: inc/class-job.php:712 inc/class-page-jobs.php:784
|
1612 |
+
msgid "ERROR:"
|
1613 |
+
msgstr ""
|
1614 |
+
|
1615 |
+
#: inc/class-job.php:716
|
1616 |
+
msgid "DEPRECATED:"
|
1617 |
+
msgstr ""
|
1618 |
+
|
1619 |
+
#: inc/class-job.php:719
|
1620 |
+
msgid "STRICT NOTICE:"
|
1621 |
+
msgstr ""
|
1622 |
+
|
1623 |
+
#: inc/class-job.php:724
|
1624 |
+
msgid "RECOVERABLE ERROR:"
|
1625 |
+
msgstr ""
|
1626 |
+
|
1627 |
+
#: inc/class-job.php:972
|
1628 |
+
msgid "Aborted by user!"
|
1629 |
+
msgstr ""
|
1630 |
+
|
1631 |
+
#: inc/class-job.php:1000
|
1632 |
+
#, php-format
|
1633 |
+
msgid "One old log deleted"
|
1634 |
+
msgid_plural "%d old logs deleted"
|
1635 |
+
msgstr[0] ""
|
1636 |
+
msgstr[1] ""
|
1637 |
+
|
1638 |
+
#: inc/class-job.php:1007 inc/class-page-jobs.php:784
|
1639 |
+
#, php-format
|
1640 |
+
msgid "Job has ended with errors in %s seconds. You must resolve the errors for correct execution."
|
1641 |
+
msgstr ""
|
1642 |
+
|
1643 |
+
#: inc/class-job.php:1009
|
1644 |
+
#, php-format
|
1645 |
+
msgid "Job finished with warnings in %s seconds. Please resolve them for correct execution."
|
1646 |
+
msgstr ""
|
1647 |
+
|
1648 |
+
#: inc/class-job.php:1011 inc/class-page-jobs.php:788
|
1649 |
+
#, php-format
|
1650 |
+
msgid "Job done in %s seconds."
|
1651 |
+
msgstr ""
|
1652 |
+
|
1653 |
+
#: inc/class-job.php:1055
|
1654 |
+
msgid "SUCCESSFUL"
|
1655 |
+
msgstr ""
|
1656 |
+
|
1657 |
+
#: inc/class-job.php:1057
|
1658 |
+
msgid "WARNING"
|
1659 |
+
msgstr ""
|
1660 |
+
|
1661 |
+
#: inc/class-job.php:1060
|
1662 |
+
msgid "ERROR"
|
1663 |
+
msgstr ""
|
1664 |
+
|
1665 |
+
#: inc/class-job.php:1063
|
1666 |
+
#, php-format
|
1667 |
+
msgid "[%3$s] BackWPup log %1$s: %2$s"
|
1668 |
+
msgstr ""
|
1669 |
+
|
1670 |
+
#: inc/class-job.php:1164
|
1671 |
+
#, php-format
|
1672 |
+
msgid "Restart after %1$d seconds."
|
1673 |
+
msgstr ""
|
1674 |
+
|
1675 |
+
#: inc/class-job.php:1166
|
1676 |
+
msgid "Restart after getting signal."
|
1677 |
+
msgstr ""
|
1678 |
+
|
1679 |
+
#: inc/class-job.php:1339
|
1680 |
+
msgid "Job restarts due to inactivity for more than 5 minutes."
|
1681 |
+
msgstr ""
|
1682 |
+
|
1683 |
+
#: inc/class-job.php:1437
|
1684 |
+
msgid "Step aborted: too many attempts!"
|
1685 |
+
msgstr ""
|
1686 |
+
|
1687 |
+
#: inc/class-job.php:1508
|
1688 |
+
#, php-format
|
1689 |
+
msgid "%d. Trying to create backup archive …"
|
1690 |
+
msgstr ""
|
1691 |
+
|
1692 |
+
#: inc/class-job.php:1516
|
1693 |
+
#, php-format
|
1694 |
+
msgctxt "Archive compression method"
|
1695 |
+
msgid "Compressing files as %s. Please be patient, this may take a moment."
|
1696 |
+
msgstr ""
|
1697 |
+
|
1698 |
+
#: inc/class-job.php:1523
|
1699 |
+
msgid "Adding Extra files to Archive"
|
1700 |
+
msgstr ""
|
1701 |
+
|
1702 |
+
#: inc/class-job.php:1535 inc/class-job.php:1595
|
1703 |
+
msgid "Cannot create backup archive correctly. Aborting creation."
|
1704 |
+
msgstr ""
|
1705 |
+
|
1706 |
+
#: inc/class-job.php:1551
|
1707 |
+
#, php-format
|
1708 |
+
msgid "Archiving Folder: %s"
|
1709 |
+
msgstr ""
|
1710 |
+
|
1711 |
+
#: inc/class-job.php:1605
|
1712 |
+
msgid "Backup archive created."
|
1713 |
+
msgstr ""
|
1714 |
+
|
1715 |
+
#: inc/class-job.php:1619
|
1716 |
+
msgid "The Backup archive will be too large for file operations with this PHP Version. You might want to consider splitting the backup job in multiple jobs with less files each."
|
1717 |
+
msgstr ""
|
1718 |
+
|
1719 |
+
#: inc/class-job.php:1622
|
1720 |
+
#, php-format
|
1721 |
+
msgid "Archive size is %s."
|
1722 |
+
msgstr ""
|
1723 |
+
|
1724 |
+
#: inc/class-job.php:1625
|
1725 |
+
#, php-format
|
1726 |
+
msgid "%1$d Files with %2$s in Archive."
|
1727 |
+
msgstr ""
|
1728 |
+
|
1729 |
+
#: inc/class-job.php:1674
|
1730 |
+
#, php-format
|
1731 |
+
msgctxt "Folder name"
|
1732 |
+
msgid "Folder %s not exists"
|
1733 |
+
msgstr ""
|
1734 |
+
|
1735 |
+
#: inc/class-job.php:1680
|
1736 |
+
#, php-format
|
1737 |
+
msgctxt "Folder name"
|
1738 |
+
msgid "Folder %s not readable"
|
1739 |
+
msgstr ""
|
1740 |
+
|
1741 |
+
#: inc/class-job.php:1700
|
1742 |
+
#, php-format
|
1743 |
+
msgid "Link \"%s\" not following."
|
1744 |
+
msgstr ""
|
1745 |
+
|
1746 |
+
#: inc/class-job.php:1702
|
1747 |
+
#, php-format
|
1748 |
+
msgid "File \"%s\" is not readable!"
|
1749 |
+
msgstr ""
|
1750 |
+
|
1751 |
+
#: inc/class-job.php:1706
|
1752 |
+
#, php-format
|
1753 |
+
msgid "File size of %s cannot be retrieved. File might be too large and will not be added to queue."
|
1754 |
+
msgstr ""
|
1755 |
+
|
1756 |
+
#: inc/class-job.php:1786
|
1757 |
+
#, php-format
|
1758 |
+
msgid "%d. Trying to generate a manifest file …"
|
1759 |
+
msgstr ""
|
1760 |
+
|
1761 |
+
#: inc/class-job.php:1842
|
1762 |
+
msgid "You may have noticed the manifest.json file in this archive."
|
1763 |
+
msgstr ""
|
1764 |
+
|
1765 |
+
#: inc/class-job.php:1843
|
1766 |
+
msgid "manifest.json might be needed for later restoring a backup from this archive."
|
1767 |
+
msgstr ""
|
1768 |
+
|
1769 |
+
#: inc/class-job.php:1844
|
1770 |
+
msgid "Please leave manifest.json untouched and in place. Otherwise it is safe to be ignored."
|
1771 |
+
msgstr ""
|
1772 |
+
|
1773 |
+
#: inc/class-job.php:1854
|
1774 |
+
#, php-format
|
1775 |
+
msgid "Added manifest.json file with %1$s to backup file list."
|
1776 |
+
msgstr ""
|
1777 |
+
|
1778 |
+
#: inc/class-job.php:1893
|
1779 |
+
msgid "Wrong BackWPup JobID"
|
1780 |
+
msgstr ""
|
1781 |
+
|
1782 |
+
#: inc/class-job.php:1906
|
1783 |
+
msgid "A BackWPup job is already running"
|
1784 |
+
msgstr ""
|
1785 |
+
|
1786 |
+
#: inc/class-job.php:2274
|
1787 |
+
msgctxt "SIGHUP: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
|
1788 |
+
msgid "Hangup detected on controlling terminal or death of controlling process"
|
1789 |
+
msgstr ""
|
1790 |
+
|
1791 |
+
#: inc/class-job.php:2278
|
1792 |
+
msgctxt "SIGINT: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
|
1793 |
+
msgid "Interrupt from keyboard"
|
1794 |
+
msgstr ""
|
1795 |
+
|
1796 |
+
#: inc/class-job.php:2282
|
1797 |
+
msgctxt "SIGQUIT: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
|
1798 |
+
msgid "Quit from keyboard"
|
1799 |
+
msgstr ""
|
1800 |
+
|
1801 |
+
#: inc/class-job.php:2286
|
1802 |
+
msgctxt "SIGILL: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
|
1803 |
+
msgid "Illegal Instruction"
|
1804 |
+
msgstr ""
|
1805 |
+
|
1806 |
+
#: inc/class-job.php:2290
|
1807 |
+
msgctxt "SIGABRT: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
|
1808 |
+
msgid "Abort signal from abort(3)"
|
1809 |
+
msgstr ""
|
1810 |
+
|
1811 |
+
#: inc/class-job.php:2294
|
1812 |
+
msgctxt "SIGBUS: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
|
1813 |
+
msgid "Bus error (bad memory access)"
|
1814 |
+
msgstr ""
|
1815 |
+
|
1816 |
+
#: inc/class-job.php:2298
|
1817 |
+
msgctxt "SIGFPE: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
|
1818 |
+
msgid "Floating point exception"
|
1819 |
+
msgstr ""
|
1820 |
+
|
1821 |
+
#: inc/class-job.php:2302
|
1822 |
+
msgctxt "SIGSEGV: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
|
1823 |
+
msgid "Invalid memory reference"
|
1824 |
+
msgstr ""
|
1825 |
+
|
1826 |
+
#: inc/class-job.php:2306
|
1827 |
+
msgctxt "SIGTERM: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
|
1828 |
+
msgid "Termination signal"
|
1829 |
+
msgstr ""
|
1830 |
+
|
1831 |
+
#: inc/class-job.php:2310
|
1832 |
+
msgctxt "SIGSTKFLT: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
|
1833 |
+
msgid "Stack fault on coprocessor"
|
1834 |
+
msgstr ""
|
1835 |
+
|
1836 |
+
#: inc/class-job.php:2314
|
1837 |
+
msgctxt "SIGUSR1: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
|
1838 |
+
msgid "User-defined signal 1"
|
1839 |
+
msgstr ""
|
1840 |
+
|
1841 |
+
#: inc/class-job.php:2318
|
1842 |
+
msgctxt "SIGUSR2: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
|
1843 |
+
msgid "User-defined signal 2"
|
1844 |
+
msgstr ""
|
1845 |
+
|
1846 |
+
#: inc/class-job.php:2322
|
1847 |
+
msgctxt "SIGURG: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
|
1848 |
+
msgid "Urgent condition on socket"
|
1849 |
+
msgstr ""
|
1850 |
+
|
1851 |
+
#: inc/class-job.php:2326
|
1852 |
+
msgctxt "SIGXCPU: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
|
1853 |
+
msgid "CPU time limit exceeded"
|
1854 |
+
msgstr ""
|
1855 |
+
|
1856 |
+
#: inc/class-job.php:2330
|
1857 |
+
msgctxt "SIGXFSZ: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
|
1858 |
+
msgid "File size limit exceeded"
|
1859 |
+
msgstr ""
|
1860 |
+
|
1861 |
+
#: inc/class-job.php:2334
|
1862 |
+
msgctxt "SIGPWR: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
|
1863 |
+
msgid "Power failure"
|
1864 |
+
msgstr ""
|
1865 |
+
|
1866 |
+
#: inc/class-job.php:2338
|
1867 |
+
msgctxt "SIGSYS: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
|
1868 |
+
msgid "Bad argument to routine"
|
1869 |
+
msgstr ""
|
1870 |
+
|
1871 |
+
#: inc/class-job.php:2345
|
1872 |
+
#, php-format
|
1873 |
+
msgid "Signal \"%1$s\" (%2$s) is sent to script!"
|
1874 |
+
msgstr ""
|
1875 |
+
|
1876 |
+
#: inc/class-job.php:2379 inc/class-job.php:2392
|
1877 |
+
#, php-format
|
1878 |
+
msgid "System: %s"
|
1879 |
+
msgstr ""
|
1880 |
+
|
1881 |
+
#: inc/class-job.php:2407
|
1882 |
+
#, php-format
|
1883 |
+
msgid "Exception caught in %1$s: %2$s"
|
1884 |
+
msgstr ""
|
1885 |
+
|
1886 |
+
#: inc/class-jobtype-dbcheck.php:13
|
1887 |
+
msgid "DB Check"
|
1888 |
+
msgstr ""
|
1889 |
+
|
1890 |
+
#: inc/class-jobtype-dbcheck.php:14
|
1891 |
+
msgid "Check database tables"
|
1892 |
+
msgstr ""
|
1893 |
+
|
1894 |
+
#: inc/class-jobtype-dbcheck.php:17 inc/class-jobtype-dbdump.php:17
|
1895 |
+
#: inc/class-jobtype-file.php:17 inc/class-jobtype-wpexp.php:17
|
1896 |
+
#: inc/class-jobtype-wpplugin.php:17 inc/pro/class-wizard-job.php:19
|
1897 |
+
#: inc/pro/class-wizard-jobimport.php:18
|
1898 |
+
#: inc/pro/class-wizard-systemtest.php:18
|
1899 |
+
msgid "http://inpsyde.com"
|
1900 |
+
msgstr ""
|
1901 |
+
|
1902 |
+
#: inc/class-jobtype-dbcheck.php:35 inc/pro/class-jobtype-dbcheck.php:16
|
1903 |
+
msgid "Settings for database check"
|
1904 |
+
msgstr ""
|
1905 |
+
|
1906 |
+
#: inc/class-jobtype-dbcheck.php:39
|
1907 |
+
msgid "WordPress tables only"
|
1908 |
+
msgstr ""
|
1909 |
+
|
1910 |
+
#: inc/class-jobtype-dbcheck.php:44
|
1911 |
+
msgid "Check WordPress database tables only"
|
1912 |
+
msgstr ""
|
1913 |
+
|
1914 |
+
#: inc/class-jobtype-dbcheck.php:49
|
1915 |
+
msgid "Repair"
|
1916 |
+
msgstr ""
|
1917 |
+
|
1918 |
+
#: inc/class-jobtype-dbcheck.php:54 inc/pro/class-jobtype-dbcheck.php:38
|
1919 |
+
msgid "Try to repair defect table"
|
1920 |
+
msgstr ""
|
1921 |
+
|
1922 |
+
#: inc/class-jobtype-dbcheck.php:79
|
1923 |
+
#, php-format
|
1924 |
+
msgid "%d. Trying to check database …"
|
1925 |
+
msgstr ""
|
1926 |
+
|
1927 |
+
#: inc/class-jobtype-dbcheck.php:111
|
1928 |
+
#, php-format
|
1929 |
+
msgid "Table %1$s is a view. Not checked."
|
1930 |
+
msgstr ""
|
1931 |
+
|
1932 |
+
#: inc/class-jobtype-dbcheck.php:116
|
1933 |
+
#, php-format
|
1934 |
+
msgid "Table %1$s is not a MyISAM/InnoDB table. Not checked."
|
1935 |
+
msgstr ""
|
1936 |
+
|
1937 |
+
#: inc/class-jobtype-dbcheck.php:124 inc/class-jobtype-dbcheck.php:127
|
1938 |
+
#: inc/class-jobtype-dbcheck.php:129
|
1939 |
+
#, php-format
|
1940 |
+
msgid "Result of table check for %1$s is: %2$s"
|
1941 |
+
msgstr ""
|
1942 |
+
|
1943 |
+
#: inc/class-jobtype-dbcheck.php:135 inc/class-jobtype-dbcheck.php:137
|
1944 |
+
#: inc/class-jobtype-dbcheck.php:139
|
1945 |
+
#, php-format
|
1946 |
+
msgid "Result of table repair for %1$s is: %2$s"
|
1947 |
+
msgstr ""
|
1948 |
+
|
1949 |
+
#: inc/class-jobtype-dbcheck.php:145
|
1950 |
+
msgid "Database check done!"
|
1951 |
+
msgstr ""
|
1952 |
+
|
1953 |
+
#: inc/class-jobtype-dbcheck.php:148
|
1954 |
+
msgid "No tables to check."
|
1955 |
+
msgstr ""
|
1956 |
+
|
1957 |
+
#: inc/class-jobtype-dbdump.php:13
|
1958 |
+
msgid "DB Backup"
|
1959 |
+
msgstr ""
|
1960 |
+
|
1961 |
+
#: inc/class-jobtype-dbdump.php:14
|
1962 |
+
msgid "Database backup"
|
1963 |
+
msgstr ""
|
1964 |
+
|
1965 |
+
#: inc/class-jobtype-dbdump.php:60 inc/pro/class-jobtype-dbdump.php:87
|
1966 |
+
#: inc/pro/class-jobtype-dbdump.php:108
|
1967 |
+
msgid "Settings for database backup"
|
1968 |
+
msgstr ""
|
1969 |
+
|
1970 |
+
#: inc/class-jobtype-dbdump.php:64 inc/pro/class-jobtype-dbdump.php:154
|
1971 |
+
msgid "Tables to backup"
|
1972 |
+
msgstr ""
|
1973 |
+
|
1974 |
+
#: inc/class-jobtype-dbdump.php:66 inc/pro/class-jobtype-dbdump.php:156
|
1975 |
+
msgid "all"
|
1976 |
+
msgstr ""
|
1977 |
+
|
1978 |
+
#: inc/class-jobtype-dbdump.php:91 inc/pro/class-jobtype-dbdump.php:195
|
1979 |
+
msgid "Backup file name"
|
1980 |
+
msgstr ""
|
1981 |
+
|
1982 |
+
#: inc/class-jobtype-dbdump.php:99 inc/pro/class-jobtype-dbdump.php:201
|
1983 |
+
msgid "Backup file compression"
|
1984 |
+
msgstr ""
|
1985 |
+
|
1986 |
+
#: inc/class-jobtype-dbdump.php:105 inc/class-jobtype-dbdump.php:107
|
1987 |
+
#: inc/class-jobtype-wpexp.php:75 inc/class-jobtype-wpexp.php:77
|
1988 |
+
#: inc/class-jobtype-wpplugin.php:59 inc/class-jobtype-wpplugin.php:61
|
1989 |
+
#: inc/pro/class-jobtype-dbdump.php:207 inc/pro/class-jobtype-dbdump.php:209
|
1990 |
+
msgid "GZip"
|
1991 |
+
msgstr ""
|
1992 |
+
|
1993 |
+
#: inc/class-jobtype-dbdump.php:159 inc/pro/class-jobtype-dbdump.php:475
|
1994 |
+
#, php-format
|
1995 |
+
msgid "%d. Try to backup database …"
|
1996 |
+
msgstr ""
|
1997 |
+
|
1998 |
+
#: inc/class-jobtype-dbdump.php:173 inc/pro/class-jobtype-dbdump.php:495
|
1999 |
+
#, php-format
|
2000 |
+
msgid "Connected to database %1$s on %2$s"
|
2001 |
+
msgstr ""
|
2002 |
+
|
2003 |
+
#: inc/class-jobtype-dbdump.php:187 inc/pro/class-jobtype-dbdump.php:510
|
2004 |
+
msgid "No tables to backup."
|
2005 |
+
msgstr ""
|
2006 |
+
|
2007 |
+
#: inc/class-jobtype-dbdump.php:210 inc/pro/class-jobtype-dbdump.php:536
|
2008 |
+
#, php-format
|
2009 |
+
msgid "Backup database table \"%s\" with \"%s\" records"
|
2010 |
+
msgstr ""
|
2011 |
+
|
2012 |
+
#: inc/class-jobtype-dbdump.php:250 inc/pro/class-jobtype-dbdump.php:576
|
2013 |
+
msgid "MySQL backup file not created"
|
2014 |
+
msgstr ""
|
2015 |
+
|
2016 |
+
#: inc/class-jobtype-dbdump.php:254 inc/pro/class-jobtype-dbdump.php:763
|
2017 |
+
#, php-format
|
2018 |
+
msgid "Added database dump \"%1$s\" with %2$s to backup file list"
|
2019 |
+
msgstr ""
|
2020 |
+
|
2021 |
+
#: inc/class-jobtype-dbdump.php:260 inc/pro/class-jobtype-dbdump.php:586
|
2022 |
+
#: inc/pro/class-jobtype-dbdump.php:766
|
2023 |
+
msgid "Database backup done!"
|
2024 |
+
msgstr ""
|
2025 |
+
|
2026 |
+
#: inc/class-jobtype-file.php:13
|
2027 |
+
msgid "Files"
|
2028 |
+
msgstr ""
|
2029 |
+
|
2030 |
+
#: inc/class-jobtype-file.php:14
|
2031 |
+
msgid "File backup"
|
2032 |
+
msgstr ""
|
2033 |
+
|
2034 |
+
#: inc/class-jobtype-file.php:71
|
2035 |
+
msgid "Folders to backup"
|
2036 |
+
msgstr ""
|
2037 |
+
|
2038 |
+
#: inc/class-jobtype-file.php:75
|
2039 |
+
msgid "Backup WordPress install folder"
|
2040 |
+
msgstr ""
|
2041 |
+
|
2042 |
+
#: inc/class-jobtype-file.php:86 inc/class-jobtype-file.php:123
|
2043 |
+
#: inc/class-jobtype-file.php:160 inc/class-jobtype-file.php:197
|
2044 |
+
#: inc/class-jobtype-file.php:234
|
2045 |
+
#, php-format
|
2046 |
+
msgid "Path as set by user (symlink?): %s"
|
2047 |
+
msgstr ""
|
2048 |
+
|
2049 |
+
#: inc/class-jobtype-file.php:89 inc/class-jobtype-file.php:126
|
2050 |
+
#: inc/class-jobtype-file.php:163 inc/class-jobtype-file.php:200
|
2051 |
+
#: inc/class-jobtype-file.php:237
|
2052 |
+
msgid "Exclude:"
|
2053 |
+
msgstr ""
|
2054 |
+
|
2055 |
+
#: inc/class-jobtype-file.php:100 inc/class-jobtype-file.php:137
|
2056 |
+
#: inc/class-jobtype-file.php:174 inc/class-jobtype-file.php:211
|
2057 |
+
#: inc/class-jobtype-file.php:248
|
2058 |
+
msgid "Excluded by .donotbackup file!"
|
2059 |
+
msgstr ""
|
2060 |
+
|
2061 |
+
#: inc/class-jobtype-file.php:112
|
2062 |
+
msgid "Backup content folder"
|
2063 |
+
msgstr ""
|
2064 |
+
|
2065 |
+
#: inc/class-jobtype-file.php:149
|
2066 |
+
msgid "Backup plugins"
|
2067 |
+
msgstr ""
|
2068 |
+
|
2069 |
+
#: inc/class-jobtype-file.php:186
|
2070 |
+
msgid "Backup themes"
|
2071 |
+
msgstr ""
|
2072 |
+
|
2073 |
+
#: inc/class-jobtype-file.php:223 inc/pro/class-wizard-job.php:745
|
2074 |
+
#: inc/pro/class-wizard-job.php:746
|
2075 |
+
msgid "Backup uploads folder"
|
2076 |
+
msgstr ""
|
2077 |
+
|
2078 |
+
#: inc/class-jobtype-file.php:260
|
2079 |
+
msgid "Extra folders to backup"
|
2080 |
+
msgstr ""
|
2081 |
+
|
2082 |
+
#: inc/class-jobtype-file.php:263
|
2083 |
+
msgid "Separate folder names with a line-break or a comma. Folders must be set with their absolute path!"
|
2084 |
+
msgstr ""
|
2085 |
+
|
2086 |
+
#: inc/class-jobtype-file.php:268
|
2087 |
+
msgid "Exclude from backup"
|
2088 |
+
msgstr ""
|
2089 |
+
|
2090 |
+
#: inc/class-jobtype-file.php:272
|
2091 |
+
msgid "Thumbnails in uploads"
|
2092 |
+
msgstr ""
|
2093 |
+
|
2094 |
+
#: inc/class-jobtype-file.php:274
|
2095 |
+
msgid "Don't backup thumbnails from the site's uploads folder."
|
2096 |
+
msgstr ""
|
2097 |
+
|
2098 |
+
#: inc/class-jobtype-file.php:278
|
2099 |
+
msgid "Exclude files/folders from backup"
|
2100 |
+
msgstr ""
|
2101 |
+
|
2102 |
+
#: inc/class-jobtype-file.php:281
|
2103 |
+
msgid "Separate file / folder name parts with a line-break or a comma. For example /logs/,.log,.tmp"
|
2104 |
+
msgstr ""
|
2105 |
+
|
2106 |
+
#: inc/class-jobtype-file.php:286
|
2107 |
+
msgid "Special options"
|
2108 |
+
msgstr ""
|
2109 |
+
|
2110 |
+
#: inc/class-jobtype-file.php:290
|
2111 |
+
msgid "Include special files"
|
2112 |
+
msgstr ""
|
2113 |
+
|
2114 |
+
#: inc/class-jobtype-file.php:292
|
2115 |
+
msgid "Backup wp-config.php, robots.txt, nginx.conf, .htaccess, .htpasswd and favicon.ico from root if it is not included in backup."
|
2116 |
+
msgstr ""
|
2117 |
+
|
2118 |
+
#: inc/class-jobtype-file.php:296
|
2119 |
+
msgid "Use one folder above as WP install folder"
|
2120 |
+
msgstr ""
|
2121 |
+
|
2122 |
+
#: inc/class-jobtype-file.php:299
|
2123 |
+
msgid "Use one folder above as WordPress install folder! That can be helpful, if you would backup files and folder that are not in the WordPress installation folder. Or if you made a \"<a href=\"https://codex.wordpress.org/Giving_WordPress_Its_Own_Directory\">Giving WordPress Its Own Directory</a>\" installation. Excludes must be configured again."
|
2124 |
+
msgstr ""
|
2125 |
+
|
2126 |
+
#: inc/class-jobtype-file.php:384
|
2127 |
+
#, php-format
|
2128 |
+
msgid "%d. Trying to make a list of folders to back up …"
|
2129 |
+
msgstr ""
|
2130 |
+
|
2131 |
+
#: inc/class-jobtype-file.php:502 inc/class-jobtype-file.php:506
|
2132 |
+
#: inc/class-jobtype-file.php:511 inc/class-jobtype-file.php:515
|
2133 |
+
#: inc/class-jobtype-file.php:519 inc/class-jobtype-file.php:523
|
2134 |
+
#: inc/class-jobtype-file.php:527
|
2135 |
+
#, php-format
|
2136 |
+
msgid "Added \"%s\" to backup file list"
|
2137 |
+
msgstr ""
|
2138 |
+
|
2139 |
+
#: inc/class-jobtype-file.php:532
|
2140 |
+
msgid "No files/folder for the backup."
|
2141 |
+
msgstr ""
|
2142 |
+
|
2143 |
+
#: inc/class-jobtype-file.php:534
|
2144 |
+
#, php-format
|
2145 |
+
msgid "%1$d folders to backup."
|
2146 |
+
msgstr ""
|
2147 |
+
|
2148 |
+
#: inc/class-jobtype-file.php:580
|
2149 |
+
#, php-format
|
2150 |
+
msgid "Folder \"%s\" is not readable!"
|
2151 |
+
msgstr ""
|
2152 |
+
|
2153 |
+
#: inc/class-jobtype-wpexp.php:13
|
2154 |
+
msgid "XML export"
|
2155 |
+
msgstr ""
|
2156 |
+
|
2157 |
+
#: inc/class-jobtype-wpexp.php:14 inc/class-page-about.php:472
|
2158 |
+
msgid "WordPress XML export"
|
2159 |
+
msgstr ""
|
2160 |
+
|
2161 |
+
#: inc/class-jobtype-wpexp.php:46
|
2162 |
+
msgid "Items to export"
|
2163 |
+
msgstr ""
|
2164 |
+
|
2165 |
+
#: inc/class-jobtype-wpexp.php:49 inc/pro/class-jobtype-wpexp.php:28
|
2166 |
+
msgid "All content"
|
2167 |
+
msgstr ""
|
2168 |
+
|
2169 |
+
#: inc/class-jobtype-wpexp.php:50 inc/pro/class-jobtype-wpexp.php:38
|
2170 |
+
msgid "Posts"
|
2171 |
+
msgstr ""
|
2172 |
+
|
2173 |
+
#: inc/class-jobtype-wpexp.php:51 inc/pro/class-jobtype-wpexp.php:48
|
2174 |
+
msgid "Pages"
|
2175 |
+
msgstr ""
|
2176 |
+
|
2177 |
+
#: inc/class-jobtype-wpexp.php:61
|
2178 |
+
msgid "XML Export file name"
|
2179 |
+
msgstr ""
|
2180 |
+
|
2181 |
+
#: inc/class-jobtype-wpexp.php:69 inc/class-jobtype-wpplugin.php:53
|
2182 |
+
msgid "File compression"
|
2183 |
+
msgstr ""
|
2184 |
+
|
2185 |
+
#: inc/class-jobtype-wpexp.php:79 inc/class-jobtype-wpexp.php:81
|
2186 |
+
#: inc/class-jobtype-wpplugin.php:64 inc/class-jobtype-wpplugin.php:66
|
2187 |
+
msgid "BZip2"
|
2188 |
+
msgstr ""
|
2189 |
+
|
2190 |
+
#: inc/class-jobtype-wpexp.php:112
|
2191 |
+
#, php-format
|
2192 |
+
msgid "%d. Trying to create a WordPress export to XML file …"
|
2193 |
+
msgstr ""
|
2194 |
+
|
2195 |
+
#: inc/class-jobtype-wpexp.php:127
|
2196 |
+
#, php-format
|
2197 |
+
msgid "WP Export: Post type %s does not allow export."
|
2198 |
+
msgstr ""
|
2199 |
+
|
2200 |
+
#: inc/class-jobtype-wpexp.php:172 inc/class-jobtype-wpexp.php:186
|
2201 |
+
#: inc/class-jobtype-wpexp.php:215 inc/class-jobtype-wpexp.php:236
|
2202 |
+
#: inc/class-jobtype-wpexp.php:269 inc/class-jobtype-wpexp.php:289
|
2203 |
+
#: inc/class-jobtype-wpexp.php:378 inc/class-jobtype-wpexp.php:387
|
2204 |
+
msgid "WP Export file could not written."
|
2205 |
+
msgstr ""
|
2206 |
+
|
2207 |
+
#: inc/class-jobtype-wpexp.php:402
|
2208 |
+
msgid "Check WP Export file …"
|
2209 |
+
msgstr ""
|
2210 |
+
|
2211 |
+
#: inc/class-jobtype-wpexp.php:422
|
2212 |
+
#, php-format
|
2213 |
+
msgid "XML WARNING (%s): %s"
|
2214 |
+
msgstr ""
|
2215 |
+
|
2216 |
+
#: inc/class-jobtype-wpexp.php:425
|
2217 |
+
#, php-format
|
2218 |
+
msgid "XML RECOVERABLE (%s): %s"
|
2219 |
+
msgstr ""
|
2220 |
+
|
2221 |
+
#: inc/class-jobtype-wpexp.php:428
|
2222 |
+
#, php-format
|
2223 |
+
msgid "XML ERROR (%s): %s"
|
2224 |
+
msgstr ""
|
2225 |
+
|
2226 |
+
#: inc/class-jobtype-wpexp.php:438
|
2227 |
+
msgid "There was an error when reading this WXR file"
|
2228 |
+
msgstr ""
|
2229 |
+
|
2230 |
+
#: inc/class-jobtype-wpexp.php:444 inc/class-jobtype-wpexp.php:451
|
2231 |
+
msgid "This does not appear to be a WXR file, missing/invalid WXR version number"
|
2232 |
+
msgstr ""
|
2233 |
+
|
2234 |
+
#: inc/class-jobtype-wpexp.php:460
|
2235 |
+
msgid "WP Export file is a valid WXR file."
|
2236 |
+
msgstr ""
|
2237 |
+
|
2238 |
+
#: inc/class-jobtype-wpexp.php:462
|
2239 |
+
msgid "WP Export file can not be checked, because no XML extension is loaded, to ensure the file verification."
|
2240 |
+
msgstr ""
|
2241 |
+
|
2242 |
+
#: inc/class-jobtype-wpexp.php:474 inc/pro/class-jobtype-dbdump.php:741
|
2243 |
+
msgid "Compressing file …"
|
2244 |
+
msgstr ""
|
2245 |
+
|
2246 |
+
#: inc/class-jobtype-wpexp.php:481 inc/pro/class-jobtype-dbdump.php:748
|
2247 |
+
msgid "Compressing done."
|
2248 |
+
msgstr ""
|
2249 |
+
|
2250 |
+
#: inc/class-jobtype-wpexp.php:500
|
2251 |
+
#, php-format
|
2252 |
+
msgid "Added XML export \"%1$s\" with %2$s to backup file list."
|
2253 |
+
msgstr ""
|
2254 |
+
|
2255 |
+
#: inc/class-jobtype-wpplugin.php:13
|
2256 |
+
msgid "Plugins"
|
2257 |
+
msgstr ""
|
2258 |
+
|
2259 |
+
#: inc/class-jobtype-wpplugin.php:14
|
2260 |
+
msgid "Installed plugins list"
|
2261 |
+
msgstr ""
|
2262 |
+
|
2263 |
+
#: inc/class-jobtype-wpplugin.php:45
|
2264 |
+
msgid "Plugin list file name"
|
2265 |
+
msgstr ""
|
2266 |
+
|
2267 |
+
#: inc/class-jobtype-wpplugin.php:96
|
2268 |
+
#, php-format
|
2269 |
+
msgid "%d. Trying to generate a file with installed plugin names …"
|
2270 |
+
msgstr ""
|
2271 |
+
|
2272 |
+
#: inc/class-jobtype-wpplugin.php:124
|
2273 |
+
msgid "All plugin information:"
|
2274 |
+
msgstr ""
|
2275 |
+
|
2276 |
+
#: inc/class-jobtype-wpplugin.php:126
|
2277 |
+
#, php-format
|
2278 |
+
msgid "from %s"
|
2279 |
+
msgstr ""
|
2280 |
+
|
2281 |
+
#: inc/class-jobtype-wpplugin.php:128
|
2282 |
+
msgid "Active plugins:"
|
2283 |
+
msgstr ""
|
2284 |
+
|
2285 |
+
#: inc/class-jobtype-wpplugin.php:134
|
2286 |
+
msgid "Inactive plugins:"
|
2287 |
+
msgstr ""
|
2288 |
+
|
2289 |
+
#: inc/class-jobtype-wpplugin.php:141 inc/pro/class-jobtype-dbdump.php:798
|
2290 |
+
msgid "Can not open target file for writing."
|
2291 |
+
msgstr ""
|
2292 |
+
|
2293 |
+
#: inc/class-jobtype-wpplugin.php:148
|
2294 |
+
#, php-format
|
2295 |
+
msgid "Added plugin list file \"%1$s\" with %2$s to backup file list."
|
2296 |
+
msgstr ""
|
2297 |
+
|
2298 |
+
#: inc/class-message-box.php:89
|
2299 |
+
msgid "Dismiss"
|
2300 |
+
msgstr ""
|
2301 |
+
|
2302 |
+
#: inc/class-mysqldump.php:60
|
2303 |
+
msgid "No MySQLi extension found. Please install it."
|
2304 |
+
msgstr ""
|
2305 |
+
|
2306 |
+
#: inc/class-mysqldump.php:100 inc/pro/class-jobtype-dbdump.php:831
|
2307 |
+
msgid "Cannot init MySQLi database connection"
|
2308 |
+
msgstr ""
|
2309 |
+
|
2310 |
+
#: inc/class-mysqldump.php:105 inc/pro/class-jobtype-dbdump.php:837
|
2311 |
+
msgid "Setting of MySQLi connection timeout failed"
|
2312 |
+
msgstr ""
|
2313 |
+
|
2314 |
+
#: inc/class-mysqldump.php:110 inc/pro/class-jobtype-dbdump.php:843
|
2315 |
+
#, php-format
|
2316 |
+
msgid "Cannot connect to MySQL database %1$d: %2$s"
|
2317 |
+
msgstr ""
|
2318 |
+
|
2319 |
+
#: inc/class-mysqldump.php:117
|
2320 |
+
#, php-format
|
2321 |
+
msgctxt "Database Charset"
|
2322 |
+
msgid "Cannot set DB charset to %s error: %s"
|
2323 |
+
msgstr ""
|
2324 |
+
|
2325 |
+
#: inc/class-mysqldump.php:146
|
2326 |
+
msgid "Cannot open SQL backup file"
|
2327 |
+
msgstr ""
|
2328 |
+
|
2329 |
+
#: inc/class-mysqldump.php:153 inc/class-mysqldump.php:165
|
2330 |
+
#: inc/class-mysqldump.php:259 inc/class-mysqldump.php:268
|
2331 |
+
#: inc/class-mysqldump.php:288 inc/class-mysqldump.php:297
|
2332 |
+
#: inc/class-mysqldump.php:317 inc/class-mysqldump.php:323
|
2333 |
+
#: inc/class-mysqldump.php:368 inc/class-mysqldump.php:400
|
2334 |
+
#: inc/class-mysqldump.php:437 inc/class-mysqldump.php:500
|
2335 |
+
#: inc/pro/class-jobtype-dbdump.php:859 inc/pro/class-jobtype-dbdump.php:873
|
2336 |
+
#: inc/pro/class-jobtype-dbdump.php:921 inc/pro/class-jobtype-dbdump.php:940
|
2337 |
+
#: inc/pro/class-jobtype-dbdump.php:983
|
2338 |
+
#, php-format
|
2339 |
+
msgid "Database error %1$s for query %2$s"
|
2340 |
+
msgstr ""
|
2341 |
+
|
2342 |
+
#: inc/class-mysqldump.php:479
|
2343 |
+
#, php-format
|
2344 |
+
msgid "Start for table backup is not correctly set: %1$s"
|
2345 |
+
msgstr ""
|
2346 |
+
|
2347 |
+
#: inc/class-mysqldump.php:483
|
2348 |
+
#, php-format
|
2349 |
+
msgid "Length for table backup is not correctly set: %1$s"
|
2350 |
+
msgstr ""
|
2351 |
+
|
2352 |
+
#: inc/class-mysqldump.php:558
|
2353 |
+
msgid "Error while writing file!"
|
2354 |
+
msgstr ""
|
2355 |
+
|
2356 |
+
#: inc/class-option.php:160 inc/class-page-editjob.php:97
|
2357 |
+
#: inc/class-page-editjob.php:385
|
2358 |
+
msgid "New Job"
|
2359 |
+
msgstr ""
|
2360 |
+
|
2361 |
+
#: inc/class-page-about.php:369
|
2362 |
+
msgid "Welcome to BackWPup Pro"
|
2363 |
+
msgstr ""
|
2364 |
+
|
2365 |
+
#: inc/class-page-about.php:370 inc/class-page-backwpup.php:75
|
2366 |
+
msgid "BackWPups job wizards make planning and scheduling your backup jobs a breeze."
|
2367 |
+
msgstr ""
|
2368 |
+
|
2369 |
+
#: inc/class-page-about.php:371 inc/class-page-about.php:384
|
2370 |
+
msgid "Use your backup archives to save your entire WordPress installation including <code>/wp-content/</code>. Push them to an external storage service if you dont want to save the backups on the same server. With a single backup archive you are able to restore an installation. Use a tool like phpMyAdmin or a plugin like <a href=\"http://wordpress.org/plugins/adminer/\" target=\"_blank\">Adminer</a> to restore your database backup files."
|
2371 |
+
msgstr ""
|
2372 |
+
|
2373 |
+
#: inc/class-page-about.php:372
|
2374 |
+
#, php-format
|
2375 |
+
msgid "Ready to <a href=\"%1$s\">set up a backup job</a>? You can <a href=\"%2$s\">use the wizards</a> or plan your backup in expert mode."
|
2376 |
+
msgstr ""
|
2377 |
+
|
2378 |
+
#: inc/class-page-about.php:382
|
2379 |
+
msgid "Welcome to BackWPup"
|
2380 |
+
msgstr ""
|
2381 |
+
|
2382 |
+
#: inc/class-page-about.php:385
|
2383 |
+
msgid "Ready to set up a backup job? Use one of the wizards to plan what you want to save."
|
2384 |
+
msgstr ""
|
2385 |
+
|
2386 |
+
#: inc/class-page-about.php:398
|
2387 |
+
msgid "Save your database"
|
2388 |
+
msgstr ""
|
2389 |
+
|
2390 |
+
#: inc/class-page-about.php:401
|
2391 |
+
msgid "Save your database regularly"
|
2392 |
+
msgstr ""
|
2393 |
+
|
2394 |
+
#: inc/class-page-about.php:402
|
2395 |
+
#, php-format
|
2396 |
+
msgid "With BackWPup you can schedule the database backup to run automatically. With a single backup file you can restore your database. You should <a href=\"%s\">set up a backup job</a>, so you will never forget it. There is also an option to repair and optimize the database after each backup."
|
2397 |
+
msgstr ""
|
2398 |
+
|
2399 |
+
#: inc/class-page-about.php:407 inc/class-page-about.php:411
|
2400 |
+
msgid "WordPress XML Export"
|
2401 |
+
msgstr ""
|
2402 |
+
|
2403 |
+
#: inc/class-page-about.php:408
|
2404 |
+
msgid "You can choose the built-in WordPress export format in addition or exclusive to save your data. This works in automated backups too of course. The advantage is: you can import these files into a blog with the regular WordPress importer."
|
2405 |
+
msgstr ""
|
2406 |
+
|
2407 |
+
#: inc/class-page-about.php:416
|
2408 |
+
msgid "Save all data from the webserver"
|
2409 |
+
msgstr ""
|
2410 |
+
|
2411 |
+
#: inc/class-page-about.php:419
|
2412 |
+
msgid "Save all files"
|
2413 |
+
msgstr ""
|
2414 |
+
|
2415 |
+
#: inc/class-page-about.php:420
|
2416 |
+
#, php-format
|
2417 |
+
msgid "You can backup all your attachments, also all system files, plugins and themes in a single file. You can <a href=\"%s\">create a job</a> to update a backup copy of your file system only when files are changed."
|
2418 |
+
msgstr ""
|
2419 |
+
|
2420 |
+
#: inc/class-page-about.php:425 inc/class-page-about.php:429
|
2421 |
+
msgid "Security!"
|
2422 |
+
msgstr ""
|
2423 |
+
|
2424 |
+
#: inc/class-page-about.php:426
|
2425 |
+
msgid "By default everything is encrypted: connections to external services, local files and access to directories."
|
2426 |
+
msgstr ""
|
2427 |
+
|
2428 |
+
#: inc/class-page-about.php:434 inc/class-page-about.php:437
|
2429 |
+
msgid "Cloud Support"
|
2430 |
+
msgstr ""
|
2431 |
+
|
2432 |
+
#: inc/class-page-about.php:438
|
2433 |
+
msgid "BackWPup supports multiple cloud services in parallel. This ensures backups are redundant."
|
2434 |
+
msgstr ""
|
2435 |
+
|
2436 |
+
#: inc/class-page-about.php:444
|
2437 |
+
msgid "Features / differences between Free and Pro"
|
2438 |
+
msgstr ""
|
2439 |
+
|
2440 |
+
#: inc/class-page-about.php:447
|
2441 |
+
msgid "Features"
|
2442 |
+
msgstr ""
|
2443 |
+
|
2444 |
+
#: inc/class-page-about.php:448
|
2445 |
+
msgid "FREE"
|
2446 |
+
msgstr ""
|
2447 |
+
|
2448 |
+
#: inc/class-page-about.php:449
|
2449 |
+
msgid "PRO"
|
2450 |
+
msgstr ""
|
2451 |
+
|
2452 |
+
#: inc/class-page-about.php:452
|
2453 |
+
msgid "Complete database backup"
|
2454 |
+
msgstr ""
|
2455 |
+
|
2456 |
+
#: inc/class-page-about.php:457
|
2457 |
+
msgid "Complete file backup"
|
2458 |
+
msgstr ""
|
2459 |
+
|
2460 |
+
#: inc/class-page-about.php:462
|
2461 |
+
msgid "Database check"
|
2462 |
+
msgstr ""
|
2463 |
+
|
2464 |
+
#: inc/class-page-about.php:467
|
2465 |
+
msgid "Data compression"
|
2466 |
+
msgstr ""
|
2467 |
+
|
2468 |
+
#: inc/class-page-about.php:477
|
2469 |
+
msgid "List of installed plugins"
|
2470 |
+
msgstr ""
|
2471 |
+
|
2472 |
+
#: inc/class-page-about.php:482
|
2473 |
+
msgid "Backup archives management"
|
2474 |
+
msgstr ""
|
2475 |
+
|
2476 |
+
#: inc/class-page-about.php:487
|
2477 |
+
msgid "Log file management"
|
2478 |
+
msgstr ""
|
2479 |
+
|
2480 |
+
#: inc/class-page-about.php:492
|
2481 |
+
msgid "Start jobs per WP-Cron, URL, system, backend or WP-CLI"
|
2482 |
+
msgstr ""
|
2483 |
+
|
2484 |
+
#: inc/class-page-about.php:497
|
2485 |
+
msgid "Log report via email"
|
2486 |
+
msgstr ""
|
2487 |
+
|
2488 |
+
#: inc/class-page-about.php:502
|
2489 |
+
msgid "Backup to Microsoft Azure"
|
2490 |
+
msgstr ""
|
2491 |
+
|
2492 |
+
#: inc/class-page-about.php:507
|
2493 |
+
msgid "Backup as email"
|
2494 |
+
msgstr ""
|
2495 |
+
|
2496 |
+
#: inc/class-page-about.php:512
|
2497 |
+
msgid "Backup to S3 services (Amazon, Google Storage, Hosteurope and more)"
|
2498 |
+
msgstr ""
|
2499 |
+
|
2500 |
+
#: inc/class-page-about.php:527
|
2501 |
+
msgid "Backup to FTP server"
|
2502 |
+
msgstr ""
|
2503 |
+
|
2504 |
+
#: inc/class-page-about.php:532
|
2505 |
+
msgid "Backup to your web space"
|
2506 |
+
msgstr ""
|
2507 |
+
|
2508 |
+
#: inc/class-page-about.php:542 inc/pro/class-pro.php:112
|
2509 |
+
msgid "Backup to Google Drive"
|
2510 |
+
msgstr ""
|
2511 |
+
|
2512 |
+
#: inc/class-page-about.php:547 inc/pro/class-pro.php:93
|
2513 |
+
msgid "Backup to Amazon Glacier"
|
2514 |
+
msgstr ""
|
2515 |
+
|
2516 |
+
#: inc/class-page-about.php:552
|
2517 |
+
msgid "Custom API keys for DropBox and SugarSync"
|
2518 |
+
msgstr ""
|
2519 |
+
|
2520 |
+
#: inc/class-page-about.php:557
|
2521 |
+
msgid "XML database backup as PHPMyAdmin schema"
|
2522 |
+
msgstr ""
|
2523 |
+
|
2524 |
+
#: inc/class-page-about.php:562
|
2525 |
+
msgid "Database backup as mysqldump per command line"
|
2526 |
+
msgstr ""
|
2527 |
+
|
2528 |
+
#: inc/class-page-about.php:567
|
2529 |
+
msgid "Database backup for additional MySQL databases"
|
2530 |
+
msgstr ""
|
2531 |
+
|
2532 |
+
#: inc/class-page-about.php:572
|
2533 |
+
msgid "Import and export job settings as XML"
|
2534 |
+
msgstr ""
|
2535 |
+
|
2536 |
+
#: inc/class-page-about.php:577
|
2537 |
+
msgid "Wizard for system tests"
|
2538 |
+
msgstr ""
|
2539 |
+
|
2540 |
+
#: inc/class-page-about.php:582
|
2541 |
+
msgid "Wizard for scheduled backup jobs"
|
2542 |
+
msgstr ""
|
2543 |
+
|
2544 |
+
#: inc/class-page-about.php:587
|
2545 |
+
msgid "Wizard to import settings and backup jobs"
|
2546 |
+
msgstr ""
|
2547 |
+
|
2548 |
+
#: inc/class-page-about.php:592
|
2549 |
+
msgid "Differential backup of changed directories to Dropbox"
|
2550 |
+
msgstr ""
|
2551 |
+
|
2552 |
+
#: inc/class-page-about.php:597
|
2553 |
+
msgid "Differential backup of changed directories to Rackspace Cloud Files"
|
2554 |
+
msgstr ""
|
2555 |
+
|
2556 |
+
#: inc/class-page-about.php:602
|
2557 |
+
msgid "Differential backup of changed directories to S3"
|
2558 |
+
msgstr ""
|
2559 |
+
|
2560 |
+
#: inc/class-page-about.php:607
|
2561 |
+
msgid "Differential backup of changed directories to MS Azure"
|
2562 |
+
msgstr ""
|
2563 |
+
|
2564 |
+
#: inc/class-page-about.php:612
|
2565 |
+
msgid "<strong>Premium support</strong>"
|
2566 |
+
msgstr ""
|
2567 |
+
|
2568 |
+
#: inc/class-page-about.php:617
|
2569 |
+
msgid "<strong>Automatic updates</strong>"
|
2570 |
+
msgstr ""
|
2571 |
+
|
2572 |
+
#: inc/class-page-about.php:624
|
2573 |
+
msgid "GET PRO"
|
2574 |
+
msgstr ""
|
2575 |
+
|
2576 |
+
#: inc/class-page-backups.php:182
|
2577 |
+
msgid "No files could be found. (List will be generated during next backup.)"
|
2578 |
+
msgstr ""
|
2579 |
+
|
2580 |
+
#: inc/class-page-backups.php:195 inc/class-page-backups.php:315
|
2581 |
+
#: inc/class-page-jobs.php:113 inc/class-page-jobs.php:177
|
2582 |
+
#: inc/class-page-logs.php:125 inc/class-page-logs.php:204
|
2583 |
+
msgid "Delete"
|
2584 |
+
msgstr ""
|
2585 |
+
|
2586 |
+
#: inc/class-page-backups.php:229
|
2587 |
+
msgid "Change destination"
|
2588 |
+
msgstr ""
|
2589 |
+
|
2590 |
+
#: inc/class-page-backups.php:269 inc/class-page-backwpup.php:283
|
2591 |
+
#: inc/class-page-backwpup.php:347 inc/class-page-logs.php:136
|
2592 |
+
msgid "Time"
|
2593 |
+
msgstr ""
|
2594 |
+
|
2595 |
+
#: inc/class-page-backups.php:270
|
2596 |
+
msgid "File"
|
2597 |
+
msgstr ""
|
2598 |
+
|
2599 |
+
#: inc/class-page-backups.php:272 inc/class-page-logs.php:140
|
2600 |
+
msgid "Size"
|
2601 |
+
msgstr ""
|
2602 |
+
|
2603 |
+
#: inc/class-page-backups.php:315
|
2604 |
+
msgid ""
|
2605 |
+
"You are about to delete this backup archive. \n"
|
2606 |
+
" 'Cancel' to stop, 'OK' to delete."
|
2607 |
+
msgstr ""
|
2608 |
+
|
2609 |
+
#: inc/class-page-backups.php:318 inc/class-page-jobs.php:330
|
2610 |
+
#: inc/class-page-logs.php:206
|
2611 |
+
msgid "Download"
|
2612 |
+
msgstr ""
|
2613 |
+
|
2614 |
+
#: inc/class-page-backups.php:348
|
2615 |
+
msgid "?"
|
2616 |
+
msgstr ""
|
2617 |
+
|
2618 |
+
#: inc/class-page-backups.php:361 inc/class-page-backwpup.php:321
|
2619 |
+
#: inc/class-page-backwpup.php:376 inc/class-page-jobs.php:318
|
2620 |
+
#: inc/class-page-logs.php:164
|
2621 |
+
#, php-format
|
2622 |
+
msgid "%1$s at %2$s"
|
2623 |
+
msgstr ""
|
2624 |
+
|
2625 |
+
#: inc/class-page-backups.php:377 inc/class-page-backups.php:417
|
2626 |
+
#: inc/class-page-editjob.php:35 inc/class-page-jobs.php:398
|
2627 |
+
msgid "Sorry, you don't have permissions to do that."
|
2628 |
+
msgstr ""
|
2629 |
+
|
2630 |
+
#: inc/class-page-backups.php:441
|
2631 |
+
msgid "Backup Files"
|
2632 |
+
msgstr ""
|
2633 |
+
|
2634 |
+
#: inc/class-page-backups.php:489
|
2635 |
+
#, php-format
|
2636 |
+
msgid "%s › Manage Backup Archives"
|
2637 |
+
msgstr ""
|
2638 |
+
|
2639 |
+
#: inc/class-page-backwpup.php:67
|
2640 |
+
#, php-format
|
2641 |
+
msgid "%s › Dashboard"
|
2642 |
+
msgstr ""
|
2643 |
+
|
2644 |
+
#: inc/class-page-backwpup.php:74 inc/class-page-backwpup.php:83
|
2645 |
+
msgctxt "Dashboard heading"
|
2646 |
+
msgid "Planning backups"
|
2647 |
+
msgstr ""
|
2648 |
+
|
2649 |
+
#: inc/class-page-backwpup.php:75 inc/class-page-backwpup.php:84
|
2650 |
+
msgid "Use your backup archives to save your entire WordPress installation including <code>/wp-content/</code>. Push them to an external storage service if you dont want to save the backups on the same server."
|
2651 |
+
msgstr ""
|
2652 |
+
|
2653 |
+
#: inc/class-page-backwpup.php:76 inc/class-page-backwpup.php:85
|
2654 |
+
msgctxt "Dashboard heading"
|
2655 |
+
msgid "Restoring backups"
|
2656 |
+
msgstr ""
|
2657 |
+
|
2658 |
+
#: inc/class-page-backwpup.php:77 inc/class-page-backwpup.php:86
|
2659 |
+
msgid "With a single backup archive you are able to restore an installation. Use a tool like phpMyAdmin or a plugin like <a href=\"http://wordpress.org/plugins/adminer/\" target=\"_blank\">Adminer</a> to restore your database backup files."
|
2660 |
+
msgstr ""
|
2661 |
+
|
2662 |
+
#: inc/class-page-backwpup.php:78 inc/class-page-backwpup.php:87
|
2663 |
+
msgctxt "Dashboard heading"
|
2664 |
+
msgid "Ready to set up a backup job?"
|
2665 |
+
msgstr ""
|
2666 |
+
|
2667 |
+
#: inc/class-page-backwpup.php:79
|
2668 |
+
#, php-format
|
2669 |
+
msgid "Use one of the wizards to plan a backup, or use <a href=\"%s\">expert mode</a> for full control over all options."
|
2670 |
+
msgstr ""
|
2671 |
+
|
2672 |
+
#: inc/class-page-backwpup.php:79 inc/class-page-backwpup.php:89
|
2673 |
+
msgid "<strong>Please note: You are solely responsible for the security of your data; the authors of this plugin are not.</strong>"
|
2674 |
+
msgstr ""
|
2675 |
+
|
2676 |
+
#: inc/class-page-backwpup.php:84
|
2677 |
+
msgid "Use the short links in the <strong>First steps</strong> box to plan and schedule backup jobs."
|
2678 |
+
msgstr ""
|
2679 |
+
|
2680 |
+
#: inc/class-page-backwpup.php:88
|
2681 |
+
#, php-format
|
2682 |
+
msgid "<a href=\"%s\">Add a new backup job</a> and plan what you want to save."
|
2683 |
+
msgstr ""
|
2684 |
+
|
2685 |
+
#: inc/class-page-backwpup.php:96
|
2686 |
+
msgid "First Steps"
|
2687 |
+
msgstr ""
|
2688 |
+
|
2689 |
+
#: inc/class-page-backwpup.php:100
|
2690 |
+
msgid "Test the installation"
|
2691 |
+
msgstr ""
|
2692 |
+
|
2693 |
+
#: inc/class-page-backwpup.php:101 inc/class-page-backwpup.php:104
|
2694 |
+
msgid "Create a Job"
|
2695 |
+
msgstr ""
|
2696 |
+
|
2697 |
+
#: inc/class-page-backwpup.php:103
|
2698 |
+
msgid "Check the installation"
|
2699 |
+
msgstr ""
|
2700 |
+
|
2701 |
+
#: inc/class-page-backwpup.php:106
|
2702 |
+
msgid "Run the created job"
|
2703 |
+
msgstr ""
|
2704 |
+
|
2705 |
+
#: inc/class-page-backwpup.php:107
|
2706 |
+
msgid "Check the job log"
|
2707 |
+
msgstr ""
|
2708 |
+
|
2709 |
+
#: inc/class-page-backwpup.php:115
|
2710 |
+
msgid "One click backup"
|
2711 |
+
msgstr ""
|
2712 |
+
|
2713 |
+
#: inc/class-page-backwpup.php:117
|
2714 |
+
msgid "Generate a database backup of WordPress tables and download it right away!"
|
2715 |
+
msgstr ""
|
2716 |
+
|
2717 |
+
#: inc/class-page-backwpup.php:117
|
2718 |
+
msgid "Download database backup"
|
2719 |
+
msgstr ""
|
2720 |
+
|
2721 |
+
#: inc/class-page-backwpup.php:123
|
2722 |
+
msgid "BackWPup News"
|
2723 |
+
msgstr ""
|
2724 |
+
|
2725 |
+
#: inc/class-page-backwpup.php:127
|
2726 |
+
msgctxt "BackWPup News RSS Feed URL"
|
2727 |
+
msgid "https://backwpup.com/feed/"
|
2728 |
+
msgstr ""
|
2729 |
+
|
2730 |
+
#: inc/class-page-backwpup.php:130
|
2731 |
+
#, php-format
|
2732 |
+
msgid "<strong>RSS Error</strong>: %s"
|
2733 |
+
msgstr ""
|
2734 |
+
|
2735 |
+
#: inc/class-page-backwpup.php:132
|
2736 |
+
msgid "An error has occurred, which probably means the feed is down. Try again later."
|
2737 |
+
msgstr ""
|
2738 |
+
|
2739 |
+
#: inc/class-page-backwpup.php:146
|
2740 |
+
msgid "Untitled"
|
2741 |
+
msgstr ""
|
2742 |
+
|
2743 |
+
#: inc/class-page-backwpup.php:211 inc/pro/class-page-wizard.php:373
|
2744 |
+
msgid "Start wizard"
|
2745 |
+
msgstr ""
|
2746 |
+
|
2747 |
+
#: inc/class-page-backwpup.php:217
|
2748 |
+
msgid "Video: Introduction"
|
2749 |
+
msgstr ""
|
2750 |
+
|
2751 |
+
#: inc/class-page-backwpup.php:222
|
2752 |
+
msgid "Video: Settings"
|
2753 |
+
msgstr ""
|
2754 |
+
|
2755 |
+
#: inc/class-page-backwpup.php:227
|
2756 |
+
msgid "Video: Daily Backups"
|
2757 |
+
msgstr ""
|
2758 |
+
|
2759 |
+
#: inc/class-page-backwpup.php:232
|
2760 |
+
msgid "Video: Creating Full Backups"
|
2761 |
+
msgstr ""
|
2762 |
+
|
2763 |
+
#: inc/class-page-backwpup.php:237
|
2764 |
+
msgid "Video: Restoring Backups"
|
2765 |
+
msgstr ""
|
2766 |
+
|
2767 |
+
#: inc/class-page-backwpup.php:252
|
2768 |
+
msgctxt "Pro teaser box"
|
2769 |
+
msgid "Thank you for using BackWPup!"
|
2770 |
+
msgstr ""
|
2771 |
+
|
2772 |
+
#: inc/class-page-backwpup.php:255
|
2773 |
+
msgctxt "Pro teaser box"
|
2774 |
+
msgid "Get access to:"
|
2775 |
+
msgstr ""
|
2776 |
+
|
2777 |
+
#: inc/class-page-backwpup.php:257
|
2778 |
+
msgctxt "Pro teaser box"
|
2779 |
+
msgid "First-class <strong>dedicated support</strong> at MarketPress Helpdesk."
|
2780 |
+
msgstr ""
|
2781 |
+
|
2782 |
+
#: inc/class-page-backwpup.php:258
|
2783 |
+
msgctxt "Pro teaser box"
|
2784 |
+
msgid "Differential backups to Google Drive and other cloud storage service."
|
2785 |
+
msgstr ""
|
2786 |
+
|
2787 |
+
#: inc/class-page-backwpup.php:259
|
2788 |
+
msgctxt "Pro teaser box"
|
2789 |
+
msgid "Easy-peasy wizards to create and schedule backup jobs."
|
2790 |
+
msgstr ""
|
2791 |
+
|
2792 |
+
#: inc/class-page-backwpup.php:260
|
2793 |
+
msgctxt "Pro teaser box, link text"
|
2794 |
+
msgid "And more"
|
2795 |
+
msgstr ""
|
2796 |
+
|
2797 |
+
#: inc/class-page-backwpup.php:262
|
2798 |
+
msgctxt "Pro teaser box, link title"
|
2799 |
+
msgid "Get BackWPup Pro now"
|
2800 |
+
msgstr ""
|
2801 |
+
|
2802 |
+
#: inc/class-page-backwpup.php:262
|
2803 |
+
msgctxt "Pro teaser box, link text"
|
2804 |
+
msgid "Get BackWPup Pro now"
|
2805 |
+
msgstr ""
|
2806 |
+
|
2807 |
+
#: inc/class-page-backwpup.php:280
|
2808 |
+
msgid "Next scheduled jobs"
|
2809 |
+
msgstr ""
|
2810 |
+
|
2811 |
+
#: inc/class-page-backwpup.php:284 inc/class-page-backwpup.php:347
|
2812 |
+
#: inc/class-page-logs.php:137
|
2813 |
+
msgid "Job"
|
2814 |
+
msgstr ""
|
2815 |
+
|
2816 |
+
#: inc/class-page-backwpup.php:307
|
2817 |
+
#, php-format
|
2818 |
+
msgid "working since %d seconds"
|
2819 |
+
msgstr ""
|
2820 |
+
|
2821 |
+
#: inc/class-page-backwpup.php:309 inc/class-page-jobs.php:608
|
2822 |
+
msgid "Abort"
|
2823 |
+
msgstr ""
|
2824 |
+
|
2825 |
+
#: inc/class-page-backwpup.php:325
|
2826 |
+
msgid "Edit Job"
|
2827 |
+
msgstr ""
|
2828 |
+
|
2829 |
+
#: inc/class-page-backwpup.php:345
|
2830 |
+
msgid "Last logs"
|
2831 |
+
msgstr ""
|
2832 |
+
|
2833 |
+
#: inc/class-page-backwpup.php:347
|
2834 |
+
msgid "Result"
|
2835 |
+
msgstr ""
|
2836 |
+
|
2837 |
+
#: inc/class-page-backwpup.php:381
|
2838 |
+
#, php-format
|
2839 |
+
msgid "%d ERROR"
|
2840 |
+
msgid_plural "%d ERRORS"
|
2841 |
+
msgstr[0] ""
|
2842 |
+
msgstr[1] ""
|
2843 |
+
|
2844 |
+
#: inc/class-page-backwpup.php:384
|
2845 |
+
#, php-format
|
2846 |
+
msgid "%d WARNING"
|
2847 |
+
msgid_plural "%d WARNINGS"
|
2848 |
+
msgstr[0] ""
|
2849 |
+
msgstr[1] ""
|
2850 |
+
|
2851 |
+
#: inc/class-page-backwpup.php:387
|
2852 |
+
msgid "OK"
|
2853 |
+
msgstr ""
|
2854 |
+
|
2855 |
+
#: inc/class-page-editjob.php:98
|
2856 |
+
#, php-format
|
2857 |
+
msgid "Job with ID %d"
|
2858 |
+
msgstr ""
|
2859 |
+
|
2860 |
+
#: inc/class-page-editjob.php:222
|
2861 |
+
#, php-format
|
2862 |
+
msgid "Changes for job <i>%s</i> saved."
|
2863 |
+
msgstr ""
|
2864 |
+
|
2865 |
+
#: inc/class-page-editjob.php:222
|
2866 |
+
msgid "Jobs overview"
|
2867 |
+
msgstr ""
|
2868 |
+
|
2869 |
+
#: inc/class-page-editjob.php:222 inc/class-page-jobs.php:181
|
2870 |
+
msgid "Run now"
|
2871 |
+
msgstr ""
|
2872 |
+
|
2873 |
+
#: inc/class-page-editjob.php:327
|
2874 |
+
#, php-format
|
2875 |
+
msgid "%1$s › Job: %2$s"
|
2876 |
+
msgstr ""
|
2877 |
+
|
2878 |
+
#: inc/class-page-editjob.php:330 inc/class-page-settings.php:115
|
2879 |
+
msgid "General"
|
2880 |
+
msgstr ""
|
2881 |
+
|
2882 |
+
#: inc/class-page-editjob.php:330
|
2883 |
+
msgid "Schedule"
|
2884 |
+
msgstr ""
|
2885 |
+
|
2886 |
+
#: inc/class-page-editjob.php:345
|
2887 |
+
#, php-format
|
2888 |
+
msgid "To: %s"
|
2889 |
+
msgstr ""
|
2890 |
+
|
2891 |
+
#: inc/class-page-editjob.php:380 inc/class-page-editjob.php:385
|
2892 |
+
#: inc/class-page-jobs.php:125
|
2893 |
+
msgid "Job Name"
|
2894 |
+
msgstr ""
|
2895 |
+
|
2896 |
+
#: inc/class-page-editjob.php:383
|
2897 |
+
msgid "Please name this job."
|
2898 |
+
msgstr ""
|
2899 |
+
|
2900 |
+
#: inc/class-page-editjob.php:390
|
2901 |
+
msgid "Job Tasks"
|
2902 |
+
msgstr ""
|
2903 |
+
|
2904 |
+
#: inc/class-page-editjob.php:393 inc/pro/class-wizard-job.php:254
|
2905 |
+
msgid "This job is a …"
|
2906 |
+
msgstr ""
|
2907 |
+
|
2908 |
+
#: inc/class-page-editjob.php:396 inc/pro/class-wizard-job.php:257
|
2909 |
+
msgid "Job tasks"
|
2910 |
+
msgstr ""
|
2911 |
+
|
2912 |
+
#: inc/class-page-editjob.php:414
|
2913 |
+
msgid "Backup File Creation"
|
2914 |
+
msgstr ""
|
2915 |
+
|
2916 |
+
#: inc/class-page-editjob.php:419 inc/class-page-editjob.php:422
|
2917 |
+
#: inc/pro/class-wizard-job.php:402 inc/pro/class-wizard-job.php:405
|
2918 |
+
msgid "Backup type"
|
2919 |
+
msgstr ""
|
2920 |
+
|
2921 |
+
#: inc/class-page-editjob.php:425
|
2922 |
+
msgid "Synchronize file by file to destination"
|
2923 |
+
msgstr ""
|
2924 |
+
|
2925 |
+
#: inc/class-page-editjob.php:430 inc/pro/class-wizard-job.php:413
|
2926 |
+
msgid "Create a backup archive"
|
2927 |
+
msgstr ""
|
2928 |
+
|
2929 |
+
#: inc/class-page-editjob.php:438
|
2930 |
+
msgid "Archive name"
|
2931 |
+
msgstr ""
|
2932 |
+
|
2933 |
+
#: inc/class-page-editjob.php:448
|
2934 |
+
msgid "Replacement patterns:"
|
2935 |
+
msgstr ""
|
2936 |
+
|
2937 |
+
#: inc/class-page-editjob.php:449
|
2938 |
+
#, php-format
|
2939 |
+
msgid "%d = Two digit day of the month, with leading zeros"
|
2940 |
+
msgstr ""
|
2941 |
+
|
2942 |
+
#: inc/class-page-editjob.php:450
|
2943 |
+
msgid "%j = Day of the month, without leading zeros"
|
2944 |
+
msgstr ""
|
2945 |
+
|
2946 |
+
#: inc/class-page-editjob.php:451
|
2947 |
+
msgid "%m = Day of the month, with leading zeros"
|
2948 |
+
msgstr ""
|
2949 |
+
|
2950 |
+
#: inc/class-page-editjob.php:452
|
2951 |
+
msgid "%n = Representation of the month (without leading zeros)"
|
2952 |
+
msgstr ""
|
2953 |
+
|
2954 |
+
#: inc/class-page-editjob.php:453
|
2955 |
+
msgid "%Y = Four digit representation for the year"
|
2956 |
+
msgstr ""
|
2957 |
+
|
2958 |
+
#: inc/class-page-editjob.php:454
|
2959 |
+
msgid "%y = Two digit representation of the year"
|
2960 |
+
msgstr ""
|
2961 |
+
|
2962 |
+
#: inc/class-page-editjob.php:455
|
2963 |
+
msgid "%a = Lowercase ante meridiem (am) and post meridiem (pm)"
|
2964 |
+
msgstr ""
|
2965 |
+
|
2966 |
+
#: inc/class-page-editjob.php:456
|
2967 |
+
msgid "%A = Uppercase ante meridiem (AM) and post meridiem (PM)"
|
2968 |
+
msgstr ""
|
2969 |
+
|
2970 |
+
#: inc/class-page-editjob.php:457
|
2971 |
+
msgid "%B = Swatch Internet Time"
|
2972 |
+
msgstr ""
|
2973 |
+
|
2974 |
+
#: inc/class-page-editjob.php:458
|
2975 |
+
msgid "%g = Hour in 12-hour format, without leading zeros"
|
2976 |
+
msgstr ""
|
2977 |
+
|
2978 |
+
#: inc/class-page-editjob.php:459
|
2979 |
+
msgid "%G = Hour in 24-hour format, without leading zeros"
|
2980 |
+
msgstr ""
|
2981 |
+
|
2982 |
+
#: inc/class-page-editjob.php:460
|
2983 |
+
msgid "%h = Hour in 12-hour format, with leading zeros"
|
2984 |
+
msgstr ""
|
2985 |
+
|
2986 |
+
#: inc/class-page-editjob.php:461
|
2987 |
+
msgid "%H = Hour in 24-hour format, with leading zeros"
|
2988 |
+
msgstr ""
|
2989 |
+
|
2990 |
+
#: inc/class-page-editjob.php:462
|
2991 |
+
msgid "%i = Two digit representation of the minute"
|
2992 |
+
msgstr ""
|
2993 |
+
|
2994 |
+
#: inc/class-page-editjob.php:463
|
2995 |
+
#, php-format
|
2996 |
+
msgid "%s = Two digit representation of the second"
|
2997 |
+
msgstr ""
|
2998 |
+
|
2999 |
+
#: inc/class-page-editjob.php:469 inc/class-page-editjob.php:472
|
3000 |
+
msgid "Archive Format"
|
3001 |
+
msgstr ""
|
3002 |
+
|
3003 |
+
#: inc/class-page-editjob.php:475 inc/class-page-editjob.php:477
|
3004 |
+
#: inc/pro/class-wizard-job.php:426 inc/pro/class-wizard-job.php:429
|
3005 |
+
msgid "Zip"
|
3006 |
+
msgstr ""
|
3007 |
+
|
3008 |
+
#: inc/class-page-editjob.php:478
|
3009 |
+
#, php-format
|
3010 |
+
msgid "Disabled due to missing %s PHP class."
|
3011 |
+
msgstr ""
|
3012 |
+
|
3013 |
+
#: inc/class-page-editjob.php:480 inc/pro/class-wizard-job.php:433
|
3014 |
+
msgid "Tar"
|
3015 |
+
msgstr ""
|
3016 |
+
|
3017 |
+
#: inc/class-page-editjob.php:482 inc/class-page-editjob.php:484
|
3018 |
+
#: inc/pro/class-wizard-job.php:437 inc/pro/class-wizard-job.php:440
|
3019 |
+
msgid "Tar GZip"
|
3020 |
+
msgstr ""
|
3021 |
+
|
3022 |
+
#: inc/class-page-editjob.php:485 inc/class-page-editjob.php:491
|
3023 |
+
#, php-format
|
3024 |
+
msgid "Disabled due to missing %s PHP function."
|
3025 |
+
msgstr ""
|
3026 |
+
|
3027 |
+
#: inc/class-page-editjob.php:488 inc/class-page-editjob.php:490
|
3028 |
+
#: inc/pro/class-wizard-job.php:444 inc/pro/class-wizard-job.php:447
|
3029 |
+
msgid "Tar BZip2"
|
3030 |
+
msgstr ""
|
3031 |
+
|
3032 |
+
#: inc/class-page-editjob.php:498
|
3033 |
+
msgid "Job Destination"
|
3034 |
+
msgstr ""
|
3035 |
+
|
3036 |
+
#: inc/class-page-editjob.php:502 inc/class-page-editjob.php:505
|
3037 |
+
msgid "Where should your backup file be stored?"
|
3038 |
+
msgstr ""
|
3039 |
+
|
3040 |
+
#: inc/class-page-editjob.php:523
|
3041 |
+
msgid "Log Files"
|
3042 |
+
msgstr ""
|
3043 |
+
|
3044 |
+
#: inc/class-page-editjob.php:527
|
3045 |
+
msgid "Send log to email address"
|
3046 |
+
msgstr ""
|
3047 |
+
|
3048 |
+
#: inc/class-page-editjob.php:530
|
3049 |
+
msgid "Leave empty to not have log sent. Or separate with , for more than one receiver."
|
3050 |
+
msgstr ""
|
3051 |
+
|
3052 |
+
#: inc/class-page-editjob.php:534
|
3053 |
+
msgid "Email FROM field"
|
3054 |
+
msgstr ""
|
3055 |
+
|
3056 |
+
#: inc/class-page-editjob.php:536
|
3057 |
+
msgid "Your Name <mail@domain.tld>"
|
3058 |
+
msgstr ""
|
3059 |
+
|
3060 |
+
#: inc/class-page-editjob.php:540
|
3061 |
+
msgid "Errors only"
|
3062 |
+
msgstr ""
|
3063 |
+
|
3064 |
+
#: inc/class-page-editjob.php:545
|
3065 |
+
msgid "Send email with log only when errors occur during job execution."
|
3066 |
+
msgstr ""
|
3067 |
+
|
3068 |
+
#: inc/class-page-editjob.php:556
|
3069 |
+
msgid "Job Schedule"
|
3070 |
+
msgstr ""
|
3071 |
+
|
3072 |
+
#: inc/class-page-editjob.php:560 inc/class-page-editjob.php:563
|
3073 |
+
msgid "Start job"
|
3074 |
+
msgstr ""
|
3075 |
+
|
3076 |
+
#: inc/class-page-editjob.php:567
|
3077 |
+
msgid "manually only"
|
3078 |
+
msgstr ""
|
3079 |
+
|
3080 |
+
#: inc/class-page-editjob.php:571
|
3081 |
+
msgid "with WordPress cron"
|
3082 |
+
msgstr ""
|
3083 |
+
|
3084 |
+
#: inc/class-page-editjob.php:580
|
3085 |
+
msgid "with <a href=\"https://www.easycron.com?ref=36673\" title=\"Affiliate Link!\">EasyCron.com</a>"
|
3086 |
+
msgstr ""
|
3087 |
+
|
3088 |
+
#: inc/class-page-editjob.php:582
|
3089 |
+
#, php-format
|
3090 |
+
msgid "First setup <a href=\"%s\">API Key</a>."
|
3091 |
+
msgstr ""
|
3092 |
+
|
3093 |
+
#: inc/class-page-editjob.php:591
|
3094 |
+
msgid "with a link"
|
3095 |
+
msgstr ""
|
3096 |
+
|
3097 |
+
#: inc/class-page-editjob.php:592
|
3098 |
+
msgid "Copy the link for an external start. This option has to be activated to make the link work."
|
3099 |
+
msgstr ""
|
3100 |
+
|
3101 |
+
#: inc/class-page-editjob.php:599
|
3102 |
+
msgid "Start job with CLI"
|
3103 |
+
msgstr ""
|
3104 |
+
|
3105 |
+
#: inc/class-page-editjob.php:602
|
3106 |
+
msgid "Use <a href=\"http://wp-cli.org/\">WP-CLI</a> to run jobs from commandline."
|
3107 |
+
msgstr ""
|
3108 |
+
|
3109 |
+
#: inc/class-page-editjob.php:607
|
3110 |
+
msgid "Schedule execution time"
|
3111 |
+
msgstr ""
|
3112 |
+
|
3113 |
+
#: inc/class-page-editjob.php:611 inc/class-page-editjob.php:614
|
3114 |
+
msgid "Scheduler type"
|
3115 |
+
msgstr ""
|
3116 |
+
|
3117 |
+
#: inc/class-page-editjob.php:618
|
3118 |
+
msgid "basic"
|
3119 |
+
msgstr ""
|
3120 |
+
|
3121 |
+
#: inc/class-page-editjob.php:622
|
3122 |
+
msgid "advanced"
|
3123 |
+
msgstr ""
|
3124 |
+
|
3125 |
+
#: inc/class-page-editjob.php:651 inc/class-page-editjob.php:719
|
3126 |
+
#: inc/pro/class-wizard-job.php:320
|
3127 |
+
msgid "Scheduler"
|
3128 |
+
msgstr ""
|
3129 |
+
|
3130 |
+
#: inc/class-page-editjob.php:656 inc/class-page-jobs.php:126
|
3131 |
+
#: inc/class-page-logs.php:139 inc/pro/class-wizard-job.php:324
|
3132 |
+
msgid "Type"
|
3133 |
+
msgstr ""
|
3134 |
+
|
3135 |
+
#: inc/class-page-editjob.php:661 inc/pro/class-wizard-job.php:330
|
3136 |
+
msgid "Hour"
|
3137 |
+
msgstr ""
|
3138 |
+
|
3139 |
+
#: inc/class-page-editjob.php:664 inc/pro/class-wizard-job.php:333
|
3140 |
+
msgid "Minute"
|
3141 |
+
msgstr ""
|
3142 |
+
|
3143 |
+
#: inc/class-page-editjob.php:668 inc/pro/class-wizard-job.php:337
|
3144 |
+
msgid "monthly"
|
3145 |
+
msgstr ""
|
3146 |
+
|
3147 |
+
#: inc/class-page-editjob.php:670 inc/pro/class-wizard-job.php:339
|
3148 |
+
msgid "on"
|
3149 |
+
msgstr ""
|
3150 |
+
|
3151 |
+
#: inc/class-page-editjob.php:680 inc/pro/class-wizard-job.php:349
|
3152 |
+
msgid "weekly"
|
3153 |
+
msgstr ""
|
3154 |
+
|
3155 |
+
#: inc/class-page-editjob.php:682 inc/class-page-editjob.php:789
|
3156 |
+
#: inc/pro/class-wizard-job.php:351
|
3157 |
+
msgid "Sunday"
|
3158 |
+
msgstr ""
|
3159 |
+
|
3160 |
+
#: inc/class-page-editjob.php:683 inc/class-page-editjob.php:790
|
3161 |
+
#: inc/pro/class-wizard-job.php:352
|
3162 |
+
msgid "Monday"
|
3163 |
+
msgstr ""
|
3164 |
+
|
3165 |
+
#: inc/class-page-editjob.php:684 inc/class-page-editjob.php:791
|
3166 |
+
#: inc/pro/class-wizard-job.php:353
|
3167 |
+
msgid "Tuesday"
|
3168 |
+
msgstr ""
|
3169 |
+
|
3170 |
+
#: inc/class-page-editjob.php:685 inc/class-page-editjob.php:792
|
3171 |
+
#: inc/pro/class-wizard-job.php:354
|
3172 |
+
msgid "Wednesday"
|
3173 |
+
msgstr ""
|
3174 |
+
|
3175 |
+
#: inc/class-page-editjob.php:686 inc/class-page-editjob.php:793
|
3176 |
+
#: inc/pro/class-wizard-job.php:355
|
3177 |
+
msgid "Thursday"
|
3178 |
+
msgstr ""
|
3179 |
+
|
3180 |
+
#: inc/class-page-editjob.php:687 inc/class-page-editjob.php:794
|
3181 |
+
#: inc/pro/class-wizard-job.php:356
|
3182 |
+
msgid "Friday"
|
3183 |
+
msgstr ""
|
3184 |
+
|
3185 |
+
#: inc/class-page-editjob.php:688 inc/class-page-editjob.php:795
|
3186 |
+
#: inc/pro/class-wizard-job.php:357
|
3187 |
+
msgid "Saturday"
|
3188 |
+
msgstr ""
|
3189 |
+
|
3190 |
+
#: inc/class-page-editjob.php:698 inc/pro/class-wizard-job.php:367
|
3191 |
+
msgid "daily"
|
3192 |
+
msgstr ""
|
3193 |
+
|
3194 |
+
#: inc/class-page-editjob.php:708 inc/pro/class-wizard-job.php:377
|
3195 |
+
msgid "hourly"
|
3196 |
+
msgstr ""
|
3197 |
+
|
3198 |
+
#: inc/class-page-editjob.php:722
|
3199 |
+
msgid "Minutes:"
|
3200 |
+
msgstr ""
|
3201 |
+
|
3202 |
+
#: inc/class-page-editjob.php:724 inc/class-page-editjob.php:737
|
3203 |
+
#: inc/class-page-editjob.php:749 inc/class-page-editjob.php:763
|
3204 |
+
#: inc/class-page-editjob.php:785
|
3205 |
+
msgid "Any (*)"
|
3206 |
+
msgstr ""
|
3207 |
+
|
3208 |
+
#: inc/class-page-editjob.php:734
|
3209 |
+
msgid "Hours:"
|
3210 |
+
msgstr ""
|
3211 |
+
|
3212 |
+
#: inc/class-page-editjob.php:747
|
3213 |
+
msgid "Day of Month:"
|
3214 |
+
msgstr ""
|
3215 |
+
|
3216 |
+
#: inc/class-page-editjob.php:761
|
3217 |
+
msgid "Month:"
|
3218 |
+
msgstr ""
|
3219 |
+
|
3220 |
+
#: inc/class-page-editjob.php:767
|
3221 |
+
msgid "January"
|
3222 |
+
msgstr ""
|
3223 |
+
|
3224 |
+
#: inc/class-page-editjob.php:768
|
3225 |
+
msgid "February"
|
3226 |
+
msgstr ""
|
3227 |
+
|
3228 |
+
#: inc/class-page-editjob.php:769
|
3229 |
+
msgid "March"
|
3230 |
+
msgstr ""
|
3231 |
+
|
3232 |
+
#: inc/class-page-editjob.php:770
|
3233 |
+
msgid "April"
|
3234 |
+
msgstr ""
|
3235 |
+
|
3236 |
+
#: inc/class-page-editjob.php:771
|
3237 |
+
msgid "May"
|
3238 |
+
msgstr ""
|
3239 |
+
|
3240 |
+
#: inc/class-page-editjob.php:772
|
3241 |
+
msgid "June"
|
3242 |
+
msgstr ""
|
3243 |
+
|
3244 |
+
#: inc/class-page-editjob.php:773
|
3245 |
+
msgid "July"
|
3246 |
+
msgstr ""
|
3247 |
+
|
3248 |
+
#: inc/class-page-editjob.php:774
|
3249 |
+
msgid "August"
|
3250 |
+
msgstr ""
|
3251 |
+
|
3252 |
+
#: inc/class-page-editjob.php:775
|
3253 |
+
msgid "September"
|
3254 |
+
msgstr ""
|
3255 |
+
|
3256 |
+
#: inc/class-page-editjob.php:776
|
3257 |
+
msgid "October"
|
3258 |
+
msgstr ""
|
3259 |
+
|
3260 |
+
#: inc/class-page-editjob.php:777
|
3261 |
+
msgid "November"
|
3262 |
+
msgstr ""
|
3263 |
+
|
3264 |
+
#: inc/class-page-editjob.php:778
|
3265 |
+
msgid "December"
|
3266 |
+
msgstr ""
|
3267 |
+
|
3268 |
+
#: inc/class-page-editjob.php:783
|
3269 |
+
msgid "Day of Week:"
|
3270 |
+
msgstr ""
|
3271 |
+
|
3272 |
+
#: inc/class-page-editjob.php:819
|
3273 |
+
msgid "Save changes"
|
3274 |
+
msgstr ""
|
3275 |
+
|
3276 |
+
#: inc/class-page-editjob.php:906
|
3277 |
+
msgid "Working as <a href=\"http://wikipedia.org/wiki/Cron\">Cron</a> schedule:"
|
3278 |
+
msgstr ""
|
3279 |
+
|
3280 |
+
#: inc/class-page-editjob.php:915
|
3281 |
+
#, php-format
|
3282 |
+
msgid "ATTENTION: Job runs every %d minutes!"
|
3283 |
+
msgstr ""
|
3284 |
+
|
3285 |
+
#: inc/class-page-editjob.php:919
|
3286 |
+
msgid "ATTENTION: Can't calculate cron!"
|
3287 |
+
msgstr ""
|
3288 |
+
|
3289 |
+
#: inc/class-page-editjob.php:922
|
3290 |
+
msgid "Next runtime:"
|
3291 |
+
msgstr ""
|
3292 |
+
|
3293 |
+
#: inc/class-page-jobs.php:100
|
3294 |
+
msgid "No Jobs."
|
3295 |
+
msgstr ""
|
3296 |
+
|
3297 |
+
#: inc/class-page-jobs.php:127 inc/pro/class-wizard-job.php:67
|
3298 |
+
#: inc/pro/class-wizard-job.php:473
|
3299 |
+
msgid "Destinations"
|
3300 |
+
msgstr ""
|
3301 |
+
|
3302 |
+
#: inc/class-page-jobs.php:128
|
3303 |
+
msgid "Next Run"
|
3304 |
+
msgstr ""
|
3305 |
+
|
3306 |
+
#: inc/class-page-jobs.php:129
|
3307 |
+
msgid "Last Run"
|
3308 |
+
msgstr ""
|
3309 |
+
|
3310 |
+
#: inc/class-page-jobs.php:172 inc/class-page-logs.php:200
|
3311 |
+
#, php-format
|
3312 |
+
msgid "Job ID: %d"
|
3313 |
+
msgstr ""
|
3314 |
+
|
3315 |
+
#: inc/class-page-jobs.php:175
|
3316 |
+
msgid "Edit"
|
3317 |
+
msgstr ""
|
3318 |
+
|
3319 |
+
#: inc/class-page-jobs.php:176
|
3320 |
+
msgid "Copy"
|
3321 |
+
msgstr ""
|
3322 |
+
|
3323 |
+
#: inc/class-page-jobs.php:189
|
3324 |
+
msgid "Last log"
|
3325 |
+
msgstr ""
|
3326 |
+
|
3327 |
+
#: inc/class-page-jobs.php:251
|
3328 |
+
msgid "Not needed or set"
|
3329 |
+
msgstr ""
|
3330 |
+
|
3331 |
+
#: inc/class-page-jobs.php:273
|
3332 |
+
#, php-format
|
3333 |
+
msgid "Running for: %s seconds"
|
3334 |
+
msgstr ""
|
3335 |
+
|
3336 |
+
#: inc/class-page-jobs.php:280 inc/class-page-jobs.php:289
|
3337 |
+
#, php-format
|
3338 |
+
msgid "Cron: %s"
|
3339 |
+
msgstr ""
|
3340 |
+
|
3341 |
+
#: inc/class-page-jobs.php:280
|
3342 |
+
#, php-format
|
3343 |
+
msgid "%1$s at %2$s by WP-Cron"
|
3344 |
+
msgstr ""
|
3345 |
+
|
3346 |
+
#: inc/class-page-jobs.php:289
|
3347 |
+
#, php-format
|
3348 |
+
msgid "%1$s at %2$s by EasyCron"
|
3349 |
+
msgstr ""
|
3350 |
+
|
3351 |
+
#: inc/class-page-jobs.php:295
|
3352 |
+
msgid "External link"
|
3353 |
+
msgstr ""
|
3354 |
+
|
3355 |
+
#: inc/class-page-jobs.php:298
|
3356 |
+
msgid "Inactive"
|
3357 |
+
msgstr ""
|
3358 |
+
|
3359 |
+
#: inc/class-page-jobs.php:320
|
3360 |
+
#, php-format
|
3361 |
+
msgid "Runtime: %d seconds"
|
3362 |
+
msgstr ""
|
3363 |
+
|
3364 |
+
#: inc/class-page-jobs.php:324
|
3365 |
+
msgid "not yet"
|
3366 |
+
msgstr ""
|
3367 |
+
|
3368 |
+
#: inc/class-page-jobs.php:330
|
3369 |
+
msgid "Download last backup"
|
3370 |
+
msgstr ""
|
3371 |
+
|
3372 |
+
#: inc/class-page-jobs.php:339
|
3373 |
+
msgid "Log"
|
3374 |
+
msgstr ""
|
3375 |
+
|
3376 |
+
#: inc/class-page-jobs.php:384
|
3377 |
+
msgid "Copy of"
|
3378 |
+
msgstr ""
|
3379 |
+
|
3380 |
+
#: inc/class-page-jobs.php:431
|
3381 |
+
#, php-format
|
3382 |
+
msgid "The job \"%s\" destination \"%s\" is not configured properly"
|
3383 |
+
msgstr ""
|
3384 |
+
|
3385 |
+
#: inc/class-page-jobs.php:436
|
3386 |
+
#, php-format
|
3387 |
+
msgid "The job \"%s\" needs properly configured destinations to run!"
|
3388 |
+
msgstr ""
|
3389 |
+
|
3390 |
+
#: inc/class-page-jobs.php:454
|
3391 |
+
#, php-format
|
3392 |
+
msgid "Job \"%s\" has started, but not responded for 10 seconds. Please check <a href=\"%s\">information</a>."
|
3393 |
+
msgstr ""
|
3394 |
+
|
3395 |
+
#: inc/class-page-jobs.php:459
|
3396 |
+
#, php-format
|
3397 |
+
msgid "Job \"%s\" started."
|
3398 |
+
msgstr ""
|
3399 |
+
|
3400 |
+
#: inc/class-page-jobs.php:471 inc/class-wp-cli.php:59
|
3401 |
+
msgid "Job will be terminated."
|
3402 |
+
msgstr ""
|
3403 |
+
|
3404 |
+
#: inc/class-page-jobs.php:584
|
3405 |
+
#, php-format
|
3406 |
+
msgid "%s › Jobs"
|
3407 |
+
msgstr ""
|
3408 |
+
|
3409 |
+
#: inc/class-page-jobs.php:604
|
3410 |
+
#, php-format
|
3411 |
+
msgid "Job currently running: %s"
|
3412 |
+
msgstr ""
|
3413 |
+
|
3414 |
+
#: inc/class-page-jobs.php:605
|
3415 |
+
msgid "Warnings:"
|
3416 |
+
msgstr ""
|
3417 |
+
|
3418 |
+
#: inc/class-page-jobs.php:606
|
3419 |
+
msgid "Errors:"
|
3420 |
+
msgstr ""
|
3421 |
+
|
3422 |
+
#: inc/class-page-jobs.php:607
|
3423 |
+
msgid "Log of running job"
|
3424 |
+
msgstr ""
|
3425 |
+
|
3426 |
+
#: inc/class-page-jobs.php:607
|
3427 |
+
msgid "Display working log"
|
3428 |
+
msgstr ""
|
3429 |
+
|
3430 |
+
#: inc/class-page-jobs.php:609
|
3431 |
+
msgid "Close working screen"
|
3432 |
+
msgstr ""
|
3433 |
+
|
3434 |
+
#: inc/class-page-jobs.php:609
|
3435 |
+
msgid "Close"
|
3436 |
+
msgstr ""
|
3437 |
+
|
3438 |
+
#: inc/class-page-jobs.php:782
|
3439 |
+
msgid "Job completed"
|
3440 |
+
msgstr ""
|
3441 |
+
|
3442 |
+
#: inc/class-page-jobs.php:786
|
3443 |
+
#, php-format
|
3444 |
+
msgid "Job has done with warnings in %s seconds. Please resolve them for correct execution."
|
3445 |
+
msgstr ""
|
3446 |
+
|
3447 |
+
#: inc/class-page-logs.php:113
|
3448 |
+
msgid "No Logs."
|
3449 |
+
msgstr ""
|
3450 |
+
|
3451 |
+
#: inc/class-page-logs.php:138
|
3452 |
+
msgid "Status"
|
3453 |
+
msgstr ""
|
3454 |
+
|
3455 |
+
#: inc/class-page-logs.php:141
|
3456 |
+
msgid "Runtime"
|
3457 |
+
msgstr ""
|
3458 |
+
|
3459 |
+
#: inc/class-page-logs.php:202
|
3460 |
+
msgid "View"
|
3461 |
+
msgstr ""
|
3462 |
+
|
3463 |
+
#: inc/class-page-logs.php:222
|
3464 |
+
#, php-format
|
3465 |
+
msgid "1 ERROR"
|
3466 |
+
msgid_plural "%d ERRORS"
|
3467 |
+
msgstr[0] ""
|
3468 |
+
msgstr[1] ""
|
3469 |
+
|
3470 |
+
#: inc/class-page-logs.php:225
|
3471 |
+
#, php-format
|
3472 |
+
msgid "1 WARNING"
|
3473 |
+
msgid_plural "%d WARNINGS"
|
3474 |
+
msgstr[0] ""
|
3475 |
+
msgstr[1] ""
|
3476 |
+
|
3477 |
+
#: inc/class-page-logs.php:228
|
3478 |
+
msgid "O.K."
|
3479 |
+
msgstr ""
|
3480 |
+
|
3481 |
+
#: inc/class-page-logs.php:246
|
3482 |
+
msgid "Log only"
|
3483 |
+
msgstr ""
|
3484 |
+
|
3485 |
+
#: inc/class-page-logs.php:391
|
3486 |
+
#, php-format
|
3487 |
+
msgid "%s › Logs"
|
3488 |
+
msgstr ""
|
3489 |
+
|
3490 |
+
#: inc/class-page-logs.php:422
|
3491 |
+
msgid "Logfile not found!"
|
3492 |
+
msgstr ""
|
3493 |
+
|
3494 |
+
#: inc/class-page-settings.php:60
|
3495 |
+
msgid "Settings reset to default"
|
3496 |
+
msgstr ""
|
3497 |
+
|
3498 |
+
#: inc/class-page-settings.php:102
|
3499 |
+
msgid "Settings saved"
|
3500 |
+
msgstr ""
|
3501 |
+
|
3502 |
+
#: inc/class-page-settings.php:113
|
3503 |
+
#, php-format
|
3504 |
+
msgid "%s › Settings"
|
3505 |
+
msgstr ""
|
3506 |
+
|
3507 |
+
#: inc/class-page-settings.php:115
|
3508 |
+
msgid "Network"
|
3509 |
+
msgstr ""
|
3510 |
+
|
3511 |
+
#: inc/class-page-settings.php:115
|
3512 |
+
msgid "API Keys"
|
3513 |
+
msgstr ""
|
3514 |
+
|
3515 |
+
#: inc/class-page-settings.php:115
|
3516 |
+
msgid "Information"
|
3517 |
+
msgstr ""
|
3518 |
+
|
3519 |
+
#: inc/class-page-settings.php:133
|
3520 |
+
msgid "Display Settings"
|
3521 |
+
msgstr ""
|
3522 |
+
|
3523 |
+
#: inc/class-page-settings.php:134
|
3524 |
+
msgid "Do you want to see BackWPup in the WordPress admin bar?"
|
3525 |
+
msgstr ""
|
3526 |
+
|
3527 |
+
#: inc/class-page-settings.php:137
|
3528 |
+
msgid "Admin bar"
|
3529 |
+
msgstr ""
|
3530 |
+
|
3531 |
+
#: inc/class-page-settings.php:140
|
3532 |
+
msgid "Admin Bar"
|
3533 |
+
msgstr ""
|
3534 |
+
|
3535 |
+
#: inc/class-page-settings.php:143
|
3536 |
+
msgid "Show BackWPup links in admin bar."
|
3537 |
+
msgstr ""
|
3538 |
+
|
3539 |
+
#: inc/class-page-settings.php:149 inc/class-page-settings.php:152
|
3540 |
+
msgid "Folder sizes"
|
3541 |
+
msgstr ""
|
3542 |
+
|
3543 |
+
#: inc/class-page-settings.php:155
|
3544 |
+
msgid "Display folder sizes in the files tab when editing a job. (Might increase loading time of files tab.)"
|
3545 |
+
msgstr ""
|
3546 |
+
|
3547 |
+
#: inc/class-page-settings.php:161
|
3548 |
+
msgid "Security"
|
3549 |
+
msgstr ""
|
3550 |
+
|
3551 |
+
#: inc/class-page-settings.php:162
|
3552 |
+
msgid "Security option for BackWPup"
|
3553 |
+
msgstr ""
|
3554 |
+
|
3555 |
+
#: inc/class-page-settings.php:165 inc/class-page-settings.php:168
|
3556 |
+
msgid "Protect folders"
|
3557 |
+
msgstr ""
|
3558 |
+
|
3559 |
+
#: inc/class-page-settings.php:171
|
3560 |
+
msgid "Protect BackWPup folders ( Temp, Log and Backups ) with <code>.htaccess</code> and <code>index.php</code>"
|
3561 |
+
msgstr ""
|
3562 |
+
|
3563 |
+
#: inc/class-page-settings.php:184
|
3564 |
+
msgid "Every time BackWPup runs a backup job, a log file is being generated. Choose where to store your log files and how many of them."
|
3565 |
+
msgstr ""
|
3566 |
+
|
3567 |
+
#: inc/class-page-settings.php:187
|
3568 |
+
msgid "Log file folder"
|
3569 |
+
msgstr ""
|
3570 |
+
|
3571 |
+
#: inc/class-page-settings.php:190
|
3572 |
+
#, php-format
|
3573 |
+
msgid "You can use absolute or relative path! Relative path is relative to %s."
|
3574 |
+
msgstr ""
|
3575 |
+
|
3576 |
+
#: inc/class-page-settings.php:194
|
3577 |
+
msgid "Maximum log files"
|
3578 |
+
msgstr ""
|
3579 |
+
|
3580 |
+
#: inc/class-page-settings.php:197
|
3581 |
+
msgid "Maximum log files in folder."
|
3582 |
+
msgstr ""
|
3583 |
+
|
3584 |
+
#: inc/class-page-settings.php:201 inc/class-page-settings.php:204
|
3585 |
+
msgid "Compression"
|
3586 |
+
msgstr ""
|
3587 |
+
|
3588 |
+
#: inc/class-page-settings.php:207
|
3589 |
+
msgid "Compress log files with GZip."
|
3590 |
+
msgstr ""
|
3591 |
+
|
3592 |
+
#: inc/class-page-settings.php:213 inc/class-page-settings.php:216
|
3593 |
+
msgid "Logging Level"
|
3594 |
+
msgstr ""
|
3595 |
+
|
3596 |
+
#: inc/class-page-settings.php:219
|
3597 |
+
msgid "Normal (translated)"
|
3598 |
+
msgstr ""
|
3599 |
+
|
3600 |
+
#: inc/class-page-settings.php:220
|
3601 |
+
msgid "Normal (not translated)"
|
3602 |
+
msgstr ""
|
3603 |
+
|
3604 |
+
#: inc/class-page-settings.php:221
|
3605 |
+
msgid "Debug (translated)"
|
3606 |
+
msgstr ""
|
3607 |
+
|
3608 |
+
#: inc/class-page-settings.php:222
|
3609 |
+
msgid "Debug (not translated)"
|
3610 |
+
msgstr ""
|
3611 |
+
|
3612 |
+
#: inc/class-page-settings.php:225
|
3613 |
+
msgid "Debug log has much more informations than normal logs. It is for support and should be handled carefully. For support is the best to use a not translated log file. Usage of not translated logs can reduce the PHP memory usage too."
|
3614 |
+
msgstr ""
|
3615 |
+
|
3616 |
+
#: inc/class-page-settings.php:234
|
3617 |
+
msgid "There are a couple of general options for backup jobs. Set them here."
|
3618 |
+
msgstr ""
|
3619 |
+
|
3620 |
+
#: inc/class-page-settings.php:237
|
3621 |
+
msgid "Maximum number of retries for job steps"
|
3622 |
+
msgstr ""
|
3623 |
+
|
3624 |
+
#: inc/class-page-settings.php:243
|
3625 |
+
msgid "Maximum script execution time"
|
3626 |
+
msgstr ""
|
3627 |
+
|
3628 |
+
#: inc/class-page-settings.php:246
|
3629 |
+
msgid "Maximum PHP Script execution time"
|
3630 |
+
msgstr ""
|
3631 |
+
|
3632 |
+
#: inc/class-page-settings.php:249
|
3633 |
+
msgid "seconds."
|
3634 |
+
msgstr ""
|
3635 |
+
|
3636 |
+
#: inc/class-page-settings.php:250
|
3637 |
+
msgid "Job will restart before hitting maximum execution time. Restarts will be disabled on CLI usage. If <code>ALTERNATE_WP_CRON</code> has been defined, WordPress Cron will be used for restarts, so it can take a while. 0 means no maximum."
|
3638 |
+
msgstr ""
|
3639 |
+
|
3640 |
+
#: inc/class-page-settings.php:257
|
3641 |
+
msgid "Key to start jobs externally with an URL"
|
3642 |
+
msgstr ""
|
3643 |
+
|
3644 |
+
#: inc/class-page-settings.php:261
|
3645 |
+
msgid "Will be used to protect job starts from unauthorized person."
|
3646 |
+
msgstr ""
|
3647 |
+
|
3648 |
+
#: inc/class-page-settings.php:265 inc/class-page-settings.php:268
|
3649 |
+
msgid "Reduce server load"
|
3650 |
+
msgstr ""
|
3651 |
+
|
3652 |
+
#: inc/class-page-settings.php:271
|
3653 |
+
msgid "disabled"
|
3654 |
+
msgstr ""
|
3655 |
+
|
3656 |
+
#: inc/class-page-settings.php:272
|
3657 |
+
msgid "minimum"
|
3658 |
+
msgstr ""
|
3659 |
+
|
3660 |
+
#: inc/class-page-settings.php:273
|
3661 |
+
msgid "medium"
|
3662 |
+
msgstr ""
|
3663 |
+
|
3664 |
+
#: inc/class-page-settings.php:274
|
3665 |
+
msgid "maximum"
|
3666 |
+
msgstr ""
|
3667 |
+
|
3668 |
+
#: inc/class-page-settings.php:277
|
3669 |
+
msgid "This adds short pauses to the process. Can be used to reduce the CPU load."
|
3670 |
+
msgstr ""
|
3671 |
+
|
3672 |
+
#: inc/class-page-settings.php:282
|
3673 |
+
msgid "Empty output on working"
|
3674 |
+
msgstr ""
|
3675 |
+
|
3676 |
+
#: inc/class-page-settings.php:285 inc/class-page-settings.php:288
|
3677 |
+
msgid "Enable an empty Output on backup working."
|
3678 |
+
msgstr ""
|
3679 |
+
|
3680 |
+
#: inc/class-page-settings.php:290
|
3681 |
+
msgid "This do an empty output on job working. This can help in some situations or can brake the working. You must test it."
|
3682 |
+
msgstr ""
|
3683 |
+
|
3684 |
+
#: inc/class-page-settings.php:300
|
3685 |
+
#, php-format
|
3686 |
+
msgid "Authentication for <code>%s</code>"
|
3687 |
+
msgstr ""
|
3688 |
+
|
3689 |
+
#: inc/class-page-settings.php:301
|
3690 |
+
msgid "If you protected your blog with HTTP basic authentication (.htaccess), or you use a Plugin to secure wp-cron.php, then use the authentication methods below."
|
3691 |
+
msgstr ""
|
3692 |
+
|
3693 |
+
#: inc/class-page-settings.php:307 inc/class-page-settings.php:310
|
3694 |
+
msgid "Authentication method"
|
3695 |
+
msgstr ""
|
3696 |
+
|
3697 |
+
#: inc/class-page-settings.php:314
|
3698 |
+
msgid "Basic auth"
|
3699 |
+
msgstr ""
|
3700 |
+
|
3701 |
+
#: inc/class-page-settings.php:315
|
3702 |
+
msgid "WordPress User"
|
3703 |
+
msgstr ""
|
3704 |
+
|
3705 |
+
#: inc/class-page-settings.php:316
|
3706 |
+
msgid "Query argument"
|
3707 |
+
msgstr ""
|
3708 |
+
|
3709 |
+
#: inc/class-page-settings.php:323
|
3710 |
+
msgid "Basic Auth Username:"
|
3711 |
+
msgstr ""
|
3712 |
+
|
3713 |
+
#: inc/class-page-settings.php:329
|
3714 |
+
msgid "Basic Auth Password:"
|
3715 |
+
msgstr ""
|
3716 |
+
|
3717 |
+
#: inc/class-page-settings.php:334 inc/class-page-settings.php:337
|
3718 |
+
msgid "Select WordPress User"
|
3719 |
+
msgstr ""
|
3720 |
+
|
3721 |
+
#: inc/class-page-settings.php:353
|
3722 |
+
msgid "Query arg key=value:"
|
3723 |
+
msgstr ""
|
3724 |
+
|
3725 |
+
#: inc/class-page-settings.php:372 inc/class-page-settings.php:373
|
3726 |
+
msgid "Setting"
|
3727 |
+
msgstr ""
|
3728 |
+
|
3729 |
+
#: inc/class-page-settings.php:372 inc/class-page-settings.php:373
|
3730 |
+
msgid "Value"
|
3731 |
+
msgstr ""
|
3732 |
+
|
3733 |
+
#: inc/class-page-settings.php:374
|
3734 |
+
msgid "WordPress version"
|
3735 |
+
msgstr ""
|
3736 |
+
|
3737 |
+
#: inc/class-page-settings.php:376
|
3738 |
+
msgid "BackWPup version"
|
3739 |
+
msgstr ""
|
3740 |
+
|
3741 |
+
#: inc/class-page-settings.php:376
|
3742 |
+
msgid "Get pro."
|
3743 |
+
msgstr ""
|
3744 |
+
|
3745 |
+
#: inc/class-page-settings.php:378
|
3746 |
+
msgid "BackWPup Pro version"
|
3747 |
+
msgstr ""
|
3748 |
+
|
3749 |
+
#: inc/class-page-settings.php:386
|
3750 |
+
msgid "PHP version"
|
3751 |
+
msgstr ""
|
3752 |
+
|
3753 |
+
#: inc/class-page-settings.php:387
|
3754 |
+
msgid "MySQL version"
|
3755 |
+
msgstr ""
|
3756 |
+
|
3757 |
+
#: inc/class-page-settings.php:390 inc/class-page-settings.php:394
|
3758 |
+
msgid "cURL version"
|
3759 |
+
msgstr ""
|
3760 |
+
|
3761 |
+
#: inc/class-page-settings.php:391
|
3762 |
+
msgid "cURL SSL version"
|
3763 |
+
msgstr ""
|
3764 |
+
|
3765 |
+
#: inc/class-page-settings.php:394
|
3766 |
+
msgid "unavailable"
|
3767 |
+
msgstr ""
|
3768 |
+
|
3769 |
+
#: inc/class-page-settings.php:396
|
3770 |
+
msgid "WP-Cron url:"
|
3771 |
+
msgstr ""
|
3772 |
+
|
3773 |
+
#: inc/class-page-settings.php:398
|
3774 |
+
msgid "Server self connect:"
|
3775 |
+
msgstr ""
|
3776 |
+
|
3777 |
+
#: inc/class-page-settings.php:403
|
3778 |
+
msgid "<strong>Not expected HTTP response:</strong><br>"
|
3779 |
+
msgstr ""
|
3780 |
+
|
3781 |
+
#: inc/class-page-settings.php:405
|
3782 |
+
#, php-format
|
3783 |
+
msgid "WP Http Error: <code>%s</code>"
|
3784 |
+
msgstr ""
|
3785 |
+
|
3786 |
+
#: inc/class-page-settings.php:407
|
3787 |
+
#, php-format
|
3788 |
+
msgid "Status-Code: <code>%d</code>"
|
3789 |
+
msgstr ""
|
3790 |
+
|
3791 |
+
#: inc/class-page-settings.php:415
|
3792 |
+
#, php-format
|
3793 |
+
msgid "Content: <code>%s</code>"
|
3794 |
+
msgstr ""
|
3795 |
+
|
3796 |
+
#: inc/class-page-settings.php:419
|
3797 |
+
msgid "Response Test O.K."
|
3798 |
+
msgstr ""
|
3799 |
+
|
3800 |
+
#: inc/class-page-settings.php:423
|
3801 |
+
msgid "Temp folder:"
|
3802 |
+
msgstr ""
|
3803 |
+
|
3804 |
+
#: inc/class-page-settings.php:425
|
3805 |
+
#, php-format
|
3806 |
+
msgid "Temp folder %s doesn't exist."
|
3807 |
+
msgstr ""
|
3808 |
+
|
3809 |
+
#: inc/class-page-settings.php:427
|
3810 |
+
#, php-format
|
3811 |
+
msgid "Temporary folder %s is not writable."
|
3812 |
+
msgstr ""
|
3813 |
+
|
3814 |
+
#: inc/class-page-settings.php:434
|
3815 |
+
msgid "Log folder:"
|
3816 |
+
msgstr ""
|
3817 |
+
|
3818 |
+
#: inc/class-page-settings.php:436
|
3819 |
+
#, php-format
|
3820 |
+
msgid "Logs folder %s not exist."
|
3821 |
+
msgstr ""
|
3822 |
+
|
3823 |
+
#: inc/class-page-settings.php:438
|
3824 |
+
#, php-format
|
3825 |
+
msgid "Log folder %s is not writable."
|
3826 |
+
msgstr ""
|
3827 |
+
|
3828 |
+
#: inc/class-page-settings.php:443
|
3829 |
+
msgid "Server"
|
3830 |
+
msgstr ""
|
3831 |
+
|
3832 |
+
#: inc/class-page-settings.php:444
|
3833 |
+
msgid "Operating System"
|
3834 |
+
msgstr ""
|
3835 |
+
|
3836 |
+
#: inc/class-page-settings.php:445
|
3837 |
+
msgid "PHP SAPI"
|
3838 |
+
msgstr ""
|
3839 |
+
|
3840 |
+
#: inc/class-page-settings.php:446
|
3841 |
+
msgid "Function Disabled"
|
3842 |
+
msgstr ""
|
3843 |
+
|
3844 |
+
#: inc/class-page-settings.php:450
|
3845 |
+
msgid "Current PHP user"
|
3846 |
+
msgstr ""
|
3847 |
+
|
3848 |
+
#: inc/class-page-settings.php:451
|
3849 |
+
msgid "Maximum execution time"
|
3850 |
+
msgstr ""
|
3851 |
+
|
3852 |
+
#: inc/class-page-settings.php:453 inc/class-page-settings.php:455
|
3853 |
+
msgid "Alternative WP Cron"
|
3854 |
+
msgstr ""
|
3855 |
+
|
3856 |
+
#: inc/class-page-settings.php:453 inc/class-page-settings.php:457
|
3857 |
+
msgid "On"
|
3858 |
+
msgstr ""
|
3859 |
+
|
3860 |
+
#: inc/class-page-settings.php:455 inc/class-page-settings.php:459
|
3861 |
+
msgid "Off"
|
3862 |
+
msgstr ""
|
3863 |
+
|
3864 |
+
#: inc/class-page-settings.php:457 inc/class-page-settings.php:459
|
3865 |
+
msgid "Disabled WP Cron"
|
3866 |
+
msgstr ""
|
3867 |
+
|
3868 |
+
#: inc/class-page-settings.php:461 inc/class-page-settings.php:463
|
3869 |
+
msgid "CHMOD Dir"
|
3870 |
+
msgstr ""
|
3871 |
+
|
3872 |
+
#: inc/class-page-settings.php:465
|
3873 |
+
msgid "Server Time"
|
3874 |
+
msgstr ""
|
3875 |
+
|
3876 |
+
#: inc/class-page-settings.php:466
|
3877 |
+
msgid "Blog Time"
|
3878 |
+
msgstr ""
|
3879 |
+
|
3880 |
+
#: inc/class-page-settings.php:467
|
3881 |
+
msgid "Blog Timezone"
|
3882 |
+
msgstr ""
|
3883 |
+
|
3884 |
+
#: inc/class-page-settings.php:468
|
3885 |
+
msgid "Blog Time offset"
|
3886 |
+
msgstr ""
|
3887 |
+
|
3888 |
+
#: inc/class-page-settings.php:468
|
3889 |
+
#, php-format
|
3890 |
+
msgid "%s hours"
|
3891 |
+
msgstr ""
|
3892 |
+
|
3893 |
+
#: inc/class-page-settings.php:469
|
3894 |
+
msgid "Blog language"
|
3895 |
+
msgstr ""
|
3896 |
+
|
3897 |
+
#: inc/class-page-settings.php:470
|
3898 |
+
msgid "MySQL Client encoding"
|
3899 |
+
msgstr ""
|
3900 |
+
|
3901 |
+
#: inc/class-page-settings.php:473
|
3902 |
+
msgid "Blog charset"
|
3903 |
+
msgstr ""
|
3904 |
+
|
3905 |
+
#: inc/class-page-settings.php:474
|
3906 |
+
msgid "PHP Memory limit"
|
3907 |
+
msgstr ""
|
3908 |
+
|
3909 |
+
#: inc/class-page-settings.php:475
|
3910 |
+
msgid "WP memory limit"
|
3911 |
+
msgstr ""
|
3912 |
+
|
3913 |
+
#: inc/class-page-settings.php:476
|
3914 |
+
msgid "WP maximum memory limit"
|
3915 |
+
msgstr ""
|
3916 |
+
|
3917 |
+
#: inc/class-page-settings.php:477
|
3918 |
+
msgid "Memory in use"
|
3919 |
+
msgstr ""
|
3920 |
+
|
3921 |
+
#: inc/class-page-settings.php:482
|
3922 |
+
msgid "Disabled PHP Functions:"
|
3923 |
+
msgstr ""
|
3924 |
+
|
3925 |
+
#: inc/class-page-settings.php:487
|
3926 |
+
msgid "Loaded PHP Extensions:"
|
3927 |
+
msgstr ""
|
3928 |
+
|
3929 |
+
#: inc/class-page-settings.php:499
|
3930 |
+
msgid "Save Changes"
|
3931 |
+
msgstr ""
|
3932 |
+
|
3933 |
+
#: inc/class-page-settings.php:501
|
3934 |
+
msgid "Reset all settings to default"
|
3935 |
+
msgstr ""
|
3936 |
+
|
3937 |
+
#: inc/class-php-admin-notice.php:119
|
3938 |
+
msgid "With the upcoming major release, BackWPup will be requiring PHP version 5.3 or higher."
|
3939 |
+
msgstr ""
|
3940 |
+
|
3941 |
+
#: inc/class-php-admin-notice.php:121
|
3942 |
+
msgid "Currently, you are running PHP version 5.2."
|
3943 |
+
msgstr ""
|
3944 |
+
|
3945 |
+
#: inc/class-php-admin-notice.php:123 inc/class-php-admin-notice.php:158
|
3946 |
+
msgid "Please urgently read here!"
|
3947 |
+
msgstr ""
|
3948 |
+
|
3949 |
+
#: inc/class-php-admin-notice.php:128
|
3950 |
+
msgid "Don't show again."
|
3951 |
+
msgstr ""
|
3952 |
+
|
3953 |
+
#: inc/class-php-admin-notice.php:160
|
3954 |
+
msgid "BackWPup has determined, your installation is still running on the old PHP 5.2 version."
|
3955 |
+
msgstr ""
|
3956 |
+
|
3957 |
+
#: inc/class-php-admin-notice.php:163
|
3958 |
+
msgid "In order to ensure a fast and secure development for BackWPup, we will most likely not support PHP version 5.2 in our next version."
|
3959 |
+
msgstr ""
|
3960 |
+
|
3961 |
+
#: inc/class-php-admin-notice.php:164
|
3962 |
+
msgid "No need to worry, your host can update your PHP version relatively quickly and without any problems."
|
3963 |
+
msgstr ""
|
3964 |
+
|
3965 |
+
#: inc/class-php-admin-notice.php:165
|
3966 |
+
msgid "Otherwise you can continue to stay on this last version and do not update the plugin in the future!"
|
3967 |
+
msgstr ""
|
3968 |
+
|
3969 |
+
#: inc/class-php-admin-notice.php:169
|
3970 |
+
msgid "If the response from PHP 5.2 users is surprisingly high, we will eventually keep support for PHP 5.2 for a while."
|
3971 |
+
msgstr ""
|
3972 |
+
|
3973 |
+
#: inc/class-php-admin-notice.php:172
|
3974 |
+
msgid "Cheers!"
|
3975 |
+
msgstr ""
|
3976 |
+
|
3977 |
+
#: inc/class-php-admin-notice.php:173
|
3978 |
+
msgid "Your BackWPup Team!"
|
3979 |
+
msgstr ""
|
3980 |
+
|
3981 |
+
#. Translators: This is the anchor text for an HTML link pointing to BackWPup contact page
|
3982 |
+
#: inc/class-php-admin-notice.php:201
|
3983 |
+
msgid "contact us"
|
3984 |
+
msgstr ""
|
3985 |
+
|
3986 |
+
#. Translators: %s is replaced by an HTML link with text "contact us" pointing to BackWPup contact page
|
3987 |
+
#: inc/class-php-admin-notice.php:203
|
3988 |
+
#, php-format
|
3989 |
+
msgid "If you would like to have PHP 5.2 supported, please %s."
|
3990 |
+
msgstr ""
|
3991 |
+
|
3992 |
+
#: inc/class-php-admin-notice.php:204
|
3993 |
+
msgid "https://backwpup.com/php52/"
|
3994 |
+
msgstr ""
|
3995 |
+
|
3996 |
+
#: inc/class-wp-cli.php:23
|
3997 |
+
msgid "A job is already running."
|
3998 |
+
msgstr ""
|
3999 |
+
|
4000 |
+
#: inc/class-wp-cli.php:35
|
4001 |
+
msgid "No job ID specified!"
|
4002 |
+
msgstr ""
|
4003 |
+
|
4004 |
+
#: inc/class-wp-cli.php:41
|
4005 |
+
msgid "Job ID does not exist!"
|
4006 |
+
msgstr ""
|
4007 |
+
|
4008 |
+
#: inc/class-wp-cli.php:54
|
4009 |
+
msgid "Nothing to abort!"
|
4010 |
+
msgstr ""
|
4011 |
+
|
4012 |
+
#: inc/class-wp-cli.php:105
|
4013 |
+
msgid "No job running"
|
4014 |
+
msgstr ""
|
4015 |
+
|
4016 |
+
#: inc/pro/class-destination-dropbox.php:24
|
4017 |
+
msgid "Auth Code:"
|
4018 |
+
msgstr ""
|
4019 |
+
|
4020 |
+
#: inc/pro/class-destination-dropbox.php:27
|
4021 |
+
msgid "Get auth code"
|
4022 |
+
msgstr ""
|
4023 |
+
|
4024 |
+
#: inc/pro/class-destination-dropbox.php:34
|
4025 |
+
#: inc/pro/class-destination-gdrive.php:293
|
4026 |
+
#: inc/pro/class-destination-gdrive.php:298
|
4027 |
+
#: inc/pro/class-destination-sugarsync.php:30
|
4028 |
+
msgid "Login:"
|
4029 |
+
msgstr ""
|
4030 |
+
|
4031 |
+
#: inc/pro/class-destination-dropbox.php:38
|
4032 |
+
#: inc/pro/class-destination-gdrive.php:305
|
4033 |
+
#: inc/pro/class-destination-sugarsync.php:56
|
4034 |
+
msgid "Folder:"
|
4035 |
+
msgstr ""
|
4036 |
+
|
4037 |
+
#: inc/pro/class-destination-dropbox.php:118
|
4038 |
+
#, php-format
|
4039 |
+
msgid "%d. Try to sync files to Dropbox …"
|
4040 |
+
msgstr ""
|
4041 |
+
|
4042 |
+
#: inc/pro/class-destination-dropbox.php:158
|
4043 |
+
msgid "Retrieving file list from Dropbox"
|
4044 |
+
msgstr ""
|
4045 |
+
|
4046 |
+
#: inc/pro/class-destination-dropbox.php:172
|
4047 |
+
msgid "Upload changed files to Dropbox"
|
4048 |
+
msgstr ""
|
4049 |
+
|
4050 |
+
#: inc/pro/class-destination-dropbox.php:194
|
4051 |
+
#, php-format
|
4052 |
+
msgid "File %s uploaded to Dropbox"
|
4053 |
+
msgstr ""
|
4054 |
+
|
4055 |
+
#: inc/pro/class-destination-dropbox.php:221
|
4056 |
+
#, php-format
|
4057 |
+
msgid "Extra file %s uploaded to Dropbox"
|
4058 |
+
msgstr ""
|
4059 |
+
|
4060 |
+
#: inc/pro/class-destination-dropbox.php:230
|
4061 |
+
msgid "Delete not existing files from Dropbox"
|
4062 |
+
msgstr ""
|
4063 |
+
|
4064 |
+
#: inc/pro/class-destination-dropbox.php:237
|
4065 |
+
#, php-format
|
4066 |
+
msgid "Folder %s deleted from Dropbox"
|
4067 |
+
msgstr ""
|
4068 |
+
|
4069 |
+
#: inc/pro/class-destination-dropbox.php:255
|
4070 |
+
#, php-format
|
4071 |
+
msgid "File %s deleted from Dropbox"
|
4072 |
+
msgstr ""
|
4073 |
+
|
4074 |
+
#: inc/pro/class-destination-folder.php:19
|
4075 |
+
msgid "Absolute path to folder for backup files:"
|
4076 |
+
msgstr ""
|
4077 |
+
|
4078 |
+
#: inc/pro/class-destination-folder.php:41
|
4079 |
+
#: inc/pro/class-destination-gdrive.php:320
|
4080 |
+
msgid "Oldest files will be deleted first."
|
4081 |
+
msgstr ""
|
4082 |
+
|
4083 |
+
#: inc/pro/class-destination-folder.php:87
|
4084 |
+
#, php-format
|
4085 |
+
msgid "%d. Try to sync files to folder …"
|
4086 |
+
msgstr ""
|
4087 |
+
|
4088 |
+
#: inc/pro/class-destination-folder.php:91
|
4089 |
+
msgid "Retrieving file list from folder"
|
4090 |
+
msgstr ""
|
4091 |
+
|
4092 |
+
#: inc/pro/class-destination-folder.php:97
|
4093 |
+
msgid "Copy changed files to folder"
|
4094 |
+
msgstr ""
|
4095 |
+
|
4096 |
+
#: inc/pro/class-destination-folder.php:110
|
4097 |
+
#, php-format
|
4098 |
+
msgid "File %s copied"
|
4099 |
+
msgstr ""
|
4100 |
+
|
4101 |
+
#: inc/pro/class-destination-folder.php:123
|
4102 |
+
msgid "Delete not existing files from folder"
|
4103 |
+
msgstr ""
|
4104 |
+
|
4105 |
+
#: inc/pro/class-destination-folder.php:131
|
4106 |
+
#, php-format
|
4107 |
+
msgid "Extra file %s copied"
|
4108 |
+
msgstr ""
|
4109 |
+
|
4110 |
+
#: inc/pro/class-destination-folder.php:147
|
4111 |
+
#, php-format
|
4112 |
+
msgid "File %s deleted from folder"
|
4113 |
+
msgstr ""
|
4114 |
+
|
4115 |
+
#: inc/pro/class-destination-folder.php:204
|
4116 |
+
#, php-format
|
4117 |
+
msgid "Empty folder %s deleted"
|
4118 |
+
msgstr ""
|
4119 |
+
|
4120 |
+
#: inc/pro/class-destination-ftp.php:17
|
4121 |
+
msgid "Hostname:"
|
4122 |
+
msgstr ""
|
4123 |
+
|
4124 |
+
#: inc/pro/class-destination-ftp.php:25 inc/pro/class-destination-rsc.php:23
|
4125 |
+
msgid "Username:"
|
4126 |
+
msgstr ""
|
4127 |
+
|
4128 |
+
#: inc/pro/class-destination-ftp.php:33
|
4129 |
+
msgid "Folder on server:"
|
4130 |
+
msgstr ""
|
4131 |
+
|
4132 |
+
#: inc/pro/class-destination-ftp.php:42
|
4133 |
+
#: inc/pro/class-destination-sugarsync.php:60
|
4134 |
+
msgid "Maximum number of backup files to keep in folder:"
|
4135 |
+
msgstr ""
|
4136 |
+
|
4137 |
+
#: inc/pro/class-destination-gdrive.php:41
|
4138 |
+
#: inc/pro/class-destination-gdrive.php:281
|
4139 |
+
#, php-format
|
4140 |
+
msgid "Looks like you havent set up any API keys yet. Head over to <a href=\"%s\">Settings | API-Keys</a> and get Google Drive all set up, then come back here."
|
4141 |
+
msgstr ""
|
4142 |
+
|
4143 |
+
#: inc/pro/class-destination-gdrive.php:55
|
4144 |
+
#: inc/pro/class-destination-gdrive.php:296
|
4145 |
+
msgid "Authenticate"
|
4146 |
+
msgstr ""
|
4147 |
+
|
4148 |
+
#: inc/pro/class-destination-gdrive.php:62
|
4149 |
+
#: inc/pro/class-destination-gdrive.php:301
|
4150 |
+
msgid "Reauthenticate"
|
4151 |
+
msgstr ""
|
4152 |
+
|
4153 |
+
#: inc/pro/class-destination-gdrive.php:73
|
4154 |
+
msgid "Folder in Google Drive"
|
4155 |
+
msgstr ""
|
4156 |
+
|
4157 |
+
#: inc/pro/class-destination-gdrive.php:109
|
4158 |
+
msgid "Consider using trash to delete files. If trash is not enabled, files will be deleted permanently."
|
4159 |
+
msgstr ""
|
4160 |
+
|
4161 |
+
#: inc/pro/class-destination-gdrive.php:166
|
4162 |
+
#: inc/pro/class-destination-gdrive.php:190
|
4163 |
+
msgid "GDrive: Authenticated."
|
4164 |
+
msgstr ""
|
4165 |
+
|
4166 |
+
#: inc/pro/class-destination-gdrive.php:170
|
4167 |
+
#: inc/pro/class-destination-gdrive.php:194
|
4168 |
+
msgid "GDrive: No refresh token received. Try to Authenticate again!"
|
4169 |
+
msgstr ""
|
4170 |
+
|
4171 |
+
#: inc/pro/class-destination-gdrive.php:176
|
4172 |
+
#: inc/pro/class-destination-gdrive.php:198
|
4173 |
+
#: inc/pro/class-destination-gdrive.php:217
|
4174 |
+
#: inc/pro/class-destination-gdrive.php:236
|
4175 |
+
#, php-format
|
4176 |
+
msgid "GDrive API: %s"
|
4177 |
+
msgstr ""
|
4178 |
+
|
4179 |
+
#: inc/pro/class-destination-gdrive.php:439
|
4180 |
+
#, php-format
|
4181 |
+
msgid "%d. Try to send backup file to Google Drive …"
|
4182 |
+
msgstr ""
|
4183 |
+
|
4184 |
+
#: inc/pro/class-destination-gdrive.php:467
|
4185 |
+
msgid "Uploading to Google Drive …"
|
4186 |
+
msgstr ""
|
4187 |
+
|
4188 |
+
#: inc/pro/class-destination-gdrive.php:529
|
4189 |
+
msgid "Could not create resumable file transfer to Google Drive"
|
4190 |
+
msgstr ""
|
4191 |
+
|
4192 |
+
#: inc/pro/class-destination-gdrive.php:573
|
4193 |
+
msgid "Can not resume transfer backup to Google Drive!"
|
4194 |
+
msgstr ""
|
4195 |
+
|
4196 |
+
#: inc/pro/class-destination-gdrive.php:640
|
4197 |
+
#, php-format
|
4198 |
+
msgid "Error transfering file chunks to %s."
|
4199 |
+
msgstr ""
|
4200 |
+
|
4201 |
+
#: inc/pro/class-destination-gdrive.php:641
|
4202 |
+
#: inc/pro/class-destination-gdrive.php:667
|
4203 |
+
msgid "Google Drive"
|
4204 |
+
msgstr ""
|
4205 |
+
|
4206 |
+
#: inc/pro/class-destination-gdrive.php:715
|
4207 |
+
#, php-format
|
4208 |
+
msgid "One file deleted from Google Drive"
|
4209 |
+
msgid_plural "%d files deleted on Google Drive"
|
4210 |
+
msgstr[0] ""
|
4211 |
+
msgstr[1] ""
|
4212 |
+
|
4213 |
+
#: inc/pro/class-destination-gdrive.php:721
|
4214 |
+
#: inc/pro/class-destination-gdrive.php:1027
|
4215 |
+
#, php-format
|
4216 |
+
msgid "Google Drive API: %s"
|
4217 |
+
msgstr ""
|
4218 |
+
|
4219 |
+
#: inc/pro/class-destination-gdrive.php:848
|
4220 |
+
#, php-format
|
4221 |
+
msgid "%d. Try to sync files to Google Drive …"
|
4222 |
+
msgstr ""
|
4223 |
+
|
4224 |
+
#: inc/pro/class-destination-gdrive.php:873
|
4225 |
+
msgid "Syncing changed files to Google Drive"
|
4226 |
+
msgstr ""
|
4227 |
+
|
4228 |
+
#: inc/pro/class-destination-gdrive.php:903
|
4229 |
+
#, php-format
|
4230 |
+
msgid "File %s updated on Google Drive"
|
4231 |
+
msgstr ""
|
4232 |
+
|
4233 |
+
#: inc/pro/class-destination-gdrive.php:924
|
4234 |
+
#, php-format
|
4235 |
+
msgid "File %s uploaded to Google Drive"
|
4236 |
+
msgstr ""
|
4237 |
+
|
4238 |
+
#: inc/pro/class-destination-gdrive.php:945
|
4239 |
+
#, php-format
|
4240 |
+
msgid "File %s moved to trash in Google Drive"
|
4241 |
+
msgstr ""
|
4242 |
+
|
4243 |
+
#: inc/pro/class-destination-gdrive.php:948
|
4244 |
+
#, php-format
|
4245 |
+
msgid "File %s deleted permanently in Google Drive"
|
4246 |
+
msgstr ""
|
4247 |
+
|
4248 |
+
#: inc/pro/class-destination-gdrive.php:994
|
4249 |
+
#, php-format
|
4250 |
+
msgid "Extra file %s updated on Google Drive"
|
4251 |
+
msgstr ""
|
4252 |
+
|
4253 |
+
#: inc/pro/class-destination-gdrive.php:1016
|
4254 |
+
#, php-format
|
4255 |
+
msgid "Extra file %s uploaded to Google Drive"
|
4256 |
+
msgstr ""
|
4257 |
+
|
4258 |
+
#: inc/pro/class-destination-glacier.php:27
|
4259 |
+
msgid "Amazon Glacier"
|
4260 |
+
msgstr ""
|
4261 |
+
|
4262 |
+
#: inc/pro/class-destination-glacier.php:31
|
4263 |
+
msgid "Select a region:"
|
4264 |
+
msgstr ""
|
4265 |
+
|
4266 |
+
#: inc/pro/class-destination-glacier.php:33
|
4267 |
+
#: inc/pro/class-destination-glacier.php:234
|
4268 |
+
msgid "Amazon Glacier Region"
|
4269 |
+
msgstr ""
|
4270 |
+
|
4271 |
+
#: inc/pro/class-destination-glacier.php:34
|
4272 |
+
#: inc/pro/class-destination-glacier.php:235
|
4273 |
+
msgid "US Standard"
|
4274 |
+
msgstr ""
|
4275 |
+
|
4276 |
+
#: inc/pro/class-destination-glacier.php:35
|
4277 |
+
#: inc/pro/class-destination-glacier.php:236
|
4278 |
+
msgid "US West (Northern California)"
|
4279 |
+
msgstr ""
|
4280 |
+
|
4281 |
+
#: inc/pro/class-destination-glacier.php:36
|
4282 |
+
#: inc/pro/class-destination-glacier.php:237
|
4283 |
+
msgid "US West (Oregon)"
|
4284 |
+
msgstr ""
|
4285 |
+
|
4286 |
+
#: inc/pro/class-destination-glacier.php:37
|
4287 |
+
#: inc/pro/class-destination-glacier.php:238
|
4288 |
+
msgid "EU (Ireland)"
|
4289 |
+
msgstr ""
|
4290 |
+
|
4291 |
+
#: inc/pro/class-destination-glacier.php:38
|
4292 |
+
#: inc/pro/class-destination-glacier.php:239
|
4293 |
+
msgid "EU (Germany)"
|
4294 |
+
msgstr ""
|
4295 |
+
|
4296 |
+
#: inc/pro/class-destination-glacier.php:39
|
4297 |
+
#: inc/pro/class-destination-glacier.php:240
|
4298 |
+
msgid "Asia Pacific (Tokyo)"
|
4299 |
+
msgstr ""
|
4300 |
+
|
4301 |
+
#: inc/pro/class-destination-glacier.php:40
|
4302 |
+
#: inc/pro/class-destination-glacier.php:241
|
4303 |
+
msgid "Asia Pacific (Seoul)"
|
4304 |
+
msgstr ""
|
4305 |
+
|
4306 |
+
#: inc/pro/class-destination-glacier.php:41
|
4307 |
+
msgid "Asia Pacific (Mumbai)"
|
4308 |
+
msgstr ""
|
4309 |
+
|
4310 |
+
#: inc/pro/class-destination-glacier.php:42
|
4311 |
+
#: inc/pro/class-destination-glacier.php:243
|
4312 |
+
msgid "Asia Pacific (Sydney)"
|
4313 |
+
msgstr ""
|
4314 |
+
|
4315 |
+
#: inc/pro/class-destination-glacier.php:43
|
4316 |
+
#: inc/pro/class-destination-glacier.php:244
|
4317 |
+
msgid "South America (Sao Paulo)"
|
4318 |
+
msgstr ""
|
4319 |
+
|
4320 |
+
#: inc/pro/class-destination-glacier.php:44
|
4321 |
+
#: inc/pro/class-destination-glacier.php:245
|
4322 |
+
msgid "China (Beijing)"
|
4323 |
+
msgstr ""
|
4324 |
+
|
4325 |
+
#: inc/pro/class-destination-glacier.php:50
|
4326 |
+
msgid "Amazon Access Keys"
|
4327 |
+
msgstr ""
|
4328 |
+
|
4329 |
+
#: inc/pro/class-destination-glacier.php:69
|
4330 |
+
msgid "Vault"
|
4331 |
+
msgstr ""
|
4332 |
+
|
4333 |
+
#: inc/pro/class-destination-glacier.php:73
|
4334 |
+
msgid "Vault selection"
|
4335 |
+
msgstr ""
|
4336 |
+
|
4337 |
+
#: inc/pro/class-destination-glacier.php:85
|
4338 |
+
msgid "Create a new vault"
|
4339 |
+
msgstr ""
|
4340 |
+
|
4341 |
+
#: inc/pro/class-destination-glacier.php:92
|
4342 |
+
msgid "Glacier Backup settings"
|
4343 |
+
msgstr ""
|
4344 |
+
|
4345 |
+
#: inc/pro/class-destination-glacier.php:108
|
4346 |
+
#: inc/pro/class-destination-glacier.php:263
|
4347 |
+
msgid "Number of files to keep in folder. (Archives deleted before 3 months after they have been stored may cause extra costs when deleted.)"
|
4348 |
+
msgstr ""
|
4349 |
+
|
4350 |
+
#: inc/pro/class-destination-glacier.php:171
|
4351 |
+
msgid "No vault found!"
|
4352 |
+
msgstr ""
|
4353 |
+
|
4354 |
+
#: inc/pro/class-destination-glacier.php:210
|
4355 |
+
#: inc/pro/class-destination-glacier.php:298
|
4356 |
+
#, php-format
|
4357 |
+
msgid "Vault %1$s created."
|
4358 |
+
msgstr ""
|
4359 |
+
|
4360 |
+
#: inc/pro/class-destination-glacier.php:212
|
4361 |
+
#: inc/pro/class-destination-glacier.php:300
|
4362 |
+
#, php-format
|
4363 |
+
msgid "Vault %s could not be created."
|
4364 |
+
msgstr ""
|
4365 |
+
|
4366 |
+
#: inc/pro/class-destination-glacier.php:233
|
4367 |
+
msgid "Select an Amazon Glacier region:"
|
4368 |
+
msgstr ""
|
4369 |
+
|
4370 |
+
#: inc/pro/class-destination-glacier.php:242
|
4371 |
+
msgid "Asia Pacific (Singapore)"
|
4372 |
+
msgstr ""
|
4373 |
+
|
4374 |
+
#: inc/pro/class-destination-glacier.php:247
|
4375 |
+
#: inc/pro/class-destination-msazure.php:19
|
4376 |
+
#: inc/pro/class-destination-s3.php:40
|
4377 |
+
msgid "Access Key:"
|
4378 |
+
msgstr ""
|
4379 |
+
|
4380 |
+
#: inc/pro/class-destination-glacier.php:249
|
4381 |
+
#: inc/pro/class-destination-s3.php:43
|
4382 |
+
msgid "Secret Key:"
|
4383 |
+
msgstr ""
|
4384 |
+
|
4385 |
+
#: inc/pro/class-destination-glacier.php:251
|
4386 |
+
msgid "Vault:"
|
4387 |
+
msgstr ""
|
4388 |
+
|
4389 |
+
#: inc/pro/class-destination-glacier.php:260
|
4390 |
+
msgid "New Vault:"
|
4391 |
+
msgstr ""
|
4392 |
+
|
4393 |
+
#: inc/pro/class-destination-glacier.php:340
|
4394 |
+
#: inc/pro/class-destination-glacier.php:455
|
4395 |
+
#: inc/pro/class-destination-glacier.php:474
|
4396 |
+
#: inc/pro/class-destination-glacier.php:514
|
4397 |
+
#, php-format
|
4398 |
+
msgid "AWS API: %s"
|
4399 |
+
msgstr ""
|
4400 |
+
|
4401 |
+
#: inc/pro/class-destination-glacier.php:363
|
4402 |
+
#, php-format
|
4403 |
+
msgid "%d. Trying to send backup file to Amazon Glacier …"
|
4404 |
+
msgstr ""
|
4405 |
+
|
4406 |
+
#: inc/pro/class-destination-glacier.php:376
|
4407 |
+
#, php-format
|
4408 |
+
msgid "Connected to Glacier vault \"%1$s\" with %2$d archives and size of %3$d"
|
4409 |
+
msgstr ""
|
4410 |
+
|
4411 |
+
#: inc/pro/class-destination-glacier.php:378
|
4412 |
+
#, php-format
|
4413 |
+
msgid "Glacier vault \"%s\" does not exist!"
|
4414 |
+
msgstr ""
|
4415 |
+
|
4416 |
+
#: inc/pro/class-destination-glacier.php:384
|
4417 |
+
msgid "Starting upload to Amazon Glacier …"
|
4418 |
+
msgstr ""
|
4419 |
+
|
4420 |
+
#: inc/pro/class-destination-glacier.php:437
|
4421 |
+
#, php-format
|
4422 |
+
msgid "Archive ID: %s"
|
4423 |
+
msgstr ""
|
4424 |
+
|
4425 |
+
#: inc/pro/class-destination-glacier.php:448 inc/pro/class-pro.php:92
|
4426 |
+
msgid "Glacier"
|
4427 |
+
msgstr ""
|
4428 |
+
|
4429 |
+
#: inc/pro/class-destination-glacier.php:504
|
4430 |
+
#, php-format
|
4431 |
+
msgid "Cannot delete archive from %s."
|
4432 |
+
msgstr ""
|
4433 |
+
|
4434 |
+
#: inc/pro/class-destination-glacier.php:508
|
4435 |
+
#, php-format
|
4436 |
+
msgid "One file deleted on vault."
|
4437 |
+
msgid_plural "%d files deleted on vault"
|
4438 |
+
msgstr[0] ""
|
4439 |
+
msgstr[1] ""
|
4440 |
+
|
4441 |
+
#: inc/pro/class-destination-msazure.php:17
|
4442 |
+
msgid "Account Name:"
|
4443 |
+
msgstr ""
|
4444 |
+
|
4445 |
+
#: inc/pro/class-destination-msazure.php:21
|
4446 |
+
#: inc/pro/class-destination-rsc.php:38
|
4447 |
+
msgid "Container:"
|
4448 |
+
msgstr ""
|
4449 |
+
|
4450 |
+
#: inc/pro/class-destination-msazure.php:28
|
4451 |
+
#: inc/pro/class-destination-rsc.php:47
|
4452 |
+
msgid "Create container:"
|
4453 |
+
msgstr ""
|
4454 |
+
|
4455 |
+
#: inc/pro/class-destination-msazure.php:30
|
4456 |
+
#: inc/pro/class-destination-rsc.php:49
|
4457 |
+
msgid "Folder in container:"
|
4458 |
+
msgstr ""
|
4459 |
+
|
4460 |
+
#: inc/pro/class-destination-msazure.php:119
|
4461 |
+
#, php-format
|
4462 |
+
msgid "%d. Trying to sync files with Microsoft Azure (Blob) …"
|
4463 |
+
msgstr ""
|
4464 |
+
|
4465 |
+
#: inc/pro/class-destination-msazure.php:154
|
4466 |
+
msgid "Retrieving file list from MS Azure."
|
4467 |
+
msgstr ""
|
4468 |
+
|
4469 |
+
#: inc/pro/class-destination-msazure.php:170
|
4470 |
+
msgid "Upload changed files to MS Azure."
|
4471 |
+
msgstr ""
|
4472 |
+
|
4473 |
+
#: inc/pro/class-destination-msazure.php:182
|
4474 |
+
#, php-format
|
4475 |
+
msgid "File %s uploaded to MS Azure."
|
4476 |
+
msgstr ""
|
4477 |
+
|
4478 |
+
#: inc/pro/class-destination-msazure.php:208
|
4479 |
+
#, php-format
|
4480 |
+
msgid "Extra file %s uploaded to MS Azure."
|
4481 |
+
msgstr ""
|
4482 |
+
|
4483 |
+
#: inc/pro/class-destination-msazure.php:221
|
4484 |
+
msgid "Delete nonexistent files on MS Azure."
|
4485 |
+
msgstr ""
|
4486 |
+
|
4487 |
+
#: inc/pro/class-destination-msazure.php:224
|
4488 |
+
#, php-format
|
4489 |
+
msgid "File %s deleted from MS Azure."
|
4490 |
+
msgstr ""
|
4491 |
+
|
4492 |
+
#: inc/pro/class-destination-rsc.php:26
|
4493 |
+
msgid "API Key:"
|
4494 |
+
msgstr ""
|
4495 |
+
|
4496 |
+
#: inc/pro/class-destination-rsc.php:29
|
4497 |
+
msgid "Select region:"
|
4498 |
+
msgstr ""
|
4499 |
+
|
4500 |
+
#: inc/pro/class-destination-rsc.php:147
|
4501 |
+
#, php-format
|
4502 |
+
msgid "%d. Trying to sync files to Rackspace cloud …"
|
4503 |
+
msgstr ""
|
4504 |
+
|
4505 |
+
#: inc/pro/class-destination-rsc.php:167
|
4506 |
+
#, php-format
|
4507 |
+
msgid "Connected to Rackspace cloud files container %s."
|
4508 |
+
msgstr ""
|
4509 |
+
|
4510 |
+
#: inc/pro/class-destination-rsc.php:181
|
4511 |
+
msgid "Retrieving files list from Rackspace Cloud."
|
4512 |
+
msgstr ""
|
4513 |
+
|
4514 |
+
#: inc/pro/class-destination-rsc.php:212
|
4515 |
+
msgid "Upload changed files to Rackspace Cloud."
|
4516 |
+
msgstr ""
|
4517 |
+
|
4518 |
+
#: inc/pro/class-destination-rsc.php:230
|
4519 |
+
#, php-format
|
4520 |
+
msgid "File %s uploaded to Rackspace Cloud."
|
4521 |
+
msgstr ""
|
4522 |
+
|
4523 |
+
#: inc/pro/class-destination-rsc.php:263
|
4524 |
+
#, php-format
|
4525 |
+
msgid "Extra file %s uploaded to Rackspace Cloud."
|
4526 |
+
msgstr ""
|
4527 |
+
|
4528 |
+
#: inc/pro/class-destination-rsc.php:276
|
4529 |
+
msgid "Delete nonexistent files on Rackspace Cloud."
|
4530 |
+
msgstr ""
|
4531 |
+
|
4532 |
+
#: inc/pro/class-destination-rsc.php:280
|
4533 |
+
#, php-format
|
4534 |
+
msgid "File %s deleted from Rackspace Cloud."
|
4535 |
+
msgstr ""
|
4536 |
+
|
4537 |
+
#: inc/pro/class-destination-s3.php:17
|
4538 |
+
msgid "Select a S3 service:"
|
4539 |
+
msgstr ""
|
4540 |
+
|
4541 |
+
#: inc/pro/class-destination-s3.php:37
|
4542 |
+
msgid "or set an S3 Server URL:"
|
4543 |
+
msgstr ""
|
4544 |
+
|
4545 |
+
#: inc/pro/class-destination-s3.php:46
|
4546 |
+
msgid "Bucket:"
|
4547 |
+
msgstr ""
|
4548 |
+
|
4549 |
+
#: inc/pro/class-destination-s3.php:56
|
4550 |
+
msgid "New Bucket:"
|
4551 |
+
msgstr ""
|
4552 |
+
|
4553 |
+
#: inc/pro/class-destination-s3.php:58
|
4554 |
+
msgid "Folder in bucket:"
|
4555 |
+
msgstr ""
|
4556 |
+
|
4557 |
+
#: inc/pro/class-destination-s3.php:146
|
4558 |
+
#, php-format
|
4559 |
+
msgid "Bucket %1$s created in %2$s."
|
4560 |
+
msgstr ""
|
4561 |
+
|
4562 |
+
#: inc/pro/class-destination-s3.php:170
|
4563 |
+
#, php-format
|
4564 |
+
msgid "%d. Trying to sync files to S3 Service …"
|
4565 |
+
msgstr ""
|
4566 |
+
|
4567 |
+
#: inc/pro/class-destination-s3.php:204
|
4568 |
+
msgid "Retrieving file list from S3."
|
4569 |
+
msgstr ""
|
4570 |
+
|
4571 |
+
#: inc/pro/class-destination-s3.php:266
|
4572 |
+
msgid "Upload changed files to S3."
|
4573 |
+
msgstr ""
|
4574 |
+
|
4575 |
+
#: inc/pro/class-destination-s3.php:281
|
4576 |
+
#, php-format
|
4577 |
+
msgid "File %s uploaded to S3."
|
4578 |
+
msgstr ""
|
4579 |
+
|
4580 |
+
#: inc/pro/class-destination-s3.php:309
|
4581 |
+
#, php-format
|
4582 |
+
msgid "Extra file %s uploaded to S3."
|
4583 |
+
msgstr ""
|
4584 |
+
|
4585 |
+
#: inc/pro/class-destination-s3.php:322
|
4586 |
+
msgid "Delete nonexistent files on S3"
|
4587 |
+
msgstr ""
|
4588 |
+
|
4589 |
+
#: inc/pro/class-destination-s3.php:329
|
4590 |
+
#, php-format
|
4591 |
+
msgid "File %s deleted from S3."
|
4592 |
+
msgstr ""
|
4593 |
+
|
4594 |
+
#: inc/pro/class-destination-sugarsync.php:24
|
4595 |
+
#: inc/pro/class-destination-sugarsync.php:82
|
4596 |
+
msgid "Sugarsync authenticate!"
|
4597 |
+
msgstr ""
|
4598 |
+
|
4599 |
+
#: inc/pro/class-destination-sugarsync.php:34
|
4600 |
+
msgid "Root:"
|
4601 |
+
msgstr ""
|
4602 |
+
|
4603 |
+
#: inc/pro/class-export-jobs.php:12 inc/pro/class-export-jobs.php:23
|
4604 |
+
msgid "Export"
|
4605 |
+
msgstr ""
|
4606 |
+
|
4607 |
+
#: inc/pro/class-jobtype-dbcheck.php:27
|
4608 |
+
msgid "Check only WordPress Database tables"
|
4609 |
+
msgstr ""
|
4610 |
+
|
4611 |
+
#: inc/pro/class-jobtype-dbdump.php:92
|
4612 |
+
msgid "Backup only WordPress Database tables"
|
4613 |
+
msgstr ""
|
4614 |
+
|
4615 |
+
#: inc/pro/class-jobtype-dbdump.php:112
|
4616 |
+
msgid "Database connection"
|
4617 |
+
msgstr ""
|
4618 |
+
|
4619 |
+
#: inc/pro/class-jobtype-dbdump.php:116
|
4620 |
+
msgid "Use WordPress database connection."
|
4621 |
+
msgstr ""
|
4622 |
+
|
4623 |
+
#: inc/pro/class-jobtype-dbdump.php:120
|
4624 |
+
msgid "Host:"
|
4625 |
+
msgstr ""
|
4626 |
+
|
4627 |
+
#: inc/pro/class-jobtype-dbdump.php:123
|
4628 |
+
msgid "User:"
|
4629 |
+
msgstr ""
|
4630 |
+
|
4631 |
+
#: inc/pro/class-jobtype-dbdump.php:130
|
4632 |
+
msgid "Charset:"
|
4633 |
+
msgstr ""
|
4634 |
+
|
4635 |
+
#: inc/pro/class-jobtype-dbdump.php:141
|
4636 |
+
msgid "Database:"
|
4637 |
+
msgstr ""
|
4638 |
+
|
4639 |
+
#: inc/pro/class-jobtype-dbdump.php:169
|
4640 |
+
msgid "Database Backup type"
|
4641 |
+
msgstr ""
|
4642 |
+
|
4643 |
+
#: inc/pro/class-jobtype-dbdump.php:173
|
4644 |
+
msgid "SQL File (with mysqli)"
|
4645 |
+
msgstr ""
|
4646 |
+
|
4647 |
+
#: inc/pro/class-jobtype-dbdump.php:174
|
4648 |
+
msgid "SQL File (with mysqldump)"
|
4649 |
+
msgstr ""
|
4650 |
+
|
4651 |
+
#: inc/pro/class-jobtype-dbdump.php:175
|
4652 |
+
msgid "XML File (phpMyAdmin schema)"
|
4653 |
+
msgstr ""
|
4654 |
+
|
4655 |
+
#: inc/pro/class-jobtype-dbdump.php:181
|
4656 |
+
msgid "Path to <em>mysqldump</em> file"
|
4657 |
+
msgstr ""
|
4658 |
+
|
4659 |
+
#: inc/pro/class-jobtype-dbdump.php:190
|
4660 |
+
msgid "Path to mysqldump file, so a backup can be made with it. If it is correct and <em>shell_exec</em> is active, the backup will be generated with a system command. If <em>shell_exec</em> ist not active, this is disabled"
|
4661 |
+
msgstr ""
|
4662 |
+
|
4663 |
+
#: inc/pro/class-jobtype-dbdump.php:580
|
4664 |
+
#, php-format
|
4665 |
+
msgid "Added database backup \"%1$s\" with %2$s to backup file list"
|
4666 |
+
msgstr ""
|
4667 |
+
|
4668 |
+
#: inc/pro/class-jobtype-dbdump.php:601
|
4669 |
+
#, php-format
|
4670 |
+
msgid "%d. Try to backup MySQL system …"
|
4671 |
+
msgstr ""
|
4672 |
+
|
4673 |
+
#: inc/pro/class-jobtype-dbdump.php:608
|
4674 |
+
msgid "Executing of system commands not allowed. Please use backup with mysqli."
|
4675 |
+
msgstr ""
|
4676 |
+
|
4677 |
+
#: inc/pro/class-jobtype-dbdump.php:613
|
4678 |
+
#, php-format
|
4679 |
+
msgid "%s file not in open basedir of PHP."
|
4680 |
+
msgstr ""
|
4681 |
+
|
4682 |
+
#: inc/pro/class-jobtype-dbdump.php:618
|
4683 |
+
#, php-format
|
4684 |
+
msgid "%s file not found. Please correct the path for the mysqldump file."
|
4685 |
+
msgstr ""
|
4686 |
+
|
4687 |
+
#: inc/pro/class-jobtype-dbdump.php:702
|
4688 |
+
#, php-format
|
4689 |
+
msgctxt "Executed exec() command"
|
4690 |
+
msgid "CLI Exec: %s"
|
4691 |
+
msgstr ""
|
4692 |
+
|
4693 |
+
#: inc/pro/class-jobtype-dbdump.php:712
|
4694 |
+
msgid "Usage error."
|
4695 |
+
msgstr ""
|
4696 |
+
|
4697 |
+
#: inc/pro/class-jobtype-dbdump.php:713
|
4698 |
+
msgid "MySQL Server Error. This could be an issue with permissions. Try using database backup with mysqli."
|
4699 |
+
msgstr ""
|
4700 |
+
|
4701 |
+
#: inc/pro/class-jobtype-dbdump.php:714
|
4702 |
+
msgid "Error during consistency checks."
|
4703 |
+
msgstr ""
|
4704 |
+
|
4705 |
+
#: inc/pro/class-jobtype-dbdump.php:715
|
4706 |
+
msgid "Not enough memory."
|
4707 |
+
msgstr ""
|
4708 |
+
|
4709 |
+
#: inc/pro/class-jobtype-dbdump.php:716
|
4710 |
+
msgid "Error during writing of SQL backup file."
|
4711 |
+
msgstr ""
|
4712 |
+
|
4713 |
+
#: inc/pro/class-jobtype-dbdump.php:717
|
4714 |
+
msgid "Illegal table"
|
4715 |
+
msgstr ""
|
4716 |
+
|
4717 |
+
#: inc/pro/class-jobtype-dbdump.php:722
|
4718 |
+
#, php-format
|
4719 |
+
msgid "mysqldump returned: (%d) %s"
|
4720 |
+
msgstr ""
|
4721 |
+
|
4722 |
+
#: inc/pro/class-jobtype-dbdump.php:735
|
4723 |
+
msgid "Can not create mysql backup with mysqldump command"
|
4724 |
+
msgstr ""
|
4725 |
+
|
4726 |
+
#: inc/pro/class-jobtype-dbdump.php:781
|
4727 |
+
#, php-format
|
4728 |
+
msgid "%d. Try to backup database as XML …"
|
4729 |
+
msgstr ""
|
4730 |
+
|
4731 |
+
#: inc/pro/class-jobtype-dbdump.php:851
|
4732 |
+
#, php-format
|
4733 |
+
msgctxt "Database Charset"
|
4734 |
+
msgid "Cannot set DB charset to %s"
|
4735 |
+
msgstr ""
|
4736 |
+
|
4737 |
+
#: inc/pro/class-jobtype-dbdump.php:880
|
4738 |
+
msgid "No tables for XML backup"
|
4739 |
+
msgstr ""
|
4740 |
+
|
4741 |
+
#: inc/pro/class-jobtype-dbdump.php:916
|
4742 |
+
#, php-format
|
4743 |
+
msgid "Dump database create view \"%s\""
|
4744 |
+
msgstr ""
|
4745 |
+
|
4746 |
+
#: inc/pro/class-jobtype-dbdump.php:934
|
4747 |
+
#, php-format
|
4748 |
+
msgid "Backup database structure \"%s\" to XML"
|
4749 |
+
msgstr ""
|
4750 |
+
|
4751 |
+
#: inc/pro/class-jobtype-dbdump.php:976
|
4752 |
+
#, php-format
|
4753 |
+
msgid "Backup table \"%s\" data to XML"
|
4754 |
+
msgstr ""
|
4755 |
+
|
4756 |
+
#: inc/pro/class-jobtype-dbdump.php:1044
|
4757 |
+
#, php-format
|
4758 |
+
msgid "Added database XML dump \"%1$s\" with %2$s to backup file list"
|
4759 |
+
msgstr ""
|
4760 |
+
|
4761 |
+
#: inc/pro/class-jobtype-dbdump.php:1047
|
4762 |
+
msgid "Database XML backup done!"
|
4763 |
+
msgstr ""
|
4764 |
+
|
4765 |
+
#: inc/pro/class-jobtype-file.php:19
|
4766 |
+
msgid "Backup WordPress main files"
|
4767 |
+
msgstr ""
|
4768 |
+
|
4769 |
+
#: inc/pro/class-jobtype-file.php:23
|
4770 |
+
msgid "Backup blog content folder"
|
4771 |
+
msgstr ""
|
4772 |
+
|
4773 |
+
#: inc/pro/class-jobtype-file.php:27
|
4774 |
+
msgid "Backup blog plugins"
|
4775 |
+
msgstr ""
|
4776 |
+
|
4777 |
+
#: inc/pro/class-jobtype-file.php:31
|
4778 |
+
msgid "Backup blog themes"
|
4779 |
+
msgstr ""
|
4780 |
+
|
4781 |
+
#: inc/pro/class-jobtype-file.php:35
|
4782 |
+
msgid "Backup blog uploads folder"
|
4783 |
+
msgstr ""
|
4784 |
+
|
4785 |
+
#: inc/pro/class-jobtype-wpexp.php:17
|
4786 |
+
msgid "Items to export:"
|
4787 |
+
msgstr ""
|
4788 |
+
|
4789 |
+
#: inc/pro/class-jobtype-wpplugin.php:13
|
4790 |
+
msgid "Nothing to configure"
|
4791 |
+
msgstr ""
|
4792 |
+
|
4793 |
+
#: inc/pro/class-page-wizard.php:130
|
4794 |
+
msgid "No BackWPup Wizard Session found!"
|
4795 |
+
msgstr ""
|
4796 |
+
|
4797 |
+
#: inc/pro/class-page-wizard.php:143 inc/pro/class-page-wizard.php:461
|
4798 |
+
msgid "Cancel"
|
4799 |
+
msgstr ""
|
4800 |
+
|
4801 |
+
#: inc/pro/class-page-wizard.php:179 inc/pro/class-page-wizard.php:456
|
4802 |
+
#: inc/pro/class-page-wizard.php:488
|
4803 |
+
msgid "Next "
|
4804 |
+
msgstr ""
|
4805 |
+
|
4806 |
+
#: inc/pro/class-page-wizard.php:196 inc/pro/class-page-wizard.php:452
|
4807 |
+
msgid " Previous"
|
4808 |
+
msgstr ""
|
4809 |
+
|
4810 |
+
#: inc/pro/class-page-wizard.php:349
|
4811 |
+
#, php-format
|
4812 |
+
msgctxt "Plugin Name"
|
4813 |
+
msgid "%s › Wizards"
|
4814 |
+
msgstr ""
|
4815 |
+
|
4816 |
+
#: inc/pro/class-page-wizard.php:388
|
4817 |
+
#, php-format
|
4818 |
+
msgctxt "Plugin Name"
|
4819 |
+
msgid "%s Wizard:"
|
4820 |
+
msgstr ""
|
4821 |
+
|
4822 |
+
#: inc/pro/class-page-wizard.php:464
|
4823 |
+
msgid "Back to overview"
|
4824 |
+
msgstr ""
|
4825 |
+
|
4826 |
+
#: inc/pro/class-pro.php:111
|
4827 |
+
msgid "GDrive"
|
4828 |
+
msgstr ""
|
4829 |
+
|
4830 |
+
#: inc/pro/class-pro.php:164 inc/pro/class-pro.php:190
|
4831 |
+
msgid "Wizards"
|
4832 |
+
msgstr ""
|
4833 |
+
|
4834 |
+
#: inc/pro/class-settings-apikeys.php:42
|
4835 |
+
msgid "Hash key"
|
4836 |
+
msgstr ""
|
4837 |
+
|
4838 |
+
#: inc/pro/class-settings-apikeys.php:43
|
4839 |
+
msgid "Hash Key for BackWPup. It will be used to have hashes in folder and file names. It must at least 6 chars long."
|
4840 |
+
msgstr ""
|
4841 |
+
|
4842 |
+
#: inc/pro/class-settings-apikeys.php:46
|
4843 |
+
msgid "Hash key:"
|
4844 |
+
msgstr ""
|
4845 |
+
|
4846 |
+
#: inc/pro/class-settings-apikeys.php:59
|
4847 |
+
msgid "Dropbox API Keys"
|
4848 |
+
msgstr ""
|
4849 |
+
|
4850 |
+
#: inc/pro/class-settings-apikeys.php:60
|
4851 |
+
msgid "If you want to set your own Dropbox API Keys, you can do it here. Leave empty for default."
|
4852 |
+
msgstr ""
|
4853 |
+
|
4854 |
+
#: inc/pro/class-settings-apikeys.php:63
|
4855 |
+
msgid "Full Dropbox App key:"
|
4856 |
+
msgstr ""
|
4857 |
+
|
4858 |
+
#: inc/pro/class-settings-apikeys.php:71
|
4859 |
+
msgid "Full Dropbox App secret:"
|
4860 |
+
msgstr ""
|
4861 |
+
|
4862 |
+
#: inc/pro/class-settings-apikeys.php:79
|
4863 |
+
msgid "Sandbox App key:"
|
4864 |
+
msgstr ""
|
4865 |
+
|
4866 |
+
#: inc/pro/class-settings-apikeys.php:87
|
4867 |
+
msgid "Sandbox App secret:"
|
4868 |
+
msgstr ""
|
4869 |
+
|
4870 |
+
#: inc/pro/class-settings-apikeys.php:100
|
4871 |
+
msgid "SugarSync API Keys"
|
4872 |
+
msgstr ""
|
4873 |
+
|
4874 |
+
#: inc/pro/class-settings-apikeys.php:101
|
4875 |
+
msgid "If you want to set your own SugarSync API keys you can do that here. Leave empty for default."
|
4876 |
+
msgstr ""
|
4877 |
+
|
4878 |
+
#: inc/pro/class-settings-apikeys.php:104
|
4879 |
+
msgid "Access Key ID:"
|
4880 |
+
msgstr ""
|
4881 |
+
|
4882 |
+
#: inc/pro/class-settings-apikeys.php:112
|
4883 |
+
msgid "Private Access Key:"
|
4884 |
+
msgstr ""
|
4885 |
+
|
4886 |
+
#: inc/pro/class-settings-apikeys.php:119
|
4887 |
+
msgid "App ID:"
|
4888 |
+
msgstr ""
|
4889 |
+
|
4890 |
+
#: inc/pro/class-settings-apikeys.php:132
|
4891 |
+
msgid "Google API Keys"
|
4892 |
+
msgstr ""
|
4893 |
+
|
4894 |
+
#: inc/pro/class-settings-apikeys.php:136
|
4895 |
+
msgid "Client ID:"
|
4896 |
+
msgstr ""
|
4897 |
+
|
4898 |
+
#: inc/pro/class-settings-apikeys.php:144
|
4899 |
+
msgid "Client secret:"
|
4900 |
+
msgstr ""
|
4901 |
+
|
4902 |
+
#: inc/pro/class-settings-apikeys.php:151
|
4903 |
+
msgid "Redirect URIs:"
|
4904 |
+
msgstr ""
|
4905 |
+
|
4906 |
+
#: inc/pro/class-settings-apikeys.php:155
|
4907 |
+
msgid "Add this URI in a new line to the field."
|
4908 |
+
msgstr ""
|
4909 |
+
|
4910 |
+
#: inc/pro/class-wizard-job.php:15
|
4911 |
+
msgid "Create a job"
|
4912 |
+
msgstr ""
|
4913 |
+
|
4914 |
+
#: inc/pro/class-wizard-job.php:16
|
4915 |
+
msgid "Choose a job"
|
4916 |
+
msgstr ""
|
4917 |
+
|
4918 |
+
#: inc/pro/class-wizard-job.php:41
|
4919 |
+
msgid "Job Types"
|
4920 |
+
msgstr ""
|
4921 |
+
|
4922 |
+
#: inc/pro/class-wizard-job.php:41
|
4923 |
+
msgid "Select a task for your job."
|
4924 |
+
msgstr ""
|
4925 |
+
|
4926 |
+
#: inc/pro/class-wizard-job.php:61
|
4927 |
+
msgid "Archive Settings"
|
4928 |
+
msgstr ""
|
4929 |
+
|
4930 |
+
#: inc/pro/class-wizard-job.php:62
|
4931 |
+
msgid "Settings for the Backup Archive"
|
4932 |
+
msgstr ""
|
4933 |
+
|
4934 |
+
#: inc/pro/class-wizard-job.php:68
|
4935 |
+
msgid "Where would you like to store the backup file?"
|
4936 |
+
msgstr ""
|
4937 |
+
|
4938 |
+
#: inc/pro/class-wizard-job.php:82 inc/pro/class-wizard-job.php:314
|
4939 |
+
msgid "Scheduling"
|
4940 |
+
msgstr ""
|
4941 |
+
|
4942 |
+
#: inc/pro/class-wizard-job.php:82
|
4943 |
+
msgid "When would you like to start the job?"
|
4944 |
+
msgstr ""
|
4945 |
+
|
4946 |
+
#: inc/pro/class-wizard-job.php:255
|
4947 |
+
msgid "Select one or more tasks for your backup job."
|
4948 |
+
msgstr ""
|
4949 |
+
|
4950 |
+
#: inc/pro/class-wizard-job.php:315
|
4951 |
+
msgid "Activate scheduling"
|
4952 |
+
msgstr ""
|
4953 |
+
|
4954 |
+
#: inc/pro/class-wizard-job.php:409
|
4955 |
+
msgid "Sync file by file to destination"
|
4956 |
+
msgstr ""
|
4957 |
+
|
4958 |
+
#: inc/pro/class-wizard-job.php:420
|
4959 |
+
msgid "Select a compression type for the backup archive"
|
4960 |
+
msgstr ""
|
4961 |
+
|
4962 |
+
#: inc/pro/class-wizard-job.php:423
|
4963 |
+
msgid "Archive compression type"
|
4964 |
+
msgstr ""
|
4965 |
+
|
4966 |
+
#: inc/pro/class-wizard-job.php:427
|
4967 |
+
msgid "PHP Zip functions will be used if available (memory lees). Else PCLZip Class will used."
|
4968 |
+
msgstr ""
|
4969 |
+
|
4970 |
+
#: inc/pro/class-wizard-job.php:430 inc/pro/class-wizard-job.php:441
|
4971 |
+
#: inc/pro/class-wizard-job.php:449
|
4972 |
+
msgid "Disabled because missing PHP function."
|
4973 |
+
msgstr ""
|
4974 |
+
|
4975 |
+
#: inc/pro/class-wizard-job.php:433 inc/pro/class-wizard-job.php:434
|
4976 |
+
msgid "Tar (fast and memory less) uncompressed"
|
4977 |
+
msgstr ""
|
4978 |
+
|
4979 |
+
#: inc/pro/class-wizard-job.php:437 inc/pro/class-wizard-job.php:438
|
4980 |
+
msgid "A tared and GZipped archive (fast and memory less)"
|
4981 |
+
msgstr ""
|
4982 |
+
|
4983 |
+
#: inc/pro/class-wizard-job.php:445
|
4984 |
+
msgid "A tared and BZipped archive (fast and memory less)"
|
4985 |
+
msgstr ""
|
4986 |
+
|
4987 |
+
#: inc/pro/class-wizard-job.php:470
|
4988 |
+
msgid "Where to store the files"
|
4989 |
+
msgstr ""
|
4990 |
+
|
4991 |
+
#: inc/pro/class-wizard-job.php:661
|
4992 |
+
#, php-format
|
4993 |
+
msgid "Wizard: %1$s"
|
4994 |
+
msgstr ""
|
4995 |
+
|
4996 |
+
#: inc/pro/class-wizard-job.php:680
|
4997 |
+
#, php-format
|
4998 |
+
msgid "New job %s generated."
|
4999 |
+
msgstr ""
|
5000 |
+
|
5001 |
+
#: inc/pro/class-wizard-job.php:692
|
5002 |
+
msgid "Create Job"
|
5003 |
+
msgstr ""
|
5004 |
+
|
5005 |
+
#: inc/pro/class-wizard-job.php:717 inc/pro/class-wizard-job.php:718
|
5006 |
+
msgid "Database Backup and XML Export (Daily)"
|
5007 |
+
msgstr ""
|
5008 |
+
|
5009 |
+
#: inc/pro/class-wizard-job.php:735 inc/pro/class-wizard-job.php:736
|
5010 |
+
msgid "Database Check (Weekly)"
|
5011 |
+
msgstr ""
|
5012 |
+
|
5013 |
+
#: inc/pro/class-wizard-job.php:760 inc/pro/class-wizard-job.php:761
|
5014 |
+
msgid "Backup all files"
|
5015 |
+
msgstr ""
|
5016 |
+
|
5017 |
+
#: inc/pro/class-wizard-job.php:775
|
5018 |
+
msgid "Essential files + list of plugins"
|
5019 |
+
msgstr ""
|
5020 |
+
|
5021 |
+
#: inc/pro/class-wizard-job.php:776
|
5022 |
+
msgid "Backup essential files and folders, plus a list of installed plugins."
|
5023 |
+
msgstr ""
|
5024 |
+
|
5025 |
+
#: inc/pro/class-wizard-job.php:791 inc/pro/class-wizard-job.php:792
|
5026 |
+
msgid "Custom configuration"
|
5027 |
+
msgstr ""
|
5028 |
+
|
5029 |
+
#: inc/pro/class-wizard-jobimport.php:14
|
5030 |
+
msgid "XML job import"
|
5031 |
+
msgstr ""
|
5032 |
+
|
5033 |
+
#: inc/pro/class-wizard-jobimport.php:15
|
5034 |
+
msgid "Wizard for importing BackWPup jobs from an XML file"
|
5035 |
+
msgstr ""
|
5036 |
+
|
5037 |
+
#: inc/pro/class-wizard-jobimport.php:32
|
5038 |
+
#: inc/pro/class-wizard-jobimport.php:101
|
5039 |
+
msgid "Import"
|
5040 |
+
msgstr ""
|
5041 |
+
|
5042 |
+
#: inc/pro/class-wizard-jobimport.php:45
|
5043 |
+
msgid "Import File"
|
5044 |
+
msgstr ""
|
5045 |
+
|
5046 |
+
#: inc/pro/class-wizard-jobimport.php:45
|
5047 |
+
msgid "Upload XML job file for import"
|
5048 |
+
msgstr ""
|
5049 |
+
|
5050 |
+
#: inc/pro/class-wizard-jobimport.php:46
|
5051 |
+
msgid "Select items to import"
|
5052 |
+
msgstr ""
|
5053 |
+
|
5054 |
+
#: inc/pro/class-wizard-jobimport.php:46
|
5055 |
+
msgid "Select which job should be imported or overwritten."
|
5056 |
+
msgstr ""
|
5057 |
+
|
5058 |
+
#: inc/pro/class-wizard-jobimport.php:67
|
5059 |
+
msgid "Please upload your BackWPup job XML export file and we’ll import the jobs into BackWPup."
|
5060 |
+
msgstr ""
|
5061 |
+
|
5062 |
+
#: inc/pro/class-wizard-jobimport.php:69
|
5063 |
+
msgid "Choose a file from your computer:"
|
5064 |
+
msgstr ""
|
5065 |
+
|
5066 |
+
#: inc/pro/class-wizard-jobimport.php:69
|
5067 |
+
#, php-format
|
5068 |
+
msgid "Maximum size: %s"
|
5069 |
+
msgstr ""
|
5070 |
+
|
5071 |
+
#: inc/pro/class-wizard-jobimport.php:92
|
5072 |
+
msgid "Import Jobs"
|
5073 |
+
msgstr ""
|
5074 |
+
|
5075 |
+
#: inc/pro/class-wizard-jobimport.php:95
|
5076 |
+
msgid "Import Type"
|
5077 |
+
msgstr ""
|
5078 |
+
|
5079 |
+
#: inc/pro/class-wizard-jobimport.php:96
|
5080 |
+
msgid "No Import"
|
5081 |
+
msgstr ""
|
5082 |
+
|
5083 |
+
#: inc/pro/class-wizard-jobimport.php:99
|
5084 |
+
msgid "Overwrite"
|
5085 |
+
msgstr ""
|
5086 |
+
|
5087 |
+
#: inc/pro/class-wizard-jobimport.php:99
|
5088 |
+
msgid "Append"
|
5089 |
+
msgstr ""
|
5090 |
+
|
5091 |
+
#: inc/pro/class-wizard-jobimport.php:114
|
5092 |
+
msgid "Import Config"
|
5093 |
+
msgstr ""
|
5094 |
+
|
5095 |
+
#: inc/pro/class-wizard-jobimport.php:117
|
5096 |
+
msgid "Import BackWPup configuration"
|
5097 |
+
msgstr ""
|
5098 |
+
|
5099 |
+
#: inc/pro/class-wizard-jobimport.php:142
|
5100 |
+
msgid "File is empty. Please upload something more substantial. This error could also caused by uploads being disabled in your php.ini or by post_max_size being defined as smaller than upload_max_filesize in php.ini."
|
5101 |
+
msgstr ""
|
5102 |
+
|
5103 |
+
#: inc/pro/class-wizard-jobimport.php:157
|
5104 |
+
#, php-format
|
5105 |
+
msgid "The export file could not be found at <code>%s</code>. This is likely due to an issue with permissions."
|
5106 |
+
msgstr ""
|
5107 |
+
|
5108 |
+
#: inc/pro/class-wizard-jobimport.php:164
|
5109 |
+
msgid "Sorry, there has been a phrase error."
|
5110 |
+
msgstr ""
|
5111 |
+
|
5112 |
+
#: inc/pro/class-wizard-jobimport.php:171
|
5113 |
+
#, php-format
|
5114 |
+
msgid "This Export file (version %s) may not be supported by this version of the importer."
|
5115 |
+
msgstr ""
|
5116 |
+
|
5117 |
+
#: inc/pro/class-wizard-jobimport.php:177
|
5118 |
+
msgid "This is not a BackWPup XML file"
|
5119 |
+
msgstr ""
|
5120 |
+
|
5121 |
+
#: inc/pro/class-wizard-jobimport.php:243
|
5122 |
+
#, php-format
|
5123 |
+
msgid "Job %1$s with id %2$d imported"
|
5124 |
+
msgstr ""
|
5125 |
+
|
5126 |
+
#: inc/pro/class-wizard-jobimport.php:251
|
5127 |
+
msgid "BackWPup config imported"
|
5128 |
+
msgstr ""
|
5129 |
+
|
5130 |
+
#: inc/pro/class-wizard-systemtest.php:14
|
5131 |
+
msgid "System Test"
|
5132 |
+
msgstr ""
|
5133 |
+
|
5134 |
+
#: inc/pro/class-wizard-systemtest.php:15
|
5135 |
+
msgid "Wizard to test if BackWPup can work properly"
|
5136 |
+
msgstr ""
|
5137 |
+
|
5138 |
+
#: inc/pro/class-wizard-systemtest.php:32
|
5139 |
+
msgid "Run tests"
|
5140 |
+
msgstr ""
|
5141 |
+
|
5142 |
+
#: inc/pro/class-wizard-systemtest.php:45
|
5143 |
+
msgid "Environment"
|
5144 |
+
msgstr ""
|
5145 |
+
|
5146 |
+
#: inc/pro/class-wizard-systemtest.php:45
|
5147 |
+
msgid "System Environment"
|
5148 |
+
msgstr ""
|
5149 |
+
|
5150 |
+
#: inc/pro/class-wizard-systemtest.php:59
|
5151 |
+
msgid "Test if BackWPup can work without problems."
|
5152 |
+
msgstr ""
|
5153 |
+
|
5154 |
+
#: inc/pro/class-wizard-systemtest.php:99
|
5155 |
+
#, php-format
|
5156 |
+
msgid "You must run WordPress version 3.4 or higher to use this plugin. You are using version %s now."
|
5157 |
+
msgstr ""
|
5158 |
+
|
5159 |
+
#: inc/pro/class-wizard-systemtest.php:104
|
5160 |
+
#, php-format
|
5161 |
+
msgid "You must run PHP version 5.2.6 or higher to use this plugin. You are using version %s now."
|
5162 |
+
msgstr ""
|
5163 |
+
|
5164 |
+
#: inc/pro/class-wizard-systemtest.php:108
|
5165 |
+
#, php-format
|
5166 |
+
msgid "We recommend to run a PHP version above 5.3.2 to get the full plugin functionality. You are using version %s now."
|
5167 |
+
msgstr ""
|
5168 |
+
|
5169 |
+
#: inc/pro/class-wizard-systemtest.php:113
|
5170 |
+
#, php-format
|
5171 |
+
msgid "You must have the MySQLi extension installed and a MySQL server version of 5.0.7 or higher to use this plugin. You are using version %s now."
|
5172 |
+
msgstr ""
|
5173 |
+
|
5174 |
+
#: inc/pro/class-wizard-systemtest.php:118
|
5175 |
+
msgid "PHP cURL extension must be installed to use the full plugin functionality."
|
5176 |
+
msgstr ""
|
5177 |
+
|
5178 |
+
#: inc/pro/class-wizard-systemtest.php:123
|
5179 |
+
#, php-format
|
5180 |
+
msgctxt "%1 = extension name, %2 = file suffix"
|
5181 |
+
msgid "We recommend to install the %1$s extension to generate %2$s archives."
|
5182 |
+
msgstr ""
|
5183 |
+
|
5184 |
+
#: inc/pro/class-wizard-systemtest.php:146
|
5185 |
+
#, php-format
|
5186 |
+
msgctxt "Link to PHP manual"
|
5187 |
+
msgid "Please disable the deprecated <a href=\"%s\">PHP safe mode</a>."
|
5188 |
+
msgstr ""
|
5189 |
+
|
5190 |
+
#: inc/pro/class-wizard-systemtest.php:154
|
5191 |
+
msgid "We recommend to install the PHP FTP extension to use the FTP backup destination."
|
5192 |
+
msgstr ""
|
5193 |
+
|
5194 |
+
#: inc/pro/class-wizard-systemtest.php:174
|
5195 |
+
#, php-format
|
5196 |
+
msgid "The HTTP response test result is an error: \"%s\"."
|
5197 |
+
msgstr ""
|
5198 |
+
|
5199 |
+
#: inc/pro/class-wizard-systemtest.php:178
|
5200 |
+
#, php-format
|
5201 |
+
msgid "The HTTP response test result is a wrong HTTP status: %s. It should be status 200."
|
5202 |
+
msgstr ""
|
5203 |
+
|
5204 |
+
#: inc/pro/class-wizard-systemtest.php:191
|
5205 |
+
msgid "WP-Cron seems to be broken. But it is needed to run scheduled jobs."
|
5206 |
+
msgstr ""
|
5207 |
+
|
5208 |
+
#: inc/pro/class-wizard-systemtest.php:196
|
5209 |
+
msgid "All tests passed without errors."
|
5210 |
+
msgstr ""
|
5211 |
+
|
5212 |
+
#: inc/pro/class-wizard-systemtest.php:199
|
5213 |
+
msgid "There is no error, but some warnings. BackWPup will work, but with limitations."
|
5214 |
+
msgstr ""
|
5215 |
+
|
5216 |
+
#: inc/pro/class-wizard-systemtest.php:202
|
5217 |
+
msgid "There are errors. Please correct them, or BackWPup cannot work."
|
5218 |
+
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
readme.txt
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
Contributors: inpsyde, danielhuesken, Bueltge, nullbyte
|
3 |
Tags: Amazon, Amazon S3, back up, backup, chinese, cloud, cloud files, database, db backup, dropbox, dump, file, french, ftp, ftps, german, migrate, multisite, russian, schedule, sftp, storage, S3, time, upload, xml
|
4 |
Requires at least: 3.9
|
5 |
-
Tested up to: 4.7.
|
6 |
-
Stable tag: 3.3.
|
7 |
License: GPLv3
|
8 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
9 |
|
@@ -157,6 +157,20 @@ Yes. You need to have writing access to the wp-config.php file (usually residing
|
|
157 |
[You can find a detailed tutorial in the BackWPup documentation.](http://docs.backwpup.com/article/118-install-backwpup)
|
158 |
|
159 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
160 |
= Version 3.3.4 =
|
161 |
* Fixed: Database gone away messages
|
162 |
* Fixed: restarts in cli mode
|
2 |
Contributors: inpsyde, danielhuesken, Bueltge, nullbyte
|
3 |
Tags: Amazon, Amazon S3, back up, backup, chinese, cloud, cloud files, database, db backup, dropbox, dump, file, french, ftp, ftps, german, migrate, multisite, russian, schedule, sftp, storage, S3, time, upload, xml
|
4 |
Requires at least: 3.9
|
5 |
+
Tested up to: 4.7.2
|
6 |
+
Stable tag: 3.3.6
|
7 |
License: GPLv3
|
8 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
9 |
|
157 |
[You can find a detailed tutorial in the BackWPup documentation.](http://docs.backwpup.com/article/118-install-backwpup)
|
158 |
|
159 |
== Changelog ==
|
160 |
+
= Version 3.3.6 =
|
161 |
+
* Improved: Compatibility with PHP 7 and PHP 7.1
|
162 |
+
* Improved: Encryption (use Open SSL when available, mcrypt as fallback for PHP 5.2 users)
|
163 |
+
* Improved: check for mod_authz_core.c module in .htaccess file
|
164 |
+
* Added: Deprecation notice for PHP 5.2 users
|
165 |
+
* Added: Translation for formal german
|
166 |
+
* Added: Ask for consent on phone home anonymously PHP & WP Version
|
167 |
+
* Added: Dashboard widget to recruit new Inpsyders
|
168 |
+
* Updated: Translation for german
|
169 |
+
* PRO: Fixed issue with wrong redirect during Google Drive authorization
|
170 |
+
|
171 |
+
= Version 3.3.5 =
|
172 |
+
* PRO: fixed gdrive Could not create resumable file transfer
|
173 |
+
|
174 |
= Version 3.3.4 =
|
175 |
* Fixed: Database gone away messages
|
176 |
* Fixed: restarts in cli mode
|
vendor/inpsyde/phone-home-client/.gitignore
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
composer.phar
|
2 |
+
vendor/
|
vendor/inpsyde/phone-home-client/LICENSE
ADDED
@@ -0,0 +1,674 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
GNU GENERAL PUBLIC LICENSE
|
2 |
+
Version 3, 29 June 2007
|
3 |
+
|
4 |
+
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
5 |
+
Everyone is permitted to copy and distribute verbatim copies
|
6 |
+
of this license document, but changing it is not allowed.
|
7 |
+
|
8 |
+
Preamble
|
9 |
+
|
10 |
+
The GNU General Public License is a free, copyleft license for
|
11 |
+
software and other kinds of works.
|
12 |
+
|
13 |
+
The licenses for most software and other practical works are designed
|
14 |
+
to take away your freedom to share and change the works. By contrast,
|
15 |
+
the GNU General Public License is intended to guarantee your freedom to
|
16 |
+
share and change all versions of a program--to make sure it remains free
|
17 |
+
software for all its users. We, the Free Software Foundation, use the
|
18 |
+
GNU General Public License for most of our software; it applies also to
|
19 |
+
any other work released this way by its authors. You can apply it to
|
20 |
+
your programs, too.
|
21 |
+
|
22 |
+
When we speak of free software, we are referring to freedom, not
|
23 |
+
price. Our General Public Licenses are designed to make sure that you
|
24 |
+
have the freedom to distribute copies of free software (and charge for
|
25 |
+
them if you wish), that you receive source code or can get it if you
|
26 |
+
want it, that you can change the software or use pieces of it in new
|
27 |
+
free programs, and that you know you can do these things.
|
28 |
+
|
29 |
+
To protect your rights, we need to prevent others from denying you
|
30 |
+
these rights or asking you to surrender the rights. Therefore, you have
|
31 |
+
certain responsibilities if you distribute copies of the software, or if
|
32 |
+
you modify it: responsibilities to respect the freedom of others.
|
33 |
+
|
34 |
+
For example, if you distribute copies of such a program, whether
|
35 |
+
gratis or for a fee, you must pass on to the recipients the same
|
36 |
+
freedoms that you received. You must make sure that they, too, receive
|
37 |
+
or can get the source code. And you must show them these terms so they
|
38 |
+
know their rights.
|
39 |
+
|
40 |
+
Developers that use the GNU GPL protect your rights with two steps:
|
41 |
+
(1) assert copyright on the software, and (2) offer you this License
|
42 |
+
giving you legal permission to copy, distribute and/or modify it.
|
43 |
+
|
44 |
+
For the developers' and authors' protection, the GPL clearly explains
|
45 |
+
that there is no warranty for this free software. For both users' and
|
46 |
+
authors' sake, the GPL requires that modified versions be marked as
|
47 |
+
changed, so that their problems will not be attributed erroneously to
|
48 |
+
authors of previous versions.
|
49 |
+
|
50 |
+
Some devices are designed to deny users access to install or run
|
51 |
+
modified versions of the software inside them, although the manufacturer
|
52 |
+
can do so. This is fundamentally incompatible with the aim of
|
53 |
+
protecting users' freedom to change the software. The systematic
|
54 |
+
pattern of such abuse occurs in the area of products for individuals to
|
55 |
+
use, which is precisely where it is most unacceptable. Therefore, we
|
56 |
+
have designed this version of the GPL to prohibit the practice for those
|
57 |
+
products. If such problems arise substantially in other domains, we
|
58 |
+
stand ready to extend this provision to those domains in future versions
|
59 |
+
of the GPL, as needed to protect the freedom of users.
|
60 |
+
|
61 |
+
Finally, every program is threatened constantly by software patents.
|
62 |
+
States should not allow patents to restrict development and use of
|
63 |
+
software on general-purpose computers, but in those that do, we wish to
|
64 |
+
avoid the special danger that patents applied to a free program could
|
65 |
+
make it effectively proprietary. To prevent this, the GPL assures that
|
66 |
+
patents cannot be used to render the program non-free.
|
67 |
+
|
68 |
+
The precise terms and conditions for copying, distribution and
|
69 |
+
modification follow.
|
70 |
+
|
71 |
+
TERMS AND CONDITIONS
|
72 |
+
|
73 |
+
0. Definitions.
|
74 |
+
|
75 |
+
"This License" refers to version 3 of the GNU General Public License.
|
76 |
+
|
77 |
+
"Copyright" also means copyright-like laws that apply to other kinds of
|
78 |
+
works, such as semiconductor masks.
|
79 |
+
|
80 |
+
"The Program" refers to any copyrightable work licensed under this
|
81 |
+
License. Each licensee is addressed as "you". "Licensees" and
|
82 |
+
"recipients" may be individuals or organizations.
|
83 |
+
|
84 |
+
To "modify" a work means to copy from or adapt all or part of the work
|
85 |
+
in a fashion requiring copyright permission, other than the making of an
|
86 |
+
exact copy. The resulting work is called a "modified version" of the
|
87 |
+
earlier work or a work "based on" the earlier work.
|
88 |
+
|
89 |
+
A "covered work" means either the unmodified Program or a work based
|
90 |
+
on the Program.
|
91 |
+
|
92 |
+
To "propagate" a work means to do anything with it that, without
|
93 |
+
permission, would make you directly or secondarily liable for
|
94 |
+
infringement under applicable copyright law, except executing it on a
|
95 |
+
computer or modifying a private copy. Propagation includes copying,
|
96 |
+
distribution (with or without modification), making available to the
|
97 |
+
public, and in some countries other activities as well.
|
98 |
+
|
99 |
+
To "convey" a work means any kind of propagation that enables other
|
100 |
+
parties to make or receive copies. Mere interaction with a user through
|
101 |
+
a computer network, with no transfer of a copy, is not conveying.
|
102 |
+
|
103 |
+
An interactive user interface displays "Appropriate Legal Notices"
|
104 |
+
to the extent that it includes a convenient and prominently visible
|
105 |
+
feature that (1) displays an appropriate copyright notice, and (2)
|
106 |
+
tells the user that there is no warranty for the work (except to the
|
107 |
+
extent that warranties are provided), that licensees may convey the
|
108 |
+
work under this License, and how to view a copy of this License. If
|
109 |
+
the interface presents a list of user commands or options, such as a
|
110 |
+
menu, a prominent item in the list meets this criterion.
|
111 |
+
|
112 |
+
1. Source Code.
|
113 |
+
|
114 |
+
The "source code" for a work means the preferred form of the work
|
115 |
+
for making modifications to it. "Object code" means any non-source
|
116 |
+
form of a work.
|
117 |
+
|
118 |
+
A "Standard Interface" means an interface that either is an official
|
119 |
+
standard defined by a recognized standards body, or, in the case of
|
120 |
+
interfaces specified for a particular programming language, one that
|
121 |
+
is widely used among developers working in that language.
|
122 |
+
|
123 |
+
The "System Libraries" of an executable work include anything, other
|
124 |
+
than the work as a whole, that (a) is included in the normal form of
|
125 |
+
packaging a Major Component, but which is not part of that Major
|
126 |
+
Component, and (b) serves only to enable use of the work with that
|
127 |
+
Major Component, or to implement a Standard Interface for which an
|
128 |
+
implementation is available to the public in source code form. A
|
129 |
+
"Major Component", in this context, means a major essential component
|
130 |
+
(kernel, window system, and so on) of the specific operating system
|
131 |
+
(if any) on which the executable work runs, or a compiler used to
|
132 |
+
produce the work, or an object code interpreter used to run it.
|
133 |
+
|
134 |
+
The "Corresponding Source" for a work in object code form means all
|
135 |
+
the source code needed to generate, install, and (for an executable
|
136 |
+
work) run the object code and to modify the work, including scripts to
|
137 |
+
control those activities. However, it does not include the work's
|
138 |
+
System Libraries, or general-purpose tools or generally available free
|
139 |
+
programs which are used unmodified in performing those activities but
|
140 |
+
which are not part of the work. For example, Corresponding Source
|
141 |
+
includes interface definition files associated with source files for
|
142 |
+
the work, and the source code for shared libraries and dynamically
|
143 |
+
linked subprograms that the work is specifically designed to require,
|
144 |
+
such as by intimate data communication or control flow between those
|
145 |
+
subprograms and other parts of the work.
|
146 |
+
|
147 |
+
The Corresponding Source need not include anything that users
|
148 |
+
can regenerate automatically from other parts of the Corresponding
|
149 |
+
Source.
|
150 |
+
|
151 |
+
The Corresponding Source for a work in source code form is that
|
152 |
+
same work.
|
153 |
+
|
154 |
+
2. Basic Permissions.
|
155 |
+
|
156 |
+
All rights granted under this License are granted for the term of
|
157 |
+
copyright on the Program, and are irrevocable provided the stated
|
158 |
+
conditions are met. This License explicitly affirms your unlimited
|
159 |
+
permission to run the unmodified Program. The output from running a
|
160 |
+
covered work is covered by this License only if the output, given its
|
161 |
+
content, constitutes a covered work. This License acknowledges your
|
162 |
+
rights of fair use or other equivalent, as provided by copyright law.
|
163 |
+
|
164 |
+
You may make, run and propagate covered works that you do not
|
165 |
+
convey, without conditions so long as your license otherwise remains
|
166 |
+
in force. You may convey covered works to others for the sole purpose
|
167 |
+
of having them make modifications exclusively for you, or provide you
|
168 |
+
with facilities for running those works, provided that you comply with
|
169 |
+
the terms of this License in conveying all material for which you do
|
170 |
+
not control copyright. Those thus making or running the covered works
|
171 |
+
for you must do so exclusively on your behalf, under your direction
|
172 |
+
and control, on terms that prohibit them from making any copies of
|
173 |
+
your copyrighted material outside their relationship with you.
|
174 |
+
|
175 |
+
Conveying under any other circumstances is permitted solely under
|
176 |
+
the conditions stated below. Sublicensing is not allowed; section 10
|
177 |
+
makes it unnecessary.
|
178 |
+
|
179 |
+
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
180 |
+
|
181 |
+
No covered work shall be deemed part of an effective technological
|
182 |
+
measure under any applicable law fulfilling obligations under article
|
183 |
+
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
184 |
+
similar laws prohibiting or restricting circumvention of such
|
185 |
+
measures.
|
186 |
+
|
187 |
+
When you convey a covered work, you waive any legal power to forbid
|
188 |
+
circumvention of technological measures to the extent such circumvention
|
189 |
+
is effected by exercising rights under this License with respect to
|
190 |
+
the covered work, and you disclaim any intention to limit operation or
|
191 |
+
modification of the work as a means of enforcing, against the work's
|
192 |
+
users, your or third parties' legal rights to forbid circumvention of
|
193 |
+
technological measures.
|
194 |
+
|
195 |
+
4. Conveying Verbatim Copies.
|
196 |
+
|
197 |
+
You may convey verbatim copies of the Program's source code as you
|
198 |
+
receive it, in any medium, provided that you conspicuously and
|
199 |
+
appropriately publish on each copy an appropriate copyright notice;
|
200 |
+
keep intact all notices stating that this License and any
|
201 |
+
non-permissive terms added in accord with section 7 apply to the code;
|
202 |
+
keep intact all notices of the absence of any warranty; and give all
|
203 |
+
recipients a copy of this License along with the Program.
|
204 |
+
|
205 |
+
You may charge any price or no price for each copy that you convey,
|
206 |
+
and you may offer support or warranty protection for a fee.
|
207 |
+
|
208 |
+
5. Conveying Modified Source Versions.
|
209 |
+
|
210 |
+
You may convey a work based on the Program, or the modifications to
|
211 |
+
produce it from the Program, in the form of source code under the
|
212 |
+
terms of section 4, provided that you also meet all of these conditions:
|
213 |
+
|
214 |
+
a) The work must carry prominent notices stating that you modified
|
215 |
+
it, and giving a relevant date.
|
216 |
+
|
217 |
+
b) The work must carry prominent notices stating that it is
|
218 |
+
released under this License and any conditions added under section
|
219 |
+
7. This requirement modifies the requirement in section 4 to
|
220 |
+
"keep intact all notices".
|
221 |
+
|
222 |
+
c) You must license the entire work, as a whole, under this
|
223 |
+
License to anyone who comes into possession of a copy. This
|
224 |
+
License will therefore apply, along with any applicable section 7
|
225 |
+
additional terms, to the whole of the work, and all its parts,
|
226 |
+
regardless of how they are packaged. This License gives no
|
227 |
+
permission to license the work in any other way, but it does not
|
228 |
+
invalidate such permission if you have separately received it.
|
229 |
+
|
230 |
+
d) If the work has interactive user interfaces, each must display
|
231 |
+
Appropriate Legal Notices; however, if the Program has interactive
|
232 |
+
interfaces that do not display Appropriate Legal Notices, your
|
233 |
+
work need not make them do so.
|
234 |
+
|
235 |
+
A compilation of a covered work with other separate and independent
|
236 |
+
works, which are not by their nature extensions of the covered work,
|
237 |
+
and which are not combined with it such as to form a larger program,
|
238 |
+
in or on a volume of a storage or distribution medium, is called an
|
239 |
+
"aggregate" if the compilation and its resulting copyright are not
|
240 |
+
used to limit the access or legal rights of the compilation's users
|
241 |
+
beyond what the individual works permit. Inclusion of a covered work
|
242 |
+
in an aggregate does not cause this License to apply to the other
|
243 |
+
parts of the aggregate.
|
244 |
+
|
245 |
+
6. Conveying Non-Source Forms.
|
246 |
+
|
247 |
+
You may convey a covered work in object code form under the terms
|
248 |
+
of sections 4 and 5, provided that you also convey the
|
249 |
+
machine-readable Corresponding Source under the terms of this License,
|
250 |
+
in one of these ways:
|
251 |
+
|
252 |
+
a) Convey the object code in, or embodied in, a physical product
|
253 |
+
(including a physical distribution medium), accompanied by the
|
254 |
+
Corresponding Source fixed on a durable physical medium
|
255 |
+
customarily used for software interchange.
|
256 |
+
|
257 |
+
b) Convey the object code in, or embodied in, a physical product
|
258 |
+
(including a physical distribution medium), accompanied by a
|
259 |
+
written offer, valid for at least three years and valid for as
|
260 |
+
long as you offer spare parts or customer support for that product
|
261 |
+
model, to give anyone who possesses the object code either (1) a
|
262 |
+
copy of the Corresponding Source for all the software in the
|
263 |
+
product that is covered by this License, on a durable physical
|
264 |
+
medium customarily used for software interchange, for a price no
|
265 |
+
more than your reasonable cost of physically performing this
|
266 |
+
conveying of source, or (2) access to copy the
|
267 |
+
Corresponding Source from a network server at no charge.
|
268 |
+
|
269 |
+
c) Convey individual copies of the object code with a copy of the
|
270 |
+
written offer to provide the Corresponding Source. This
|
271 |
+
alternative is allowed only occasionally and noncommercially, and
|
272 |
+
only if you received the object code with such an offer, in accord
|
273 |
+
with subsection 6b.
|
274 |
+
|
275 |
+
d) Convey the object code by offering access from a designated
|
276 |
+
place (gratis or for a charge), and offer equivalent access to the
|
277 |
+
Corresponding Source in the same way through the same place at no
|
278 |
+
further charge. You need not require recipients to copy the
|
279 |
+
Corresponding Source along with the object code. If the place to
|
280 |
+
copy the object code is a network server, the Corresponding Source
|
281 |
+
may be on a different server (operated by you or a third party)
|
282 |
+
that supports equivalent copying facilities, provided you maintain
|
283 |
+
clear directions next to the object code saying where to find the
|
284 |
+
Corresponding Source. Regardless of what server hosts the
|
285 |
+
Corresponding Source, you remain obligated to ensure that it is
|
286 |
+
available for as long as needed to satisfy these requirements.
|
287 |
+
|
288 |
+
e) Convey the object code using peer-to-peer transmission, provided
|
289 |
+
you inform other peers where the object code and Corresponding
|
290 |
+
Source of the work are being offered to the general public at no
|
291 |
+
charge under subsection 6d.
|
292 |
+
|
293 |
+
A separable portion of the object code, whose source code is excluded
|
294 |
+
from the Corresponding Source as a System Library, need not be
|
295 |
+
included in conveying the object code work.
|
296 |
+
|
297 |
+
A "User Product" is either (1) a "consumer product", which means any
|
298 |
+
tangible personal property which is normally used for personal, family,
|
299 |
+
or household purposes, or (2) anything designed or sold for incorporation
|
300 |
+
into a dwelling. In determining whether a product is a consumer product,
|
301 |
+
doubtful cases shall be resolved in favor of coverage. For a particular
|
302 |
+
product received by a particular user, "normally used" refers to a
|
303 |
+
typical or common use of that class of product, regardless of the status
|
304 |
+
of the particular user or of the way in which the particular user
|
305 |
+
actually uses, or expects or is expected to use, the product. A product
|
306 |
+
is a consumer product regardless of whether the product has substantial
|
307 |
+
commercial, industrial or non-consumer uses, unless such uses represent
|
308 |
+
the only significant mode of use of the product.
|
309 |
+
|
310 |
+
"Installation Information" for a User Product means any methods,
|
311 |
+
procedures, authorization keys, or other information required to install
|
312 |
+
and execute modified versions of a covered work in that User Product from
|
313 |
+
a modified version of its Corresponding Source. The information must
|
314 |
+
suffice to ensure that the continued functioning of the modified object
|
315 |
+
code is in no case prevented or interfered with solely because
|
316 |
+
modification has been made.
|
317 |
+
|
318 |
+
If you convey an object code work under this section in, or with, or
|
319 |
+
specifically for use in, a User Product, and the conveying occurs as
|
320 |
+
part of a transaction in which the right of possession and use of the
|
321 |
+
User Product is transferred to the recipient in perpetuity or for a
|
322 |
+
fixed term (regardless of how the transaction is characterized), the
|
323 |
+
Corresponding Source conveyed under this section must be accompanied
|
324 |
+
by the Installation Information. But this requirement does not apply
|
325 |
+
if neither you nor any third party retains the ability to install
|
326 |
+
modified object code on the User Product (for example, the work has
|
327 |
+
been installed in ROM).
|
328 |
+
|
329 |
+
The requirement to provide Installation Information does not include a
|
330 |
+
requirement to continue to provide support service, warranty, or updates
|
331 |
+
for a work that has been modified or installed by the recipient, or for
|
332 |
+
the User Product in which it has been modified or installed. Access to a
|
333 |
+
network may be denied when the modification itself materially and
|
334 |
+
adversely affects the operation of the network or violates the rules and
|
335 |
+
protocols for communication across the network.
|
336 |
+
|
337 |
+
Corresponding Source conveyed, and Installation Information provided,
|
338 |
+
in accord with this section must be in a format that is publicly
|
339 |
+
documented (and with an implementation available to the public in
|
340 |
+
source code form), and must require no special password or key for
|
341 |
+
unpacking, reading or copying.
|
342 |
+
|
343 |
+
7. Additional Terms.
|
344 |
+
|
345 |
+
"Additional permissions" are terms that supplement the terms of this
|
346 |
+
License by making exceptions from one or more of its conditions.
|
347 |
+
Additional permissions that are applicable to the entire Program shall
|
348 |
+
be treated as though they were included in this License, to the extent
|
349 |
+
that they are valid under applicable law. If additional permissions
|
350 |
+
apply only to part of the Program, that part may be used separately
|
351 |
+
under those permissions, but the entire Program remains governed by
|
352 |
+
this License without regard to the additional permissions.
|
353 |
+
|
354 |
+
When you convey a copy of a covered work, you may at your option
|
355 |
+
remove any additional permissions from that copy, or from any part of
|
356 |
+
it. (Additional permissions may be written to require their own
|
357 |
+
removal in certain cases when you modify the work.) You may place
|
358 |
+
additional permissions on material, added by you to a covered work,
|
359 |
+
for which you have or can give appropriate copyright permission.
|
360 |
+
|
361 |
+
Notwithstanding any other provision of this License, for material you
|
362 |
+
add to a covered work, you may (if authorized by the copyright holders of
|
363 |
+
that material) supplement the terms of this License with terms:
|
364 |
+
|
365 |
+
a) Disclaiming warranty or limiting liability differently from the
|
366 |
+
terms of sections 15 and 16 of this License; or
|
367 |
+
|
368 |
+
b) Requiring preservation of specified reasonable legal notices or
|
369 |
+
author attributions in that material or in the Appropriate Legal
|
370 |
+
Notices displayed by works containing it; or
|
371 |
+
|
372 |
+
c) Prohibiting misrepresentation of the origin of that material, or
|
373 |
+
requiring that modified versions of such material be marked in
|
374 |
+
reasonable ways as different from the original version; or
|
375 |
+
|
376 |
+
d) Limiting the use for publicity purposes of names of licensors or
|
377 |
+
authors of the material; or
|
378 |
+
|
379 |
+
e) Declining to grant rights under trademark law for use of some
|
380 |
+
trade names, trademarks, or service marks; or
|
381 |
+
|
382 |
+
f) Requiring indemnification of licensors and authors of that
|
383 |
+
material by anyone who conveys the material (or modified versions of
|
384 |
+
it) with contractual assumptions of liability to the recipient, for
|
385 |
+
any liability that these contractual assumptions directly impose on
|
386 |
+
those licensors and authors.
|
387 |
+
|
388 |
+
All other non-permissive additional terms are considered "further
|
389 |
+
restrictions" within the meaning of section 10. If the Program as you
|
390 |
+
received it, or any part of it, contains a notice stating that it is
|
391 |
+
governed by this License along with a term that is a further
|
392 |
+
restriction, you may remove that term. If a license document contains
|
393 |
+
a further restriction but permits relicensing or conveying under this
|
394 |
+
License, you may add to a covered work material governed by the terms
|
395 |
+
of that license document, provided that the further restriction does
|
396 |
+
not survive such relicensing or conveying.
|
397 |
+
|
398 |
+
If you add terms to a covered work in accord with this section, you
|
399 |
+
must place, in the relevant source files, a statement of the
|
400 |
+
additional terms that apply to those files, or a notice indicating
|
401 |
+
where to find the applicable terms.
|
402 |
+
|
403 |
+
Additional terms, permissive or non-permissive, may be stated in the
|
404 |
+
form of a separately written license, or stated as exceptions;
|
405 |
+
the above requirements apply either way.
|
406 |
+
|
407 |
+
8. Termination.
|
408 |
+
|
409 |
+
You may not propagate or modify a covered work except as expressly
|
410 |
+
provided under this License. Any attempt otherwise to propagate or
|
411 |
+
modify it is void, and will automatically terminate your rights under
|
412 |
+
this License (including any patent licenses granted under the third
|
413 |
+
paragraph of section 11).
|
414 |
+
|
415 |
+
However, if you cease all violation of this License, then your
|
416 |
+
license from a particular copyright holder is reinstated (a)
|
417 |
+
provisionally, unless and until the copyright holder explicitly and
|
418 |
+
finally terminates your license, and (b) permanently, if the copyright
|
419 |
+
holder fails to notify you of the violation by some reasonable means
|
420 |
+
prior to 60 days after the cessation.
|
421 |
+
|
422 |
+
Moreover, your license from a particular copyright holder is
|
423 |
+
reinstated permanently if the copyright holder notifies you of the
|
424 |
+
violation by some reasonable means, this is the first time you have
|
425 |
+
received notice of violation of this License (for any work) from that
|
426 |
+
copyright holder, and you cure the violation prior to 30 days after
|
427 |
+
your receipt of the notice.
|
428 |
+
|
429 |
+
Termination of your rights under this section does not terminate the
|
430 |
+
licenses of parties who have received copies or rights from you under
|
431 |
+
this License. If your rights have been terminated and not permanently
|
432 |
+
reinstated, you do not qualify to receive new licenses for the same
|
433 |
+
material under section 10.
|
434 |
+
|
435 |
+
9. Acceptance Not Required for Having Copies.
|
436 |
+
|
437 |
+
You are not required to accept this License in order to receive or
|
438 |
+
run a copy of the Program. Ancillary propagation of a covered work
|
439 |
+
occurring solely as a consequence of using peer-to-peer transmission
|
440 |
+
to receive a copy likewise does not require acceptance. However,
|
441 |
+
nothing other than this License grants you permission to propagate or
|
442 |
+
modify any covered work. These actions infringe copyright if you do
|
443 |
+
not accept this License. Therefore, by modifying or propagating a
|
444 |
+
covered work, you indicate your acceptance of this License to do so.
|
445 |
+
|
446 |
+
10. Automatic Licensing of Downstream Recipients.
|
447 |
+
|
448 |
+
Each time you convey a covered work, the recipient automatically
|
449 |
+
receives a license from the original licensors, to run, modify and
|
450 |
+
propagate that work, subject to this License. You are not responsible
|
451 |
+
for enforcing compliance by third parties with this License.
|
452 |
+
|
453 |
+
An "entity transaction" is a transaction transferring control of an
|
454 |
+
organization, or substantially all assets of one, or subdividing an
|
455 |
+
organization, or merging organizations. If propagation of a covered
|
456 |
+
work results from an entity transaction, each party to that
|
457 |
+
transaction who receives a copy of the work also receives whatever
|
458 |
+
licenses to the work the party's predecessor in interest had or could
|
459 |
+
give under the previous paragraph, plus a right to possession of the
|
460 |
+
Corresponding Source of the work from the predecessor in interest, if
|
461 |
+
the predecessor has it or can get it with reasonable efforts.
|
462 |
+
|
463 |
+
You may not impose any further restrictions on the exercise of the
|
464 |
+
rights granted or affirmed under this License. For example, you may
|
465 |
+
not impose a license fee, royalty, or other charge for exercise of
|
466 |
+
rights granted under this License, and you may not initiate litigation
|
467 |
+
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
468 |
+
any patent claim is infringed by making, using, selling, offering for
|
469 |
+
sale, or importing the Program or any portion of it.
|
470 |
+
|
471 |
+
11. Patents.
|
472 |
+
|
473 |
+
A "contributor" is a copyright holder who authorizes use under this
|
474 |
+
License of the Program or a work on which the Program is based. The
|
475 |
+
work thus licensed is called the contributor's "contributor version".
|
476 |
+
|
477 |
+
A contributor's "essential patent claims" are all patent claims
|
478 |
+
owned or controlled by the contributor, whether already acquired or
|
479 |
+
hereafter acquired, that would be infringed by some manner, permitted
|
480 |
+
by this License, of making, using, or selling its contributor version,
|
481 |
+
but do not include claims that would be infringed only as a
|
482 |
+
consequence of further modification of the contributor version. For
|
483 |
+
purposes of this definition, "control" includes the right to grant
|
484 |
+
patent sublicenses in a manner consistent with the requirements of
|
485 |
+
this License.
|
486 |
+
|
487 |
+
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
488 |
+
patent license under the contributor's essential patent claims, to
|
489 |
+
make, use, sell, offer for sale, import and otherwise run, modify and
|
490 |
+
propagate the contents of its contributor version.
|
491 |
+
|
492 |
+
In the following three paragraphs, a "patent license" is any express
|
493 |
+
agreement or commitment, however denominated, not to enforce a patent
|
494 |
+
(such as an express permission to practice a patent or covenant not to
|
495 |
+
sue for patent infringement). To "grant" such a patent license to a
|
496 |
+
party means to make such an agreement or commitment not to enforce a
|
497 |
+
patent against the party.
|
498 |
+
|
499 |
+
If you convey a covered work, knowingly relying on a patent license,
|
500 |
+
and the Corresponding Source of the work is not available for anyone
|
501 |
+
to copy, free of charge and under the terms of this License, through a
|
502 |
+
publicly available network server or other readily accessible means,
|
503 |
+
then you must either (1) cause the Corresponding Source to be so
|
504 |
+
available, or (2) arrange to deprive yourself of the benefit of the
|
505 |
+
patent license for this particular work, or (3) arrange, in a manner
|
506 |
+
consistent with the requirements of this License, to extend the patent
|
507 |
+
license to downstream recipients. "Knowingly relying" means you have
|
508 |
+
actual knowledge that, but for the patent license, your conveying the
|
509 |
+
covered work in a country, or your recipient's use of the covered work
|
510 |
+
in a country, would infringe one or more identifiable patents in that
|
511 |
+
country that you have reason to believe are valid.
|
512 |
+
|
513 |
+
If, pursuant to or in connection with a single transaction or
|
514 |
+
arrangement, you convey, or propagate by procuring conveyance of, a
|
515 |
+
covered work, and grant a patent license to some of the parties
|
516 |
+
receiving the covered work authorizing them to use, propagate, modify
|
517 |
+
or convey a specific copy of the covered work, then the patent license
|
518 |
+
you grant is automatically extended to all recipients of the covered
|
519 |
+
work and works based on it.
|
520 |
+
|
521 |
+
A patent license is "discriminatory" if it does not include within
|
522 |
+
the scope of its coverage, prohibits the exercise of, or is
|
523 |
+
conditioned on the non-exercise of one or more of the rights that are
|
524 |
+
specifically granted under this License. You may not convey a covered
|
525 |
+
work if you are a party to an arrangement with a third party that is
|
526 |
+
in the business of distributing software, under which you make payment
|
527 |
+
to the third party based on the extent of your activity of conveying
|
528 |
+
the work, and under which the third party grants, to any of the
|
529 |
+
parties who would receive the covered work from you, a discriminatory
|
530 |
+
patent license (a) in connection with copies of the covered work
|
531 |
+
conveyed by you (or copies made from those copies), or (b) primarily
|
532 |
+
for and in connection with specific products or compilations that
|
533 |
+
contain the covered work, unless you entered into that arrangement,
|
534 |
+
or that patent license was granted, prior to 28 March 2007.
|
535 |
+
|
536 |
+
Nothing in this License shall be construed as excluding or limiting
|
537 |
+
any implied license or other defenses to infringement that may
|
538 |
+
otherwise be available to you under applicable patent law.
|
539 |
+
|
540 |
+
12. No Surrender of Others' Freedom.
|
541 |
+
|
542 |
+
If conditions are imposed on you (whether by court order, agreement or
|
543 |
+
otherwise) that contradict the conditions of this License, they do not
|
544 |
+
excuse you from the conditions of this License. If you cannot convey a
|
545 |
+
covered work so as to satisfy simultaneously your obligations under this
|
546 |
+
License and any other pertinent obligations, then as a consequence you may
|
547 |
+
not convey it at all. For example, if you agree to terms that obligate you
|
548 |
+
to collect a royalty for further conveying from those to whom you convey
|
549 |
+
the Program, the only way you could satisfy both those terms and this
|
550 |
+
License would be to refrain entirely from conveying the Program.
|
551 |
+
|
552 |
+
13. Use with the GNU Affero General Public License.
|
553 |
+
|
554 |
+
Notwithstanding any other provision of this License, you have
|
555 |
+
permission to link or combine any covered work with a work licensed
|
556 |
+
under version 3 of the GNU Affero General Public License into a single
|
557 |
+
combined work, and to convey the resulting work. The terms of this
|
558 |
+
License will continue to apply to the part which is the covered work,
|
559 |
+
but the special requirements of the GNU Affero General Public License,
|
560 |
+
section 13, concerning interaction through a network will apply to the
|
561 |
+
combination as such.
|
562 |
+
|
563 |
+
14. Revised Versions of this License.
|
564 |
+
|
565 |
+
The Free Software Foundation may publish revised and/or new versions of
|
566 |
+
the GNU General Public License from time to time. Such new versions will
|
567 |
+
be similar in spirit to the present version, but may differ in detail to
|
568 |
+
address new problems or concerns.
|
569 |
+
|
570 |
+
Each version is given a distinguishing version number. If the
|
571 |
+
Program specifies that a certain numbered version of the GNU General
|
572 |
+
Public License "or any later version" applies to it, you have the
|
573 |
+
option of following the terms and conditions either of that numbered
|
574 |
+
version or of any later version published by the Free Software
|
575 |
+
Foundation. If the Program does not specify a version number of the
|
576 |
+
GNU General Public License, you may choose any version ever published
|
577 |
+
by the Free Software Foundation.
|
578 |
+
|
579 |
+
If the Program specifies that a proxy can decide which future
|
580 |
+
versions of the GNU General Public License can be used, that proxy's
|
581 |
+
public statement of acceptance of a version permanently authorizes you
|
582 |
+
to choose that version for the Program.
|
583 |
+
|
584 |
+
Later license versions may give you additional or different
|
585 |
+
permissions. However, no additional obligations are imposed on any
|
586 |
+
author or copyright holder as a result of your choosing to follow a
|
587 |
+
later version.
|
588 |
+
|
589 |
+
15. Disclaimer of Warranty.
|
590 |
+
|
591 |
+
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
592 |
+
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
593 |
+
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
594 |
+
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
595 |
+
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
596 |
+
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
597 |
+
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
598 |
+
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
599 |
+
|
600 |
+
16. Limitation of Liability.
|
601 |
+
|
602 |
+
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
603 |
+
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
604 |
+
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
605 |
+
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
606 |
+
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
607 |
+
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
608 |
+
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
609 |
+
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
610 |
+
SUCH DAMAGES.
|
611 |
+
|
612 |
+
17. Interpretation of Sections 15 and 16.
|
613 |
+
|
614 |
+
If the disclaimer of warranty and limitation of liability provided
|
615 |
+
above cannot be given local legal effect according to their terms,
|
616 |
+
reviewing courts shall apply local law that most closely approximates
|
617 |
+
an absolute waiver of all civil liability in connection with the
|
618 |
+
Program, unless a warranty or assumption of liability accompanies a
|
619 |
+
copy of the Program in return for a fee.
|
620 |
+
|
621 |
+
END OF TERMS AND CONDITIONS
|
622 |
+
|
623 |
+
How to Apply These Terms to Your New Programs
|
624 |
+
|
625 |
+
If you develop a new program, and you want it to be of the greatest
|
626 |
+
possible use to the public, the best way to achieve this is to make it
|
627 |
+
free software which everyone can redistribute and change under these terms.
|
628 |
+
|
629 |
+
To do so, attach the following notices to the program. It is safest
|
630 |
+
to attach them to the start of each source file to most effectively
|
631 |
+
state the exclusion of warranty; and each file should have at least
|
632 |
+
the "copyright" line and a pointer to where the full notice is found.
|
633 |
+
|
634 |
+
<one line to give the program's name and a brief idea of what it does.>
|
635 |
+
Copyright (C) <year> <name of author>
|
636 |
+
|
637 |
+
This program is free software: you can redistribute it and/or modify
|
638 |
+
it under the terms of the GNU General Public License as published by
|
639 |
+
the Free Software Foundation, either version 3 of the License, or
|
640 |
+
(at your option) any later version.
|
641 |
+
|
642 |
+
This program is distributed in the hope that it will be useful,
|
643 |
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
644 |
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
645 |
+
GNU General Public License for more details.
|
646 |
+
|
647 |
+
You should have received a copy of the GNU General Public License
|
648 |
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
649 |
+
|
650 |
+
Also add information on how to contact you by electronic and paper mail.
|
651 |
+
|
652 |
+
If the program does terminal interaction, make it output a short
|
653 |
+
notice like this when it starts in an interactive mode:
|
654 |
+
|
655 |
+
<program> Copyright (C) <year> <name of author>
|
656 |
+
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
657 |
+
This is free software, and you are welcome to redistribute it
|
658 |
+
under certain conditions; type `show c' for details.
|
659 |
+
|
660 |
+
The hypothetical commands `show w' and `show c' should show the appropriate
|
661 |
+
parts of the General Public License. Of course, your program's commands
|
662 |
+
might be different; for a GUI interface, you would use an "about box".
|
663 |
+
|
664 |
+
You should also get your employer (if you work as a programmer) or school,
|
665 |
+
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
666 |
+
For more information on this, and how to apply and follow the GNU GPL, see
|
667 |
+
<http://www.gnu.org/licenses/>.
|
668 |
+
|
669 |
+
The GNU General Public License does not permit incorporating your program
|
670 |
+
into proprietary programs. If your program is a subroutine library, you
|
671 |
+
may consider it more useful to permit linking proprietary applications with
|
672 |
+
the library. If this is what you want to do, use the GNU Lesser General
|
673 |
+
Public License instead of this License. But first, please read
|
674 |
+
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
vendor/inpsyde/phone-home-client/composer.json
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "inpsyde/phone-home-client",
|
3 |
+
"description": "A WordPress package to be used by plugins to add a page that ask for phone-home consensus and send data in case user approves.",
|
4 |
+
"type": "library",
|
5 |
+
"license": "GPL-3.0",
|
6 |
+
"authors": [
|
7 |
+
{
|
8 |
+
"name": "Inpsyde GmbH",
|
9 |
+
"email": "hello@inpsyde.com",
|
10 |
+
"homepage": "http://inpsyde.com",
|
11 |
+
"role": "Company"
|
12 |
+
},
|
13 |
+
{
|
14 |
+
"name": "Giuseppe Mazzapica",
|
15 |
+
"email": "giuseppe.mazzapica@gmail.com",
|
16 |
+
"role": "Developer"
|
17 |
+
}
|
18 |
+
],
|
19 |
+
"minimum-stability": "stable",
|
20 |
+
"require": {
|
21 |
+
"php": ">=5.2"
|
22 |
+
},
|
23 |
+
"autoload": {
|
24 |
+
"classmap": [
|
25 |
+
"src/"
|
26 |
+
]
|
27 |
+
},
|
28 |
+
"config": {
|
29 |
+
"optimize-autoloader": true
|
30 |
+
},
|
31 |
+
"extra": {
|
32 |
+
"branch-alias": {
|
33 |
+
"dev-master": "0.1.x-dev"
|
34 |
+
}
|
35 |
+
}
|
36 |
+
}
|
vendor/inpsyde/phone-home-client/inc/autoload.php
ADDED
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php # -*- coding: utf-8 -*-
|
2 |
+
/*
|
3 |
+
* This file is part of the Inpsyde phone-home-client package.
|
4 |
+
*
|
5 |
+
* (c) 2017 Inpsyde GmbH
|
6 |
+
*
|
7 |
+
* For the full copyright and license information, please view the LICENSE
|
8 |
+
* file that was distributed with this source code.
|
9 |
+
*/
|
10 |
+
|
11 |
+
if ( defined( 'INPSYDE_PHONE_HOME_CLASS_FILES_ROOT' ) ) {
|
12 |
+
return;
|
13 |
+
}
|
14 |
+
|
15 |
+
define( 'INPSYDE_PHONE_HOME_CLASS_FILES_ROOT', dirname( dirname( __FILE__ ) ) . '/src/' );
|
16 |
+
|
17 |
+
/**
|
18 |
+
* @param string $class
|
19 |
+
*/
|
20 |
+
function inpsyde_phone_home_autoload( $class ) {
|
21 |
+
|
22 |
+
static $class_map;
|
23 |
+
|
24 |
+
if ( ! $class_map ) {
|
25 |
+
$class_map = array(
|
26 |
+
'Inpsyde_PhoneHome_ActionController' => 'ActionController',
|
27 |
+
'Inpsyde_PhoneHome_Configuration' => 'Configuration',
|
28 |
+
'Inpsyde_PhoneHome_CronController' => 'CronController',
|
29 |
+
'Inpsyde_PhoneHome_FrontController' => 'FrontController',
|
30 |
+
'Inpsyde_PhoneHome_HttpClient' => 'HttpClient',
|
31 |
+
'Inpsyde_PhoneHome_Consent' => 'Consent/Consent',
|
32 |
+
'Inpsyde_PhoneHome_Consent_DisplayController' => 'Consent/DisplayController',
|
33 |
+
'Inpsyde_PhoneHome_Template_Buttons' => 'Template/Buttons',
|
34 |
+
'Inpsyde_PhoneHome_Template_Loader' => 'Template/Loader',
|
35 |
+
);
|
36 |
+
}
|
37 |
+
|
38 |
+
if ( ! array_key_exists( $class, $class_map ) ) {
|
39 |
+
return;
|
40 |
+
}
|
41 |
+
|
42 |
+
if ( ( ! defined( 'WP_DEBUG' ) || ! WP_DEBUG ) ) {
|
43 |
+
/** @noinspection PhpIncludeInspection */
|
44 |
+
@require_once INPSYDE_PHONE_HOME_CLASS_FILES_ROOT . "{$class_map[$class]}.php";
|
45 |
+
|
46 |
+
return;
|
47 |
+
}
|
48 |
+
|
49 |
+
/** @noinspection PhpIncludeInspection */
|
50 |
+
require_once INPSYDE_PHONE_HOME_CLASS_FILES_ROOT . "{$class_map[$class]}.php";
|
51 |
+
}
|
52 |
+
|
53 |
+
spl_autoload_register( 'inpsyde_phone_home_autoload' );
|
vendor/inpsyde/phone-home-client/languages/inpsyde-phone-home-de_DE.mo
ADDED
Binary file
|
vendor/inpsyde/phone-home-client/languages/inpsyde-phone-home-de_DE.po
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Inpsyde Phone Home Client LANGUAGE Translation.
|
2 |
+
# Copyright (C) 2017 Inpsyde GmbH
|
3 |
+
# This file is distributed under the same license as the Inpsyde Phone Home Client package.
|
4 |
+
#
|
5 |
+
msgid ""
|
6 |
+
msgstr ""
|
7 |
+
"Project-Id-Version: Phone Home Client 0.1.0\n"
|
8 |
+
"POT-Creation-Date: 2017-02-13 10:56+0100\n"
|
9 |
+
"PO-Revision-Date: 2017-02-13 10:59+0100\n"
|
10 |
+
"MIME-Version: 1.0\n"
|
11 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
12 |
+
"Content-Transfer-Encoding: 8bit\n"
|
13 |
+
"Language-Team: \n"
|
14 |
+
"X-Generator: Poedit 1.8.11\n"
|
15 |
+
"Last-Translator: \n"
|
16 |
+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
17 |
+
"Language: de_DE\n"
|
18 |
+
|
19 |
+
#: src/CronController.php:80
|
20 |
+
#, php-format
|
21 |
+
msgid "Every %d days"
|
22 |
+
msgstr "Alle %d Tage"
|
23 |
+
|
24 |
+
#: src/FrontController.php:131
|
25 |
+
#, php-format
|
26 |
+
msgid "%s needs your help"
|
27 |
+
msgstr "%s braucht deine Hilfe"
|
28 |
+
|
29 |
+
#: src/FrontController.php:132
|
30 |
+
#, php-format
|
31 |
+
msgid "Help %s"
|
32 |
+
msgstr "Hilf %s"
|
33 |
+
|
34 |
+
#: src/Template/Buttons.php:28
|
35 |
+
msgid "Yes, I agree."
|
36 |
+
msgstr "Ja, ich stimme zu."
|
37 |
+
|
38 |
+
#: src/Template/Buttons.php:45
|
39 |
+
msgid "I have to think about that, ask me later."
|
40 |
+
msgstr "Ich denke darüber nach, später noch einmal fragen."
|
41 |
+
|
42 |
+
#: src/Template/Buttons.php:62
|
43 |
+
msgid "Please no. Don't ask me again."
|
44 |
+
msgstr "Bitte nicht wieder fragen."
|
45 |
+
|
46 |
+
#: src/Template/Buttons.php:84
|
47 |
+
msgid "More info"
|
48 |
+
msgstr "Weitere Infos"
|
vendor/inpsyde/phone-home-client/languages/inpsyde-phone-home-de_DE_formal.mo
ADDED
Binary file
|
vendor/inpsyde/phone-home-client/languages/inpsyde-phone-home-de_DE_formal.po
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Inpsyde Phone Home Client LANGUAGE Translation.
|
2 |
+
# Copyright (C) 2017 Inpsyde GmbH
|
3 |
+
# This file is distributed under the same license as the Inpsyde Phone Home Client package.
|
4 |
+
#
|
5 |
+
msgid ""
|
6 |
+
msgstr ""
|
7 |
+
"Project-Id-Version: Phone Home Client 0.1.0\n"
|
8 |
+
"POT-Creation-Date: 2017-02-13 11:00+0100\n"
|
9 |
+
"PO-Revision-Date: 2017-02-13 11:02+0100\n"
|
10 |
+
"MIME-Version: 1.0\n"
|
11 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
12 |
+
"Content-Transfer-Encoding: 8bit\n"
|
13 |
+
"Language-Team: \n"
|
14 |
+
"X-Generator: Poedit 1.8.11\n"
|
15 |
+
"Last-Translator: \n"
|
16 |
+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
17 |
+
"Language: de_DE\n"
|
18 |
+
|
19 |
+
#: src/CronController.php:80
|
20 |
+
#, php-format
|
21 |
+
msgid "Every %d days"
|
22 |
+
msgstr "Alle %d Tage"
|
23 |
+
|
24 |
+
#: src/FrontController.php:131
|
25 |
+
#, php-format
|
26 |
+
msgid "%s needs your help"
|
27 |
+
msgstr "%s benötigt Ihre Hilfe"
|
28 |
+
|
29 |
+
#: src/FrontController.php:132
|
30 |
+
#, php-format
|
31 |
+
msgid "Help %s"
|
32 |
+
msgstr "Hilf %s"
|
33 |
+
|
34 |
+
#: src/Template/Buttons.php:28
|
35 |
+
msgid "Yes, I agree."
|
36 |
+
msgstr "Ja, ich stimme zu."
|
37 |
+
|
38 |
+
#: src/Template/Buttons.php:45
|
39 |
+
msgid "I have to think about that, ask me later."
|
40 |
+
msgstr "Ich denke darüber nach, später noch einmal fragen."
|
41 |
+
|
42 |
+
#: src/Template/Buttons.php:62
|
43 |
+
msgid "Please no. Don't ask me again."
|
44 |
+
msgstr "Bitte nicht wieder fragen."
|
45 |
+
|
46 |
+
#: src/Template/Buttons.php:84
|
47 |
+
msgid "More info"
|
48 |
+
msgstr "Weitere Infos"
|
vendor/inpsyde/phone-home-client/languages/inpsyde-phone-home-it_IT.mo
ADDED
Binary file
|
vendor/inpsyde/phone-home-client/languages/inpsyde-phone-home-it_IT.po
ADDED
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Inpsyde Phone Home Client Italian Translation.
|
2 |
+
# Copyright (C) 2017 Inpsyde GmbH
|
3 |
+
# This file is distributed under the same license as the Inpsyde Phone Home Client package.
|
4 |
+
#
|
5 |
+
msgid ""
|
6 |
+
msgstr ""
|
7 |
+
"Project-Id-Version: Phone Home Client 0.1.0\n"
|
8 |
+
"PO-Revision-Date: 2017-02-02 11:40+0100\n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
|
13 |
+
#: src/CronController.php:80
|
14 |
+
#, php-format
|
15 |
+
msgid "Every %d days"
|
16 |
+
msgstr "Ogni %d giorni"
|
17 |
+
|
18 |
+
#: src/FrontController.php:131
|
19 |
+
#, php-format
|
20 |
+
msgid "%s needs your help"
|
21 |
+
msgstr "%s ha bisogno del tuo aiuto"
|
22 |
+
|
23 |
+
#: src/FrontController.php:132
|
24 |
+
#, php-format
|
25 |
+
msgid "Help %s"
|
26 |
+
msgstr "Aiuta %s"
|
27 |
+
|
28 |
+
#: src/Template/Buttons.php:28
|
29 |
+
msgid "Yes, I agree."
|
30 |
+
msgstr "Sì, sono d'accordo"
|
31 |
+
|
32 |
+
#: src/Template/Buttons.php:45
|
33 |
+
msgid "I have to think about that, ask me later."
|
34 |
+
msgstr "Non sono sicuro, chiedimelo piu tardi."
|
35 |
+
|
36 |
+
#: src/Template/Buttons.php:62
|
37 |
+
msgid "Please no. Don't ask me again."
|
38 |
+
msgstr "No, grazie. Non chiedermelo di nuovo."
|
39 |
+
|
40 |
+
#: src/Template/Buttons.php:84
|
41 |
+
msgid "More info"
|
42 |
+
msgstr "Voglio più informazioni"
|
vendor/inpsyde/phone-home-client/languages/inpsyde-phone-home.pot
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Inpsyde Phone Home Client LANGUAGE Translation.
|
2 |
+
# Copyright (C) 2017 Inpsyde GmbH
|
3 |
+
# This file is distributed under the same license as the Inpsyde Phone Home Client package.
|
4 |
+
#
|
5 |
+
#, fuzzy
|
6 |
+
msgid ""
|
7 |
+
msgstr ""
|
8 |
+
"Project-Id-Version: Phone Home Client 0.1.0\n"
|
9 |
+
"POT-Creation-Date: 2017-02-01 22:55+0100\n"
|
10 |
+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
11 |
+
"MIME-Version: 1.0\n"
|
12 |
+
"Content-Type: text/plain; charset=CHARSET\n"
|
13 |
+
"Content-Transfer-Encoding: 8bit\n"
|
14 |
+
|
15 |
+
#: src/CronController.php:80
|
16 |
+
#, php-format
|
17 |
+
msgid "Every %d days"
|
18 |
+
msgstr ""
|
19 |
+
|
20 |
+
#: src/FrontController.php:131
|
21 |
+
#, php-format
|
22 |
+
msgid "%s needs your help"
|
23 |
+
msgstr ""
|
24 |
+
|
25 |
+
#: src/FrontController.php:132
|
26 |
+
#, php-format
|
27 |
+
msgid "Help %s"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Template/Buttons.php:28
|
31 |
+
msgid "Yes, I agree."
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Template/Buttons.php:45
|
35 |
+
msgid "I have to think about that, ask me later."
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#: src/Template/Buttons.php:62
|
39 |
+
msgid "Please no. Don't ask me again."
|
40 |
+
msgstr ""
|
41 |
+
|
42 |
+
#: src/Template/Buttons.php:84
|
43 |
+
msgid "More info"
|
44 |
+
msgstr ""
|
vendor/inpsyde/phone-home-client/src/ActionController.php
ADDED
@@ -0,0 +1,207 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php # -*- coding: utf-8 -*-
|
2 |
+
/*
|
3 |
+
* This file is part of the Inpsyde phone-home-client package.
|
4 |
+
*
|
5 |
+
* (c) 2017 Inpsyde GmbH
|
6 |
+
*
|
7 |
+
* For the full copyright and license information, please view the LICENSE
|
8 |
+
* file that was distributed with this source code.
|
9 |
+
*/
|
10 |
+
|
11 |
+
/**
|
12 |
+
* @author Giuseppe Mazzapica <giuseppe.mazzapica@gmail.com>
|
13 |
+
* @package phone-home-client
|
14 |
+
* @license https://www.gnu.org/licenses/gpl-3.0.txt GNU General Public License, version 3
|
15 |
+
*/
|
16 |
+
class Inpsyde_PhoneHome_ActionController {
|
17 |
+
|
18 |
+
const ACTION_AGREE = 'inpsyde_phone-home_agree';
|
19 |
+
const ACTION_DISAGREE = 'inpsyde_phone-home_disagree';
|
20 |
+
const ACTION_MAYBE = 'inpsyde_phone-home_maybe';
|
21 |
+
|
22 |
+
const NONCE_KEY = 'nonce';
|
23 |
+
const USER_KEY = 'user';
|
24 |
+
const ACTION_KEY = 'action';
|
25 |
+
|
26 |
+
/**
|
27 |
+
* @var string[]
|
28 |
+
*/
|
29 |
+
private static $action_map = array(
|
30 |
+
self::ACTION_AGREE => 'agree',
|
31 |
+
self::ACTION_DISAGREE => 'disagree',
|
32 |
+
self::ACTION_MAYBE => 'maybe',
|
33 |
+
);
|
34 |
+
|
35 |
+
/**
|
36 |
+
* @var Inpsyde_PhoneHome_Configuration
|
37 |
+
*/
|
38 |
+
private $configuration;
|
39 |
+
|
40 |
+
/**
|
41 |
+
* @var string
|
42 |
+
*/
|
43 |
+
private $plugin_name;
|
44 |
+
|
45 |
+
/**
|
46 |
+
* @var string
|
47 |
+
*/
|
48 |
+
private $parent_menu;
|
49 |
+
|
50 |
+
/**
|
51 |
+
* @param string $action
|
52 |
+
*
|
53 |
+
* @return string
|
54 |
+
*/
|
55 |
+
public static function url_for_action( $action ) {
|
56 |
+
|
57 |
+
if ( ! array_key_exists( $action, self::$action_map ) ) {
|
58 |
+
return '';
|
59 |
+
}
|
60 |
+
|
61 |
+
$data = array(
|
62 |
+
self::NONCE_KEY => wp_create_nonce( $action ),
|
63 |
+
self::USER_KEY => get_current_user_id(),
|
64 |
+
self::ACTION_KEY => $action,
|
65 |
+
);
|
66 |
+
|
67 |
+
return add_query_arg( $data, admin_url( 'admin-post.php' ) );
|
68 |
+
}
|
69 |
+
|
70 |
+
/**
|
71 |
+
* @param string $plugin_name
|
72 |
+
* @param string $parent_menu
|
73 |
+
* @param Inpsyde_PhoneHome_Configuration $configuration
|
74 |
+
*/
|
75 |
+
public function __construct( $plugin_name, $parent_menu, Inpsyde_PhoneHome_Configuration $configuration ) {
|
76 |
+
|
77 |
+
$this->plugin_name = (string) $plugin_name;
|
78 |
+
$this->parent_menu = (string) $parent_menu;
|
79 |
+
$this->configuration = $configuration;
|
80 |
+
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
* Adds the action to dispatch method that will then proxy to inner method based on received data.
|
84 |
+
*/
|
85 |
+
public function setup() {
|
86 |
+
|
87 |
+
$actions = array(
|
88 |
+
self::ACTION_AGREE,
|
89 |
+
self::ACTION_DISAGREE,
|
90 |
+
self::ACTION_MAYBE,
|
91 |
+
);
|
92 |
+
|
93 |
+
foreach ( $actions as $action ) {
|
94 |
+
add_action( "admin_post_{$action}", array( $this, 'dispatch' ) );
|
95 |
+
}
|
96 |
+
}
|
97 |
+
|
98 |
+
/**
|
99 |
+
* Validate data coming from AJAX and call the proper method according to the required action.
|
100 |
+
*
|
101 |
+
* @see Inpsyde_PhoneHome_ActionController::agree()
|
102 |
+
* @see Inpsyde_PhoneHome_ActionController::disagree()
|
103 |
+
* @see Inpsyde_PhoneHome_ActionController::maybe()
|
104 |
+
*/
|
105 |
+
public function dispatch() {
|
106 |
+
|
107 |
+
$data = $this->data();
|
108 |
+
|
109 |
+
if ( ! $this->should_handle_request( $data ) ) {
|
110 |
+
return;
|
111 |
+
}
|
112 |
+
|
113 |
+
if ( $this->is_user_allowed( $data ) ) {
|
114 |
+
call_user_func( array( $this, self::$action_map[ $data[ self::ACTION_KEY ] ] ) );
|
115 |
+
}
|
116 |
+
|
117 |
+
$this->terminate();
|
118 |
+
}
|
119 |
+
|
120 |
+
/**
|
121 |
+
* User agreed on phone home. Let's do it.
|
122 |
+
*/
|
123 |
+
private function agree() {
|
124 |
+
|
125 |
+
$consent = new Inpsyde_PhoneHome_Consent( $this->plugin_name );
|
126 |
+
$http_client = new Inpsyde_PhoneHome_HttpClient( $this->configuration );
|
127 |
+
|
128 |
+
if ( $consent->set_as_agree( $this->configuration ) ) {
|
129 |
+
$http_client->send_data( $consent->consent_data() );
|
130 |
+
}
|
131 |
+
|
132 |
+
}
|
133 |
+
|
134 |
+
/**
|
135 |
+
* User did not agree on phone home. Let's hide the request for them.
|
136 |
+
*/
|
137 |
+
private function disagree() {
|
138 |
+
|
139 |
+
$question = new Inpsyde_PhoneHome_Consent_DisplayController( $this->plugin_name );
|
140 |
+
$question->hide_for_good( wp_get_current_user() );
|
141 |
+
}
|
142 |
+
|
143 |
+
/**
|
144 |
+
* User did not agree nor agree. Let's hide the request for them for sometime.
|
145 |
+
*/
|
146 |
+
private function maybe() {
|
147 |
+
|
148 |
+
$question = new Inpsyde_PhoneHome_Consent_DisplayController( $this->plugin_name );
|
149 |
+
$question->hide_for_now( wp_get_current_user() );
|
150 |
+
}
|
151 |
+
|
152 |
+
/**
|
153 |
+
* @param array $data
|
154 |
+
*
|
155 |
+
* @return bool
|
156 |
+
*/
|
157 |
+
private function should_handle_request( array $data ) {
|
158 |
+
|
159 |
+
return
|
160 |
+
is_admin()
|
161 |
+
&& isset( $data[ self::ACTION_KEY ] )
|
162 |
+
&& array_key_exists( $data[ self::ACTION_KEY ], self::$action_map );
|
163 |
+
}
|
164 |
+
|
165 |
+
/**
|
166 |
+
* @param array $data
|
167 |
+
*
|
168 |
+
* @return bool
|
169 |
+
*/
|
170 |
+
private function is_user_allowed( array $data ) {
|
171 |
+
|
172 |
+
return
|
173 |
+
wp_verify_nonce( $data[ self::NONCE_KEY ], $data[ self::ACTION_KEY ] )
|
174 |
+
&& (int) $data[ self::USER_KEY ] === (int) get_current_user_id()
|
175 |
+
&& user_can( $data[ self::USER_KEY ], $this->configuration->minimum_capability() );
|
176 |
+
}
|
177 |
+
|
178 |
+
/**
|
179 |
+
* @return array
|
180 |
+
*/
|
181 |
+
private function data() {
|
182 |
+
|
183 |
+
return filter_input_array(
|
184 |
+
INPUT_GET,
|
185 |
+
array(
|
186 |
+
self::NONCE_KEY => FILTER_SANITIZE_STRING,
|
187 |
+
self::USER_KEY => FILTER_SANITIZE_NUMBER_INT,
|
188 |
+
self::ACTION_KEY => FILTER_SANITIZE_STRING,
|
189 |
+
)
|
190 |
+
);
|
191 |
+
}
|
192 |
+
|
193 |
+
/**
|
194 |
+
* @return void
|
195 |
+
*/
|
196 |
+
private function terminate() {
|
197 |
+
|
198 |
+
$redirect = menu_page_url( $this->parent_menu );
|
199 |
+
if ( ! $redirect ) {
|
200 |
+
$redirect = ( is_multisite() && is_super_admin() ) ? network_admin_url() : admin_url();
|
201 |
+
}
|
202 |
+
|
203 |
+
wp_safe_redirect( $redirect );
|
204 |
+
exit();
|
205 |
+
}
|
206 |
+
|
207 |
+
}
|
vendor/inpsyde/phone-home-client/src/Configuration.php
ADDED
@@ -0,0 +1,187 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php # -*- coding: utf-8 -*-
|
2 |
+
/*
|
3 |
+
* This file is part of the Inpsyde phone-home-client package.
|
4 |
+
*
|
5 |
+
* (c) 2017 Inpsyde GmbH
|
6 |
+
*
|
7 |
+
* For the full copyright and license information, please view the LICENSE
|
8 |
+
* file that was distributed with this source code.
|
9 |
+
*/
|
10 |
+
|
11 |
+
/**
|
12 |
+
* @author Giuseppe Mazzapica <giuseppe.mazzapica@gmail.com>
|
13 |
+
* @package phone-home-client
|
14 |
+
* @license https://www.gnu.org/licenses/gpl-3.0.txt GNU General Public License, version 3
|
15 |
+
*/
|
16 |
+
class Inpsyde_PhoneHome_Configuration {
|
17 |
+
|
18 |
+
const ANONYMIZE = 'anonymize';
|
19 |
+
const BY_NETWORK = 'by_network';
|
20 |
+
const MINIMUM_CAPABILITY = 'minimum_role';
|
21 |
+
const COLLECT_PHP = 'collect_php';
|
22 |
+
const COLLECT_WP = 'collect_wp';
|
23 |
+
const SERVER_ADDRESS = 'server_address';
|
24 |
+
const SERVER_ENDPOINT = 'server_endpoint';
|
25 |
+
const SERVER_METHOD = 'server_method';
|
26 |
+
const SERVER_BASIC_AUTH = 'server_basic_auth';
|
27 |
+
const AUTH_USER = 'username';
|
28 |
+
const AUTH_PASS = 'password';
|
29 |
+
|
30 |
+
/**
|
31 |
+
* @var array
|
32 |
+
*/
|
33 |
+
private static $defaults = array(
|
34 |
+
self::ANONYMIZE => true,
|
35 |
+
self::MINIMUM_CAPABILITY => 'customize',
|
36 |
+
self::COLLECT_PHP => true,
|
37 |
+
self::COLLECT_WP => false,
|
38 |
+
self::SERVER_ADDRESS => '',
|
39 |
+
self::SERVER_ENDPOINT => 'inpsyde-phone-home/v1/checkin',
|
40 |
+
self::SERVER_METHOD => 'POST',
|
41 |
+
self::SERVER_METHOD => 'POST',
|
42 |
+
self::SERVER_BASIC_AUTH => array(),
|
43 |
+
);
|
44 |
+
|
45 |
+
/**
|
46 |
+
* @var array
|
47 |
+
*/
|
48 |
+
private $arguments = array();
|
49 |
+
|
50 |
+
/**
|
51 |
+
* @param array $arguments
|
52 |
+
*/
|
53 |
+
public function __construct( array $arguments = array() ) {
|
54 |
+
$this->arguments = filter_var_array(
|
55 |
+
array_merge( self::$defaults, $arguments ),
|
56 |
+
array(
|
57 |
+
self::ANONYMIZE => FILTER_VALIDATE_BOOLEAN,
|
58 |
+
self::MINIMUM_CAPABILITY => FILTER_SANITIZE_STRING,
|
59 |
+
self::COLLECT_PHP => FILTER_VALIDATE_BOOLEAN,
|
60 |
+
self::COLLECT_WP => FILTER_VALIDATE_BOOLEAN,
|
61 |
+
self::SERVER_ADDRESS => FILTER_SANITIZE_URL,
|
62 |
+
self::SERVER_ENDPOINT => FILTER_SANITIZE_URL,
|
63 |
+
self::SERVER_METHOD => FILTER_SANITIZE_STRING,
|
64 |
+
self::SERVER_BASIC_AUTH => array( 'filter' => FILTER_UNSAFE_RAW, 'flags' => FILTER_FORCE_ARRAY ),
|
65 |
+
)
|
66 |
+
);
|
67 |
+
}
|
68 |
+
|
69 |
+
/**
|
70 |
+
* Returns true if we have a valid server full URL and we have something to collect.
|
71 |
+
*
|
72 |
+
* @return bool
|
73 |
+
*/
|
74 |
+
public function is_valid() {
|
75 |
+
|
76 |
+
$address = $this->server_address();
|
77 |
+
$endpoint = $this->server_endpoint();
|
78 |
+
|
79 |
+
return
|
80 |
+
(bool) filter_var( trailingslashit( $address ) . ltrim( $endpoint, '/' ), FILTER_VALIDATE_URL )
|
81 |
+
&& ( $this->collect_wp() || $this->collect_php() );
|
82 |
+
}
|
83 |
+
|
84 |
+
/**
|
85 |
+
* @return bool
|
86 |
+
*/
|
87 |
+
public function anonymize() {
|
88 |
+
return (bool) $this->arguments[ self::ANONYMIZE ];
|
89 |
+
}
|
90 |
+
|
91 |
+
/**
|
92 |
+
* @return bool
|
93 |
+
*/
|
94 |
+
public function minimum_capability() {
|
95 |
+
return (string) $this->arguments[ self::MINIMUM_CAPABILITY ];
|
96 |
+
}
|
97 |
+
|
98 |
+
/**
|
99 |
+
* @return bool
|
100 |
+
*/
|
101 |
+
public function collect_php() {
|
102 |
+
return (bool) $this->arguments[ self::COLLECT_PHP ];
|
103 |
+
}
|
104 |
+
|
105 |
+
/**
|
106 |
+
* @return bool
|
107 |
+
*/
|
108 |
+
public function collect_wp() {
|
109 |
+
return (bool) $this->arguments[ self::COLLECT_WP ];
|
110 |
+
}
|
111 |
+
|
112 |
+
/**
|
113 |
+
* @return bool
|
114 |
+
*/
|
115 |
+
public function server_address() {
|
116 |
+
|
117 |
+
$address = $this->arguments[ self::SERVER_ADDRESS ];
|
118 |
+
$filtered = apply_filters( 'inpsyde-phone-home-server-address', $address );
|
119 |
+
if ( $filtered !== $address ) {
|
120 |
+
$filtered = filter_var( $filtered, FILTER_SANITIZE_URL );
|
121 |
+
$filtered and $address = $filtered;
|
122 |
+
}
|
123 |
+
|
124 |
+
return (string) $address;
|
125 |
+
}
|
126 |
+
|
127 |
+
/**
|
128 |
+
* @return bool
|
129 |
+
*/
|
130 |
+
public function server_endpoint() {
|
131 |
+
|
132 |
+
$endpoint = (string) $this->arguments[ self::SERVER_ENDPOINT ];
|
133 |
+
$filtered = apply_filters( 'inpsyde-phone-home-server-endpoint', $endpoint );
|
134 |
+
if ( $filtered !== $endpoint ) {
|
135 |
+
$filtered = filter_var( $filtered, FILTER_SANITIZE_URL );
|
136 |
+
$filtered and $endpoint = $filtered;
|
137 |
+
}
|
138 |
+
|
139 |
+
return (string) $endpoint;
|
140 |
+
}
|
141 |
+
|
142 |
+
/**
|
143 |
+
* @return bool
|
144 |
+
*/
|
145 |
+
public function server_method() {
|
146 |
+
|
147 |
+
$method = strtoupper( (string) $this->arguments[ self::SERVER_METHOD ] );
|
148 |
+
if ( ! in_array( $method, array( 'GET', 'POST' ), true ) ) {
|
149 |
+
$method = 'POST';
|
150 |
+
$this->arguments[ self::SERVER_METHOD ] = 'POST';
|
151 |
+
}
|
152 |
+
|
153 |
+
return $method;
|
154 |
+
}
|
155 |
+
|
156 |
+
/**
|
157 |
+
* @return array
|
158 |
+
*/
|
159 |
+
public function server_basic_auth() {
|
160 |
+
return array_change_key_case( (array) $this->arguments[ self::SERVER_BASIC_AUTH ] );
|
161 |
+
}
|
162 |
+
|
163 |
+
/**
|
164 |
+
* @return string
|
165 |
+
*/
|
166 |
+
public function server_basic_auth_user() {
|
167 |
+
$auth = $this->server_basic_auth();
|
168 |
+
if ( isset( $auth[ self::AUTH_USER ] ) ) {
|
169 |
+
return (string) $auth[ self::AUTH_USER ];
|
170 |
+
}
|
171 |
+
|
172 |
+
return '';
|
173 |
+
}
|
174 |
+
|
175 |
+
/**
|
176 |
+
* @return string
|
177 |
+
*/
|
178 |
+
public function server_basic_auth_pass() {
|
179 |
+
$auth = $this->server_basic_auth();
|
180 |
+
if ( isset( $auth[ self::AUTH_PASS ] ) ) {
|
181 |
+
return (string) $auth[ self::AUTH_PASS ];
|
182 |
+
}
|
183 |
+
|
184 |
+
return '';
|
185 |
+
}
|
186 |
+
|
187 |
+
}
|
vendor/inpsyde/phone-home-client/src/Consent/Consent.php
ADDED
@@ -0,0 +1,127 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php # -*- coding: utf-8 -*-
|
2 |
+
/*
|
3 |
+
* This file is part of the Inpsyde phone-home-client package.
|
4 |
+
*
|
5 |
+
* (c) 2017 Inpsyde GmbH
|
6 |
+
*
|
7 |
+
* For the full copyright and license information, please view the LICENSE
|
8 |
+
* file that was distributed with this source code.
|
9 |
+
*/
|
10 |
+
|
11 |
+
/**
|
12 |
+
* @author Giuseppe Mazzapica <giuseppe.mazzapica@gmail.com>
|
13 |
+
* @package phone-home-client
|
14 |
+
* @license https://www.gnu.org/licenses/gpl-3.0.txt GNU General Public License, version 3
|
15 |
+
*/
|
16 |
+
class Inpsyde_PhoneHome_Consent {
|
17 |
+
|
18 |
+
const OPTION_PREFIX = 'inpsyde-phone-consent-given-';
|
19 |
+
|
20 |
+
const PLUGIN_KEY = 'plugin';
|
21 |
+
const IDENTIFIER_KEY = 'identifier';
|
22 |
+
const PHP_VER_KEY = 'php_version';
|
23 |
+
const WP_VER_KEY = 'wp_version';
|
24 |
+
|
25 |
+
/**
|
26 |
+
* @var array
|
27 |
+
*/
|
28 |
+
private static $allowed_data = array(
|
29 |
+
self::PLUGIN_KEY => '',
|
30 |
+
self::IDENTIFIER_KEY => '',
|
31 |
+
self::PHP_VER_KEY => '',
|
32 |
+
self::WP_VER_KEY => '',
|
33 |
+
);
|
34 |
+
|
35 |
+
/**
|
36 |
+
* @var string
|
37 |
+
*/
|
38 |
+
private $plugin_name;
|
39 |
+
|
40 |
+
/**
|
41 |
+
* @param string $plugin_name
|
42 |
+
*/
|
43 |
+
public function __construct( $plugin_name ) {
|
44 |
+
$this->plugin_name = (string) $plugin_name;
|
45 |
+
}
|
46 |
+
|
47 |
+
/**
|
48 |
+
* @return string
|
49 |
+
*/
|
50 |
+
public function plugin() {
|
51 |
+
return $this->plugin_name;
|
52 |
+
}
|
53 |
+
|
54 |
+
/**
|
55 |
+
* @return bool
|
56 |
+
*/
|
57 |
+
public function agreed() {
|
58 |
+
|
59 |
+
$data = $this->consent_data();
|
60 |
+
|
61 |
+
return ! empty( $data[ self::IDENTIFIER_KEY ] );
|
62 |
+
}
|
63 |
+
|
64 |
+
/**
|
65 |
+
* @return array
|
66 |
+
*/
|
67 |
+
public function consent_data() {
|
68 |
+
|
69 |
+
$option_name = self::OPTION_PREFIX . $this->plugin_name;
|
70 |
+
$option_value = get_site_option( $option_name, array() );
|
71 |
+
if ( $option_value && is_array( $option_value ) && ! empty( $option_value[ self::IDENTIFIER_KEY ] ) ) {
|
72 |
+
return array_intersect_key( $option_value, self::$allowed_data );
|
73 |
+
}
|
74 |
+
|
75 |
+
return array();
|
76 |
+
}
|
77 |
+
|
78 |
+
/**
|
79 |
+
* @param Inpsyde_PhoneHome_Configuration $configuration
|
80 |
+
*
|
81 |
+
* @return bool
|
82 |
+
*/
|
83 |
+
public function set_as_agree( Inpsyde_PhoneHome_Configuration $configuration ) {
|
84 |
+
|
85 |
+
$current_option_value = $this->consent_data();
|
86 |
+
|
87 |
+
$option_name = self::OPTION_PREFIX . $this->plugin_name;
|
88 |
+
|
89 |
+
$option_value = array(
|
90 |
+
self::PLUGIN_KEY => $this->plugin_name,
|
91 |
+
self::IDENTIFIER_KEY => $this->identifier( $configuration ),
|
92 |
+
);
|
93 |
+
|
94 |
+
if ( $configuration->collect_php() ) {
|
95 |
+
$option_value[ self::PHP_VER_KEY ] = phpversion();
|
96 |
+
}
|
97 |
+
|
98 |
+
if ( $configuration->collect_wp() ) {
|
99 |
+
global $wp_version;
|
100 |
+
$option_value[ self::WP_VER_KEY ] = (string) $wp_version;
|
101 |
+
}
|
102 |
+
|
103 |
+
if ( $current_option_value == $option_value ) {
|
104 |
+
return true;
|
105 |
+
}
|
106 |
+
|
107 |
+
return (bool) update_site_option( $option_name, $option_value );
|
108 |
+
}
|
109 |
+
|
110 |
+
/**
|
111 |
+
* @param Inpsyde_PhoneHome_Configuration $configuration
|
112 |
+
*
|
113 |
+
* @return string
|
114 |
+
*/
|
115 |
+
private function identifier( Inpsyde_PhoneHome_Configuration $configuration ) {
|
116 |
+
|
117 |
+
$main_url = is_multisite() ? network_site_url() : home_url();
|
118 |
+
$url_data = array_merge( array( 'host' => '', 'path' => '' ), parse_url( $main_url ) );
|
119 |
+
$url_normalized = trailingslashit( $url_data[ 'host' ] ) . trim( $url_data[ 'path' ], '/' );
|
120 |
+
if ( $configuration->anonymize() ) {
|
121 |
+
return md5( md5( $url_normalized ) );
|
122 |
+
}
|
123 |
+
|
124 |
+
return $url_normalized;
|
125 |
+
}
|
126 |
+
|
127 |
+
}
|
vendor/inpsyde/phone-home-client/src/Consent/DisplayController.php
ADDED
@@ -0,0 +1,105 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php # -*- coding: utf-8 -*-
|
2 |
+
/*
|
3 |
+
* This file is part of the Inpsyde phone-home-client package.
|
4 |
+
*
|
5 |
+
* (c) 2017 Inpsyde GmbH
|
6 |
+
*
|
7 |
+
* For the full copyright and license information, please view the LICENSE
|
8 |
+
* file that was distributed with this source code.
|
9 |
+
*/
|
10 |
+
|
11 |
+
/**
|
12 |
+
* @author Giuseppe Mazzapica <giuseppe.mazzapica@gmail.com>
|
13 |
+
* @package phone-home-client
|
14 |
+
* @license https://www.gnu.org/licenses/gpl-3.0.txt GNU General Public License, version 3
|
15 |
+
*/
|
16 |
+
class Inpsyde_PhoneHome_Consent_DisplayController {
|
17 |
+
|
18 |
+
const OPTION_NAME = 'inpsyde_phchide_';
|
19 |
+
|
20 |
+
/**
|
21 |
+
* @var bool
|
22 |
+
*/
|
23 |
+
private static $should_show;
|
24 |
+
|
25 |
+
/**
|
26 |
+
* @var Inpsyde_PhoneHome_Consent
|
27 |
+
*/
|
28 |
+
private $consent;
|
29 |
+
|
30 |
+
/**
|
31 |
+
* @param $plugin_name
|
32 |
+
*/
|
33 |
+
public function __construct( $plugin_name ) {
|
34 |
+
$this->consent = new Inpsyde_PhoneHome_Consent( $plugin_name );
|
35 |
+
}
|
36 |
+
|
37 |
+
/**
|
38 |
+
* @param WP_User $user
|
39 |
+
*
|
40 |
+
* @return bool
|
41 |
+
*/
|
42 |
+
public function should_show( WP_User $user ) {
|
43 |
+
|
44 |
+
if ( is_bool( self::$should_show ) ) {
|
45 |
+
return self::$should_show;
|
46 |
+
}
|
47 |
+
|
48 |
+
// If we already have a consent, no need to ask for consent again
|
49 |
+
if ( $this->consent->agreed() ) {
|
50 |
+
self::$should_show = false;
|
51 |
+
|
52 |
+
return self::$should_show;
|
53 |
+
}
|
54 |
+
|
55 |
+
$option_name = $this->option_name();
|
56 |
+
|
57 |
+
// If the user decided to hide question for good, let's respect their decision
|
58 |
+
if ( get_user_option( $option_name, $user->ID ) ) {
|
59 |
+
self::$should_show = false;
|
60 |
+
|
61 |
+
return self::$should_show;
|
62 |
+
}
|
63 |
+
|
64 |
+
// If the user decided to hide question for some time, let's respect their decision
|
65 |
+
if ( get_site_transient( $option_name . $user->ID ) ) {
|
66 |
+
self::$should_show = false;
|
67 |
+
|
68 |
+
return self::$should_show;
|
69 |
+
}
|
70 |
+
|
71 |
+
self::$should_show = true;
|
72 |
+
|
73 |
+
return self::$should_show;
|
74 |
+
}
|
75 |
+
|
76 |
+
/**
|
77 |
+
* @param WP_User $user
|
78 |
+
*
|
79 |
+
* @return bool
|
80 |
+
*/
|
81 |
+
public function hide_for_good( WP_User $user ) {
|
82 |
+
return (bool) update_user_option( $user->ID, $this->option_name(), 1 );
|
83 |
+
}
|
84 |
+
|
85 |
+
/**
|
86 |
+
* @param WP_User $user
|
87 |
+
*
|
88 |
+
* @return bool
|
89 |
+
*/
|
90 |
+
public function hide_for_now( WP_User $user ) {
|
91 |
+
return set_site_transient( $this->option_name() . $user->ID, 1, DAY_IN_SECONDS );
|
92 |
+
}
|
93 |
+
|
94 |
+
/**
|
95 |
+
* Cut option name to 32 characters so that 8 are left to be used for user ID in site transient name
|
96 |
+
*
|
97 |
+
* @return string
|
98 |
+
*/
|
99 |
+
private function option_name() {
|
100 |
+
|
101 |
+
$plugin = $this->consent->plugin();
|
102 |
+
|
103 |
+
return self::OPTION_NAME . substr( $plugin, 0, 6 ) . substr( md5( $plugin ), 0, 16 );
|
104 |
+
}
|
105 |
+
}
|
vendor/inpsyde/phone-home-client/src/CronController.php
ADDED
@@ -0,0 +1,92 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php # -*- coding: utf-8 -*-
|
2 |
+
/*
|
3 |
+
* This file is part of the Inpsyde phone-home-client package.
|
4 |
+
*
|
5 |
+
* (c) 2017 Inpsyde GmbH
|
6 |
+
*
|
7 |
+
* For the full copyright and license information, please view the LICENSE
|
8 |
+
* file that was distributed with this source code.
|
9 |
+
*/
|
10 |
+
|
11 |
+
/**
|
12 |
+
* @author Giuseppe Mazzapica <giuseppe.mazzapica@gmail.com>
|
13 |
+
* @package phone-home-client
|
14 |
+
* @license https://www.gnu.org/licenses/gpl-3.0.txt GNU General Public License, version 3
|
15 |
+
*/
|
16 |
+
class Inpsyde_PhoneHome_CronController {
|
17 |
+
|
18 |
+
const HOOK = 'inpsyde_phone-home_checkin';
|
19 |
+
const RECURRENCE_KEY = 'twice_weekly';
|
20 |
+
const RECURRENCE_INTERVAL = 1209600; // 3600 * 24 * 14
|
21 |
+
|
22 |
+
/**
|
23 |
+
* @var Inpsyde_PhoneHome_HttpClient
|
24 |
+
*/
|
25 |
+
private $http_client;
|
26 |
+
|
27 |
+
/**
|
28 |
+
* @var Inpsyde_PhoneHome_Consent
|
29 |
+
*/
|
30 |
+
private $consent;
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Unschedule send data hook
|
34 |
+
*/
|
35 |
+
public static function unschedule() {
|
36 |
+
wp_clear_scheduled_hook( self::HOOK );
|
37 |
+
}
|
38 |
+
|
39 |
+
/**
|
40 |
+
* @param Inpsyde_PhoneHome_HttpClient $http_client
|
41 |
+
* @param Inpsyde_PhoneHome_Consent $consent
|
42 |
+
*/
|
43 |
+
public function __construct( Inpsyde_PhoneHome_HttpClient $http_client, Inpsyde_PhoneHome_Consent $consent ) {
|
44 |
+
$this->http_client = $http_client;
|
45 |
+
$this->consent = $consent;
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Schedule send data hook
|
50 |
+
*/
|
51 |
+
public function schedule() {
|
52 |
+
|
53 |
+
add_action( self::HOOK, array( $this, 'run' ) );
|
54 |
+
add_filter( 'cron_schedules', array( $this, 'filter_schedules' ) );
|
55 |
+
|
56 |
+
if ( ! wp_next_scheduled( self::HOOK ) ) {
|
57 |
+
wp_schedule_event( time(), self::RECURRENCE_KEY, self::HOOK );
|
58 |
+
}
|
59 |
+
}
|
60 |
+
|
61 |
+
/**
|
62 |
+
* Run the send data hook
|
63 |
+
*
|
64 |
+
* @return bool
|
65 |
+
*/
|
66 |
+
public function run() {
|
67 |
+
return $this->http_client->send_data( $this->consent->consent_data() );
|
68 |
+
}
|
69 |
+
|
70 |
+
/**
|
71 |
+
* Add custom schedule
|
72 |
+
*
|
73 |
+
* @param array $schedules
|
74 |
+
*
|
75 |
+
* @return array
|
76 |
+
*/
|
77 |
+
public function filter_schedules( $schedules ) {
|
78 |
+
|
79 |
+
is_array( $schedules ) or $schedules = array();
|
80 |
+
$label = __( 'Every %d days', 'inpsyde-phone-home' );
|
81 |
+
|
82 |
+
$interval = apply_filters( 'inpsyde-phone-home-cron-interval', self::RECURRENCE_INTERVAL );
|
83 |
+
is_int( $interval ) or $interval = self::RECURRENCE_INTERVAL;
|
84 |
+
|
85 |
+
$schedules[ self::RECURRENCE_KEY ] = array(
|
86 |
+
'interval' => $interval,
|
87 |
+
'display' => sprintf( $label, ceil( $interval / DAY_IN_SECONDS ) )
|
88 |
+
);
|
89 |
+
|
90 |
+
return $schedules;
|
91 |
+
}
|
92 |
+
}
|
vendor/inpsyde/phone-home-client/src/FrontController.php
ADDED
@@ -0,0 +1,337 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php # -*- coding: utf-8 -*-
|
2 |
+
/*
|
3 |
+
* This file is part of the Inpsyde phone-home-client package.
|
4 |
+
*
|
5 |
+
* (c) 2017 Inpsyde GmbH
|
6 |
+
*
|
7 |
+
* For the full copyright and license information, please view the LICENSE
|
8 |
+
* file that was distributed with this source code.
|
9 |
+
*/
|
10 |
+
|
11 |
+
/**
|
12 |
+
* @author Giuseppe Mazzapica <giuseppe.mazzapica@gmail.com>
|
13 |
+
* @package phone-home-client
|
14 |
+
* @license https://www.gnu.org/licenses/gpl-3.0.txt GNU General Public License, version 3
|
15 |
+
*/
|
16 |
+
final class Inpsyde_PhoneHome_FrontController {
|
17 |
+
|
18 |
+
/**
|
19 |
+
* @var bool|int
|
20 |
+
*/
|
21 |
+
private static $should_display = 0;
|
22 |
+
|
23 |
+
/**
|
24 |
+
* @var string[]
|
25 |
+
*/
|
26 |
+
private static $menu_page_ids = array();
|
27 |
+
|
28 |
+
/**
|
29 |
+
* @var Inpsyde_PhoneHome_Configuration
|
30 |
+
*/
|
31 |
+
private $configuration;
|
32 |
+
|
33 |
+
/**
|
34 |
+
* @var Inpsyde_PhoneHome_Template_Loader
|
35 |
+
*/
|
36 |
+
private $template_loader;
|
37 |
+
|
38 |
+
/**
|
39 |
+
* @var string
|
40 |
+
*/
|
41 |
+
private $page_id = '';
|
42 |
+
|
43 |
+
/**
|
44 |
+
* @var string
|
45 |
+
*/
|
46 |
+
private $plugin_name;
|
47 |
+
|
48 |
+
/**
|
49 |
+
* @var string
|
50 |
+
*/
|
51 |
+
private $parent_menu;
|
52 |
+
|
53 |
+
/**
|
54 |
+
* @param string $plugin_name
|
55 |
+
* @param string $templates_dir
|
56 |
+
* @param array $configs
|
57 |
+
* @param string $parent_menu
|
58 |
+
* @param bool $network
|
59 |
+
*/
|
60 |
+
public static function initialize(
|
61 |
+
$plugin_name,
|
62 |
+
$templates_dir,
|
63 |
+
array $configs = array(),
|
64 |
+
$parent_menu = '',
|
65 |
+
$network = false
|
66 |
+
) {
|
67 |
+
|
68 |
+
$instance = new Inpsyde_PhoneHome_FrontController(
|
69 |
+
(string) $plugin_name,
|
70 |
+
new Inpsyde_PhoneHome_Configuration( $configs ),
|
71 |
+
new Inpsyde_PhoneHome_Template_Loader( $templates_dir ),
|
72 |
+
$parent_menu
|
73 |
+
);
|
74 |
+
|
75 |
+
$instance->setup( $network );
|
76 |
+
}
|
77 |
+
|
78 |
+
/**
|
79 |
+
* @param string $plugin_name
|
80 |
+
* @param string $templates_dir
|
81 |
+
* @param string $parent_menu
|
82 |
+
* @param array $configs
|
83 |
+
*/
|
84 |
+
public static function initialize_for_network(
|
85 |
+
$plugin_name,
|
86 |
+
$templates_dir,
|
87 |
+
$parent_menu = '',
|
88 |
+
array $configs = array()
|
89 |
+
) {
|
90 |
+
self::initialize( $plugin_name, $templates_dir, $configs, $parent_menu, true );
|
91 |
+
}
|
92 |
+
|
93 |
+
/**
|
94 |
+
* @param string $plugin_name
|
95 |
+
* @param Inpsyde_PhoneHome_Configuration $configuration
|
96 |
+
* @param Inpsyde_PhoneHome_Template_Loader $template_loader
|
97 |
+
* @param string $parent_menu
|
98 |
+
*/
|
99 |
+
public function __construct(
|
100 |
+
$plugin_name,
|
101 |
+
Inpsyde_PhoneHome_Configuration $configuration,
|
102 |
+
Inpsyde_PhoneHome_Template_Loader $template_loader,
|
103 |
+
$parent_menu = ''
|
104 |
+
) {
|
105 |
+
if ( ! is_string( $parent_menu ) || ! $parent_menu ) {
|
106 |
+
$parent_menu = "index.php";
|
107 |
+
}
|
108 |
+
|
109 |
+
$this->plugin_name = (string) $plugin_name;
|
110 |
+
$this->parent_menu = $parent_menu;
|
111 |
+
$this->configuration = $configuration;
|
112 |
+
$this->template_loader = $template_loader;
|
113 |
+
}
|
114 |
+
|
115 |
+
/**
|
116 |
+
* @param bool $network
|
117 |
+
*/
|
118 |
+
public function setup( $network ) {
|
119 |
+
|
120 |
+
$this->load_translations();
|
121 |
+
$this->setup_cron_controller();
|
122 |
+
|
123 |
+
if ( is_admin() ) {
|
124 |
+
|
125 |
+
$menu_hook = ( is_multisite() && $network ) ? 'network_admin_menu' : 'admin_menu';
|
126 |
+
add_action( $menu_hook, array( $this, 'setup_menu' ), PHP_INT_MAX );
|
127 |
+
|
128 |
+
$this->setup_action_controller();
|
129 |
+
}
|
130 |
+
}
|
131 |
+
|
132 |
+
/**
|
133 |
+
* Add a menu (or a submenu page) hooking a callback will print the ask for consent page.
|
134 |
+
* The id of the menu page is stored in a class property, so that we can recognize when current page
|
135 |
+
* is the the one associated with a consent page and avoid to print the notice in that page.
|
136 |
+
*/
|
137 |
+
public function setup_menu() {
|
138 |
+
|
139 |
+
if ( ! $this->should_display_page( $this->plugin_name, true ) ) {
|
140 |
+
return;
|
141 |
+
}
|
142 |
+
|
143 |
+
$page_title = esc_html( sprintf( __( '%s needs your help', 'inpsyde-phone-home' ), $this->plugin_name ) );
|
144 |
+
$menu_title = esc_html( sprintf( __( 'Help %s', 'inpsyde-phone-home' ), $this->plugin_name ) );
|
145 |
+
$menu_page_slug = sanitize_title( $this->plugin_name ) . '-phone-home-consent';
|
146 |
+
|
147 |
+
$menu_page_id = add_submenu_page(
|
148 |
+
$this->parent_menu,
|
149 |
+
$page_title,
|
150 |
+
$menu_title,
|
151 |
+
$this->configuration->minimum_capability(),
|
152 |
+
$menu_page_slug,
|
153 |
+
array( $this, 'print_consent_page' )
|
154 |
+
);
|
155 |
+
|
156 |
+
$this->setup_admin_notice( $menu_page_id, $menu_page_slug );
|
157 |
+
}
|
158 |
+
|
159 |
+
/**
|
160 |
+
* Load consent request template and print it.
|
161 |
+
*/
|
162 |
+
public function print_consent_page() {
|
163 |
+
|
164 |
+
if ( ! $this->should_display_page( $this->plugin_name ) ) {
|
165 |
+
return;
|
166 |
+
}
|
167 |
+
|
168 |
+
$screen = did_action( 'current_screen' ) ? get_current_screen() : '';
|
169 |
+
$current_slug = '';
|
170 |
+
|
171 |
+
if ( isset( $screen->id ) && isset( self::$menu_page_ids[ $screen->id ] ) ) {
|
172 |
+
$current_slug = self::$menu_page_ids[ $screen->id ];
|
173 |
+
}
|
174 |
+
|
175 |
+
if ( $current_slug && $current_slug !== $this->page_id ) {
|
176 |
+
return;
|
177 |
+
}
|
178 |
+
|
179 |
+
echo $this->template_loader->load(
|
180 |
+
Inpsyde_PhoneHome_Template_Loader::TEMPLATE_QUESTION,
|
181 |
+
array(
|
182 |
+
'plugin_name' => $this->plugin_name,
|
183 |
+
'anonymize' => $this->configuration->anonymize()
|
184 |
+
)
|
185 |
+
);
|
186 |
+
|
187 |
+
}
|
188 |
+
|
189 |
+
/**
|
190 |
+
* Load notice template and print it.
|
191 |
+
*/
|
192 |
+
public function print_notice() {
|
193 |
+
|
194 |
+
if ( ! $this->should_display_page( $this->plugin_name ) ) {
|
195 |
+
return;
|
196 |
+
}
|
197 |
+
|
198 |
+
$screen = did_action( 'current_screen' ) ? get_current_screen() : '';
|
199 |
+
|
200 |
+
// When in our menu page no need to also show the notice
|
201 |
+
if ( ! isset( $screen->id ) || isset( self::$menu_page_ids[ $screen->id ] ) ) {
|
202 |
+
return;
|
203 |
+
}
|
204 |
+
|
205 |
+
// Get chance to filter places where to show notice
|
206 |
+
if ( ! apply_filters( 'inpsyde-phone-home-show_notice', true, $screen ) ) {
|
207 |
+
return;
|
208 |
+
}
|
209 |
+
|
210 |
+
$template = Inpsyde_PhoneHome_Template_Loader::TEMPLATE_NOTICE;
|
211 |
+
|
212 |
+
echo $this->template_loader->load(
|
213 |
+
$template,
|
214 |
+
array(
|
215 |
+
'plugin_name' => $this->plugin_name,
|
216 |
+
'more_info_url' => menu_page_url( $this->page_id, false ),
|
217 |
+
'anonymize' => $this->configuration->anonymize()
|
218 |
+
)
|
219 |
+
);
|
220 |
+
}
|
221 |
+
|
222 |
+
/**
|
223 |
+
* If user gave consent setup a cron event to phone data home
|
224 |
+
*/
|
225 |
+
private function setup_cron_controller() {
|
226 |
+
$consent = new Inpsyde_PhoneHome_Consent( $this->plugin_name );
|
227 |
+
if ( $consent->agreed() ) {
|
228 |
+
$http_client = new Inpsyde_PhoneHome_HttpClient( $this->configuration );
|
229 |
+
$cron_controller = new Inpsyde_PhoneHome_CronController( $http_client, $consent );
|
230 |
+
$cron_controller->schedule();
|
231 |
+
}
|
232 |
+
}
|
233 |
+
|
234 |
+
/**
|
235 |
+
* Adds the AJAX handler callback to all the handled actions.
|
236 |
+
*/
|
237 |
+
private function setup_action_controller() {
|
238 |
+
|
239 |
+
$controller = new Inpsyde_PhoneHome_ActionController(
|
240 |
+
$this->plugin_name,
|
241 |
+
$this->parent_menu,
|
242 |
+
$this->configuration
|
243 |
+
);
|
244 |
+
|
245 |
+
$controller->setup();
|
246 |
+
}
|
247 |
+
|
248 |
+
/**
|
249 |
+
* Stores id of given menu page is stored in a class property, so that we can recognize when current page
|
250 |
+
* is the the one associated with a consent page and avoid to print the notice in that page.
|
251 |
+
* Also takes care of hooking 'admin_notices' to display the notice.
|
252 |
+
*
|
253 |
+
* @param string $menu_page_id
|
254 |
+
* @param string $menu_page_slug
|
255 |
+
*/
|
256 |
+
private function setup_admin_notice( $menu_page_id, $menu_page_slug ) {
|
257 |
+
|
258 |
+
if ( is_string( $menu_page_id ) && $menu_page_id ) {
|
259 |
+
self::$menu_page_ids[ $menu_page_id ] = $menu_page_slug;
|
260 |
+
$this->page_id = $menu_page_slug;
|
261 |
+
add_action( 'admin_notices', array( $this, 'print_notice' ), 999 );
|
262 |
+
}
|
263 |
+
}
|
264 |
+
|
265 |
+
/**
|
266 |
+
* Returns true when all the condition to display the notice of the ask for consent page are there.
|
267 |
+
*
|
268 |
+
* @param string $plugin_name
|
269 |
+
* @param bool $early_check
|
270 |
+
*
|
271 |
+
* @return bool
|
272 |
+
*/
|
273 |
+
private function should_display_page( $plugin_name, $early_check = false ) {
|
274 |
+
|
275 |
+
static $random_flag;
|
276 |
+
if ( ! isset( $random_flag ) ) {
|
277 |
+
$random_flag = rand( 1, 999 );
|
278 |
+
}
|
279 |
+
|
280 |
+
if ( is_bool( self::$should_display ) ) {
|
281 |
+
|
282 |
+
// We checked everything no need to check again
|
283 |
+
return self::$should_display;
|
284 |
+
|
285 |
+
} elseif ( $early_check && self::$should_display === $random_flag ) {
|
286 |
+
|
287 |
+
return true;
|
288 |
+
|
289 |
+
} elseif ( ! $early_check && self::$should_display === $random_flag ) {
|
290 |
+
|
291 |
+
// We need to check page id, let's do it and then update the static flag for next calls
|
292 |
+
self::$should_display = $this->page_id ? true : false;
|
293 |
+
|
294 |
+
return self::$should_display;
|
295 |
+
}
|
296 |
+
|
297 |
+
$user = wp_get_current_user();
|
298 |
+
|
299 |
+
if (
|
300 |
+
( ! $this->page_id && ! $early_check )
|
301 |
+
|| ! $user
|
302 |
+
|| ! user_can( $user, $this->configuration->minimum_capability() )
|
303 |
+
) {
|
304 |
+
self::$should_display = false;
|
305 |
+
|
306 |
+
return self::$should_display;
|
307 |
+
}
|
308 |
+
|
309 |
+
// If we already got agreement or user decided to hide the notice we do nothing.
|
310 |
+
$display_controller = new Inpsyde_PhoneHome_Consent_DisplayController( $plugin_name );
|
311 |
+
|
312 |
+
if ( ! $user || ! $display_controller->should_show( $user ) ) {
|
313 |
+
self::$should_display = false;
|
314 |
+
|
315 |
+
return self::$should_display;
|
316 |
+
}
|
317 |
+
|
318 |
+
// When running early, we checked everything but page id, so we store the static flag to a fixed random
|
319 |
+
// number so that on next call we can recognize this status
|
320 |
+
self::$should_display = $early_check ? $random_flag : true;
|
321 |
+
|
322 |
+
return self::$should_display;
|
323 |
+
}
|
324 |
+
|
325 |
+
/**
|
326 |
+
* Load package .mo file
|
327 |
+
*/
|
328 |
+
private function load_translations() {
|
329 |
+
|
330 |
+
$path = dirname( dirname( __FILE__ ) ) . '/languages/';
|
331 |
+
$locale = is_admin() && function_exists( 'get_user_locale' ) ? get_user_locale() : get_locale();
|
332 |
+
$mo_file = apply_filters( 'inpsyde-phone-home-mo-file', "{$path}/inpsyde-phone-home-{$locale}.mo", $locale );
|
333 |
+
|
334 |
+
load_textdomain( 'inpsyde-phone-home', $mo_file );
|
335 |
+
}
|
336 |
+
|
337 |
+
}
|
vendor/inpsyde/phone-home-client/src/HttpClient.php
ADDED
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php # -*- coding: utf-8 -*-
|
2 |
+
/*
|
3 |
+
* This file is part of the Inpsyde phone-home-client package.
|
4 |
+
*
|
5 |
+
* (c) 2017 Inpsyde GmbH
|
6 |
+
*
|
7 |
+
* For the full copyright and license information, please view the LICENSE
|
8 |
+
* file that was distributed with this source code.
|
9 |
+
*/
|
10 |
+
|
11 |
+
/**
|
12 |
+
* @author Giuseppe Mazzapica <giuseppe.mazzapica@gmail.com>
|
13 |
+
* @package phone-home-client
|
14 |
+
* @license https://www.gnu.org/licenses/gpl-3.0.txt GNU General Public License, version 3
|
15 |
+
*/
|
16 |
+
class Inpsyde_PhoneHome_HttpClient {
|
17 |
+
|
18 |
+
/**
|
19 |
+
* @var Inpsyde_PhoneHome_Configuration
|
20 |
+
*/
|
21 |
+
private $configuration;
|
22 |
+
|
23 |
+
/**
|
24 |
+
* @param Inpsyde_PhoneHome_Configuration $configuration
|
25 |
+
*/
|
26 |
+
public function __construct( Inpsyde_PhoneHome_Configuration $configuration ) {
|
27 |
+
$this->configuration = $configuration;
|
28 |
+
}
|
29 |
+
|
30 |
+
/**
|
31 |
+
* @param array $data
|
32 |
+
*
|
33 |
+
* @return bool
|
34 |
+
*/
|
35 |
+
public function send_data( array $data = array() ) {
|
36 |
+
|
37 |
+
if ( ! $data ) {
|
38 |
+
return false;
|
39 |
+
}
|
40 |
+
|
41 |
+
$target_url =
|
42 |
+
trailingslashit( $this->configuration->server_address() )
|
43 |
+
. ltrim( $this->configuration->server_endpoint(), '/' );
|
44 |
+
|
45 |
+
if ( ! filter_var( $target_url, FILTER_VALIDATE_URL ) ) {
|
46 |
+
return false;
|
47 |
+
}
|
48 |
+
|
49 |
+
$args = array(
|
50 |
+
'method' => $this->configuration->server_method(),
|
51 |
+
'timeout' => 0.01,
|
52 |
+
'blocking' => false,
|
53 |
+
'body' => $data,
|
54 |
+
);
|
55 |
+
|
56 |
+
$user = $this->configuration->server_basic_auth_user();
|
57 |
+
$pass = $this->configuration->server_basic_auth_pass();
|
58 |
+
|
59 |
+
if ( $user && $pass ) {
|
60 |
+
$args[ 'headers' ] = array( 'Authorization' => 'Basic ' . base64_encode( "{$user}:{$pass}" ) );
|
61 |
+
}
|
62 |
+
|
63 |
+
$response = wp_remote_request( $target_url, $args );
|
64 |
+
|
65 |
+
return ! is_wp_error( $response );
|
66 |
+
}
|
67 |
+
}
|
vendor/inpsyde/phone-home-client/src/Template/Buttons.php
ADDED
@@ -0,0 +1,90 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php # -*- coding: utf-8 -*-
|
2 |
+
/*
|
3 |
+
* This file is part of the Inpsyde phone-home-client package.
|
4 |
+
*
|
5 |
+
* (c) 2017 Inpsyde GmbH
|
6 |
+
*
|
7 |
+
* For the full copyright and license information, please view the LICENSE
|
8 |
+
* file that was distributed with this source code.
|
9 |
+
*/
|
10 |
+
|
11 |
+
/**
|
12 |
+
* @author Giuseppe Mazzapica <giuseppe.mazzapica@gmail.com>
|
13 |
+
* @package phone-home-client
|
14 |
+
* @license https://www.gnu.org/licenses/gpl-3.0.txt GNU General Public License, version 3
|
15 |
+
*/
|
16 |
+
class Inpsyde_PhoneHome_Template_Buttons {
|
17 |
+
|
18 |
+
/**
|
19 |
+
* @return string
|
20 |
+
*/
|
21 |
+
public function agree_button() {
|
22 |
+
ob_start();
|
23 |
+
$action = Inpsyde_PhoneHome_ActionController::ACTION_AGREE;
|
24 |
+
?>
|
25 |
+
<a
|
26 |
+
href="<?= esc_url( Inpsyde_PhoneHome_ActionController::url_for_action( $action ) ) ?>"
|
27 |
+
class="button button-primary">
|
28 |
+
<?= esc_html__( 'Yes, I agree.', 'inpsyde-phone-home' ) ?>
|
29 |
+
</a>
|
30 |
+
<?php
|
31 |
+
|
32 |
+
return ob_get_clean();
|
33 |
+
}
|
34 |
+
|
35 |
+
/**
|
36 |
+
* @return string
|
37 |
+
*/
|
38 |
+
public function maybe_button() {
|
39 |
+
ob_start();
|
40 |
+
$action = Inpsyde_PhoneHome_ActionController::ACTION_MAYBE;
|
41 |
+
?>
|
42 |
+
<a
|
43 |
+
href="<?= esc_url( Inpsyde_PhoneHome_ActionController::url_for_action( $action ) ) ?>"
|
44 |
+
class="button">
|
45 |
+
<?= esc_html__( 'I have to think about that, ask me later.', 'inpsyde-phone-home' ) ?>
|
46 |
+
</a>
|
47 |
+
<?php
|
48 |
+
|
49 |
+
return ob_get_clean();
|
50 |
+
}
|
51 |
+
|
52 |
+
/**
|
53 |
+
* @return string
|
54 |
+
*/
|
55 |
+
public function disagree_button() {
|
56 |
+
ob_start();
|
57 |
+
$action = Inpsyde_PhoneHome_ActionController::ACTION_DISAGREE;
|
58 |
+
?>
|
59 |
+
<a
|
60 |
+
href="<?= esc_url( Inpsyde_PhoneHome_ActionController::url_for_action( $action ) ) ?>"
|
61 |
+
class="button">
|
62 |
+
<?= esc_html__( 'Please no. Don\'t ask me again.', 'inpsyde-phone-home' ) ?>
|
63 |
+
</a>
|
64 |
+
<?php
|
65 |
+
|
66 |
+
return ob_get_clean();
|
67 |
+
}
|
68 |
+
|
69 |
+
/**
|
70 |
+
* @param string $more_info_url
|
71 |
+
*
|
72 |
+
* @return string
|
73 |
+
*/
|
74 |
+
public function more_info_button( $more_info_url ) {
|
75 |
+
if ( ! is_string( $more_info_url ) || ! $more_info_url ) {
|
76 |
+
return '';
|
77 |
+
}
|
78 |
+
|
79 |
+
ob_start();
|
80 |
+
?>
|
81 |
+
<a
|
82 |
+
href="<?= esc_url( $more_info_url ) ?>"
|
83 |
+
class="button button-secondary">
|
84 |
+
<?= esc_html__( 'More info', 'inpsyde-phone-home' ) ?>
|
85 |
+
</a>
|
86 |
+
<?php
|
87 |
+
|
88 |
+
return ob_get_clean();
|
89 |
+
}
|
90 |
+
}
|
vendor/inpsyde/phone-home-client/src/Template/Loader.php
ADDED
@@ -0,0 +1,107 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php # -*- coding: utf-8 -*-
|
2 |
+
/*
|
3 |
+
* This file is part of the Inpsyde phone-home-client package.
|
4 |
+
*
|
5 |
+
* (c) 2017 Inpsyde GmbH
|
6 |
+
*
|
7 |
+
* For the full copyright and license information, please view the LICENSE
|
8 |
+
* file that was distributed with this source code.
|
9 |
+
*/
|
10 |
+
|
11 |
+
/**
|
12 |
+
* @author Giuseppe Mazzapica <giuseppe.mazzapica@gmail.com>
|
13 |
+
* @package phone-home-client
|
14 |
+
* @license https://www.gnu.org/licenses/gpl-3.0.txt GNU General Public License, version 3
|
15 |
+
*/
|
16 |
+
class Inpsyde_PhoneHome_Template_Loader {
|
17 |
+
|
18 |
+
const TEMPLATE_NOTICE = 'notice';
|
19 |
+
const TEMPLATE_QUESTION = 'question';
|
20 |
+
|
21 |
+
private static $types = array(
|
22 |
+
self::TEMPLATE_NOTICE => 'notice.php',
|
23 |
+
self::TEMPLATE_QUESTION => 'question.php',
|
24 |
+
);
|
25 |
+
|
26 |
+
/**
|
27 |
+
* @var string
|
28 |
+
*/
|
29 |
+
private static $lang_dir;
|
30 |
+
|
31 |
+
/**
|
32 |
+
* @param string $folder
|
33 |
+
*/
|
34 |
+
public function __construct( $folder ) {
|
35 |
+
$this->folder = trailingslashit( (string) $folder );
|
36 |
+
}
|
37 |
+
|
38 |
+
/**
|
39 |
+
* @param $template_type
|
40 |
+
* @param array $data
|
41 |
+
*
|
42 |
+
* @return string
|
43 |
+
*/
|
44 |
+
public function load( $template_type, array $data = array() ) {
|
45 |
+
|
46 |
+
if ( ! array_key_exists( $template_type, self::$types ) ) {
|
47 |
+
return '';
|
48 |
+
}
|
49 |
+
|
50 |
+
$file = self::$types[ $template_type ];
|
51 |
+
$lang_dir = $this->language_dir();
|
52 |
+
|
53 |
+
// If the localized templates dir wasn't found, or the required template isn't available there, use default dir
|
54 |
+
if ( ! $lang_dir || ! file_exists( $this->folder . $lang_dir . $file ) ) {
|
55 |
+
$lang_dir = 'en/';
|
56 |
+
}
|
57 |
+
|
58 |
+
ob_start();
|
59 |
+
/** @noinspection PhpUnusedLocalVariableInspection */
|
60 |
+
$data = (object) $data;
|
61 |
+
/** @noinspection PhpIncludeInspection */
|
62 |
+
include $this->folder . $lang_dir . $file;
|
63 |
+
|
64 |
+
return ob_get_clean();
|
65 |
+
}
|
66 |
+
|
67 |
+
/**
|
68 |
+
* Determinates the path where to look for templates based on current locale
|
69 |
+
*
|
70 |
+
* @return string
|
71 |
+
*/
|
72 |
+
private function language_dir() {
|
73 |
+
|
74 |
+
if ( is_string( self::$lang_dir ) ) {
|
75 |
+
return self::$lang_dir;
|
76 |
+
}
|
77 |
+
|
78 |
+
$locale = is_admin() && function_exists( 'get_user_locale' ) ? get_user_locale() : get_locale();
|
79 |
+
$locale = filter_var( $locale, FILTER_SANITIZE_URL );
|
80 |
+
|
81 |
+
if ( ! $locale ) {
|
82 |
+
self::$lang_dir = '';
|
83 |
+
|
84 |
+
return '';
|
85 |
+
}
|
86 |
+
|
87 |
+
// Found exact match for the locale, just use it
|
88 |
+
if ( is_dir( $this->folder. $locale ) ) {
|
89 |
+
self::$lang_dir = "{$locale}/";
|
90 |
+
|
91 |
+
return self::$lang_dir;
|
92 |
+
}
|
93 |
+
|
94 |
+
$locale_parts = explode( '_', $locale );
|
95 |
+
|
96 |
+
// Found a match for the first part of locale (e.g. "de" in "de_DE"), use it
|
97 |
+
if ( $locale_parts && is_dir( $this->folder . $locale_parts[ 0 ] ) ) {
|
98 |
+
self::$lang_dir = trailingslashit( $locale_parts[ 0 ] );
|
99 |
+
|
100 |
+
return self::$lang_dir;
|
101 |
+
}
|
102 |
+
|
103 |
+
self::$lang_dir = '';
|
104 |
+
|
105 |
+
return '';
|
106 |
+
}
|
107 |
+
}
|