Version Description
(February 2015) =
- Fixed: Deleted plugins were not logged correctly (name and other info was missing).
- Added: Filter
simple_history/logger/load_logger
andsimple_history/dropin/load_dropin
that can be used to control the loading of each logger or dropin. See example file for usage examples. - Fixed: modal window with context data now works better on small screens.
- Changed: Misc internal changes.
Download this release
Release Info
Developer | eskapism |
Plugin | Simple History |
Version | 2.0.22 |
Comparing to | |
See all releases |
Code changes from version 2.0.6 to 2.0.22
- README.md +4 -4
- SimpleHistoryFunctions.php +0 -38
- css/styles.css +124 -43
- dropins/SimpleHistoryFilterDropin.css +66 -5
- dropins/SimpleHistoryFilterDropin.js +23 -14
- dropins/SimpleHistoryFilterDropin.php +107 -92
- dropins/SimpleHistoryIpInfoDropin.css +135 -0
- dropins/SimpleHistoryIpInfoDropin.js +61 -2
- dropins/SimpleHistoryIpInfoDropin.php +137 -2
- dropins/SimpleHistoryNewRowsNotifier.php +1 -1
- dropins/SimpleHistoryRSSDropin.php +34 -28
- dropins/SimpleHistorySettingsLogtestDropin.php +14 -10
- dropins/SimpleHistorySidebarDropin.css +28 -0
- dropins/SimpleHistorySidebarDropin.php +225 -0
- examples.php → examples/examples.php +109 -4
- SimpleHistory.php → inc/SimpleHistory.php +1072 -553
- SimpleHistoryLogQuery.php → inc/SimpleHistoryLogQuery.php +11 -1
- index.php +18 -60
- js/scripts.js +44 -37
- languages/simple-history-da_DK.mo +0 -0
- languages/simple-history-da_DK.po +1790 -0
- languages/simple-history-de_DE.mo +0 -0
- languages/simple-history-de_DE.po +1475 -269
- languages/simple-history-nl_NL.mo +0 -0
- languages/simple-history-nl_NL.po +1527 -0
- languages/simple-history-pl_PL.mo +0 -0
- languages/simple-history-pl_PL.po +1293 -542
- languages/simple-history-sv_SE.mo +0 -0
- languages/simple-history-sv_SE.po +403 -169
- languages/simple-history.pot +509 -277
- loggers/SimpleCommentsLogger.php +80 -77
- loggers/SimpleCoreUpdatesLogger.php +1 -1
- loggers/SimpleLogger.php +398 -325
- loggers/SimpleMediaLogger.php +86 -33
- loggers/SimpleOptionsLogger.php +10 -10
- loggers/SimplePluginLogger.php +78 -45
- loggers/SimplePostLogger.php +222 -6
- loggers/SimpleThemeLogger.php +8 -4
- loggers/SimpleUserLogger.php +125 -112
- readme.txt +137 -4
- screenshot-1.png +0 -0
- screenshot-2.png +0 -0
- screenshot-3.png +0 -0
- templates/settings-statsForGeeks.php +22 -9
README.md
CHANGED
@@ -13,19 +13,19 @@ This screenshot show the log view + it also shows the filter function in use: th
|
|
13 |
are of type post and pages and media (i.e. images & other uploads), and only events
|
14 |
initiated by a specific user.
|
15 |
|
16 |
-
![Simple History screenshot](https://
|
17 |
|
18 |
## Events with different severity
|
19 |
|
20 |
Simple History uses the log levels specified in the [PHP PSR-3 standard](http://www.php-fig.org/psr/psr-3/).
|
21 |
|
22 |
-
![Simple History screenshot](https://
|
23 |
|
24 |
## Events have context with extra details
|
25 |
|
26 |
Each logged event can include useful rich formatted extra information. For example: a plugin install can contain author info and a the url to the plugin, and an uploaded image can contain a thumbnail of the image.
|
27 |
|
28 |
-
![Simple History screenshot](
|
29 |
|
30 |
# Plugin API
|
31 |
|
@@ -43,4 +43,4 @@ SimpleLogger()->debug("Ok, cron job is running!");
|
|
43 |
|
44 |
```
|
45 |
|
46 |
-
|
13 |
are of type post and pages and media (i.e. images & other uploads), and only events
|
14 |
initiated by a specific user.
|
15 |
|
16 |
+
![Simple History screenshot](https://ps.w.org/simple-history/assets/screenshot-1.png?rev=1)
|
17 |
|
18 |
## Events with different severity
|
19 |
|
20 |
Simple History uses the log levels specified in the [PHP PSR-3 standard](http://www.php-fig.org/psr/psr-3/).
|
21 |
|
22 |
+
![Simple History screenshot](https://ps.w.org/simple-history/assets/screenshot-2.png?rev=1096689)
|
23 |
|
24 |
## Events have context with extra details
|
25 |
|
26 |
Each logged event can include useful rich formatted extra information. For example: a plugin install can contain author info and a the url to the plugin, and an uploaded image can contain a thumbnail of the image.
|
27 |
|
28 |
+
![Simple History screenshot](http://ps.w.org/simple-history/assets/screenshot-3.png?rev=1096689)
|
29 |
|
30 |
# Plugin API
|
31 |
|
43 |
|
44 |
```
|
45 |
|
46 |
+
You will find more examples in the [examples.php](https://github.com/bonny/WordPress-Simple-History/blob/master/examples.php) file.
|
SimpleHistoryFunctions.php
DELETED
@@ -1,38 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Helper function with same name as the SimpleLogger-class
|
5 |
-
*
|
6 |
-
* Makes call like this possible:
|
7 |
-
* SimpleLogger()->info("This is a message sent to the log");
|
8 |
-
*/
|
9 |
-
function SimpleLogger() {
|
10 |
-
return new SimpleLogger( $GLOBALS["simple_history"] );
|
11 |
-
}
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Add event to history table
|
15 |
-
* This is here for backwards compatibility
|
16 |
-
* If you use this please consider using
|
17 |
-
* SimpleHistory()->info();
|
18 |
-
* instead
|
19 |
-
*/
|
20 |
-
function simple_history_add($args) {
|
21 |
-
|
22 |
-
$defaults = array(
|
23 |
-
"action" => null,
|
24 |
-
"object_type" => null,
|
25 |
-
"object_subtype" => null,
|
26 |
-
"object_id" => null,
|
27 |
-
"object_name" => null,
|
28 |
-
"user_id" => null,
|
29 |
-
"description" => null
|
30 |
-
);
|
31 |
-
|
32 |
-
$context = wp_parse_args( $args, $defaults );
|
33 |
-
|
34 |
-
$message = "{$context["object_type"]} {$context["object_name"]} {$context["action"]}";
|
35 |
-
|
36 |
-
SimpleLogger()->info($message, $context);
|
37 |
-
|
38 |
-
} // simple_history_add
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
css/styles.css
CHANGED
@@ -11,7 +11,7 @@ The spinner that wp uses:;
|
|
11 |
.SimpleHistory__cf:after { clear:both; }
|
12 |
.SimpleHistory__cf { zoom:1; } /* For IE 6/7 (trigger hasLayout) */
|
13 |
|
14 |
-
.SimpleHistoryGui,
|
15 |
.SimpleHistoryGuiExample {
|
16 |
position: relative;
|
17 |
/* must have a height so "loading..." will be visible in dashboard */
|
@@ -37,7 +37,7 @@ The spinner that wp uses:;
|
|
37 |
transition: opacity .1s ease-out;
|
38 |
}
|
39 |
|
40 |
-
/* on
|
41 |
/*.dashboard_page_simple_history_page .SimpleHistoryLogitemsWrap {*/
|
42 |
.dashboard_page_simple_history_page .SimpleHistoryGuiWrap {
|
43 |
/*float: left;*/
|
@@ -53,9 +53,21 @@ The spinner that wp uses:;
|
|
53 |
|
54 |
.dashboard_page_simple_history_page .SimpleHistoryGui {
|
55 |
width: 100%;
|
56 |
-
float: left;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
}
|
58 |
|
|
|
|
|
59 |
/*
|
60 |
.SimpleHistoryGui:after {
|
61 |
content: "\f206";
|
@@ -72,20 +84,6 @@ The spinner that wp uses:;
|
|
72 |
}
|
73 |
*/
|
74 |
|
75 |
-
.SimpleHistory__filters {
|
76 |
-
float: right;
|
77 |
-
width: 300px;
|
78 |
-
margin-right: -340px;
|
79 |
-
/* hide by default while log is loading */
|
80 |
-
opacity: 0;
|
81 |
-
transition: all .25s ease-out;
|
82 |
-
}
|
83 |
-
|
84 |
-
.SimpleHistory--isLoaded .SimpleHistory__filters {
|
85 |
-
opacity: 1;
|
86 |
-
}
|
87 |
-
|
88 |
-
|
89 |
.SimpleHistoryLogitems {
|
90 |
margin: 0;
|
91 |
background: #fff;
|
@@ -103,7 +101,7 @@ The spinner that wp uses:;
|
|
103 |
|
104 |
/**
|
105 |
* Log items
|
106 |
-
* There is always a 4px left border, just with differents colors
|
107 |
*/
|
108 |
.SimpleHistoryLogitem {
|
109 |
position: relative;
|
@@ -111,7 +109,7 @@ The spinner that wp uses:;
|
|
111 |
margin: 0;
|
112 |
padding: 20px 20px 20px 16px;
|
113 |
/*border-bottom: 1px solid rgb(229, 229, 229);*/
|
114 |
-
|
115 |
/* uncomment to show border with log color */
|
116 |
/*border-left: 4px solid transparent;*/
|
117 |
|
@@ -236,6 +234,7 @@ Style different log levels.
|
|
236 |
}
|
237 |
|
238 |
.SimpleHistoryLogitem__senderImage {
|
|
|
239 |
border-radius: 50%;
|
240 |
overflow: hidden;
|
241 |
/*opacity: .8;*/
|
@@ -307,7 +306,7 @@ Style different log levels.
|
|
307 |
|
308 |
/* table with keys and values */
|
309 |
/*.SimpleHistoryLogitem__keyValueTable {
|
310 |
-
|
311 |
}*/
|
312 |
|
313 |
.SimpleHistoryLogitem__keyValueTable th,
|
@@ -357,25 +356,29 @@ Style different log levels.
|
|
357 |
Images/thumbs can be styles nicely
|
358 |
*/
|
359 |
.SimpleHistoryLogitemThumbnail {
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
|
366 |
}
|
367 |
|
|
|
|
|
|
|
|
|
368 |
.SimpleHistoryLogitemThumbnail img {
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
}
|
380 |
|
381 |
|
@@ -469,7 +472,7 @@ when occasions are added
|
|
469 |
|
470 |
|
471 |
/*
|
472 |
-
customizations for the dashboard
|
473 |
i.e. the log is inside a .postbox element
|
474 |
*/
|
475 |
|
@@ -524,12 +527,19 @@ i.e. the log is inside a .postbox element
|
|
524 |
margin-bottom: 0;
|
525 |
}
|
526 |
|
527 |
-
.postbox .SimpleHistoryLogitem__text,
|
528 |
-
.postbox .SimpleHistoryLogitem__details,
|
529 |
.postbox .SimpleHistoryLogitem__details p {
|
530 |
line-height: 1.1;
|
531 |
}
|
532 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
533 |
/*
|
534 |
.postbox .SimpleHistoryLogitem__details {
|
535 |
display: none;
|
@@ -635,6 +645,23 @@ Modal window with detailss
|
|
635 |
right: 120px;
|
636 |
top: 60px;
|
637 |
z-index: 15;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
638 |
}
|
639 |
|
640 |
.SimpleHistory-modal__contentInner {
|
@@ -658,14 +685,16 @@ Modal window with detailss
|
|
658 |
|
659 |
/* if wp left meny is collapsed .folded is added and meny width is 36 px */
|
660 |
.folded .SimpleHistory-modal__content {
|
661 |
-
left: 156px /* admin meny width is 160 px*/
|
662 |
}
|
663 |
-
|
|
|
|
|
664 |
.SimpleHistory-modal__content {
|
665 |
-
left:
|
666 |
}
|
667 |
-
}
|
668 |
|
|
|
669 |
|
670 |
|
671 |
.SimpleHistory-modal__content--enter {
|
@@ -698,6 +727,13 @@ Modal window with detailss
|
|
698 |
top: 92px /* admin bar height is 32 px*/
|
699 |
}
|
700 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
701 |
/* style the logRow a bit more when shown in modal */
|
702 |
.SimpleHistory-modal .SimpleHistoryLogitem__header {
|
703 |
font-size: 16px;
|
@@ -753,6 +789,30 @@ Modal window with detailss
|
|
753 |
background-color: #eee;
|
754 |
}
|
755 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
756 |
.SimpleHistory-modal .SimpleHistoryLogitem--initiator-web_user .SimpleHistoryLogitem__secondcol,
|
757 |
.SimpleHistory-modal .SimpleHistoryLogitem--initiator-other .SimpleHistoryLogitem__secondcol {
|
758 |
margin-left: 0;
|
@@ -761,6 +821,7 @@ Modal window with detailss
|
|
761 |
/** wordpress as initiator = add wordpress icon */
|
762 |
/** anonymous user as initiator = plain user image */
|
763 |
.SimpleHistoryLogitem--initiator-wp .SimpleHistoryLogitem__senderImage:before,
|
|
|
764 |
.SimpleHistoryLogitem--initiator-web_user .SimpleHistoryLogitem__senderImage:before {
|
765 |
display: inline-block;
|
766 |
-webkit-font-smoothing: antialiased;
|
@@ -769,10 +830,25 @@ Modal window with detailss
|
|
769 |
color: #999;
|
770 |
}
|
771 |
|
772 |
-
.SimpleHistoryLogitem--initiator-wp .SimpleHistoryLogitem__senderImage:before
|
|
|
773 |
content: "\f120";
|
774 |
}
|
775 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
776 |
.SimpleHistoryLogitem--initiator-web_user .SimpleHistoryLogitem__senderImage:before {
|
777 |
content: "\f110";
|
778 |
}
|
@@ -821,3 +897,8 @@ Modal window with detailss
|
|
821 |
display: block;
|
822 |
}
|
823 |
|
|
|
|
|
|
|
|
|
|
11 |
.SimpleHistory__cf:after { clear:both; }
|
12 |
.SimpleHistory__cf { zoom:1; } /* For IE 6/7 (trigger hasLayout) */
|
13 |
|
14 |
+
.SimpleHistoryGui,
|
15 |
.SimpleHistoryGuiExample {
|
16 |
position: relative;
|
17 |
/* must have a height so "loading..." will be visible in dashboard */
|
37 |
transition: opacity .1s ease-out;
|
38 |
}
|
39 |
|
40 |
+
/* on its own page */
|
41 |
/*.dashboard_page_simple_history_page .SimpleHistoryLogitemsWrap {*/
|
42 |
.dashboard_page_simple_history_page .SimpleHistoryGuiWrap {
|
43 |
/*float: left;*/
|
53 |
|
54 |
.dashboard_page_simple_history_page .SimpleHistoryGui {
|
55 |
width: 100%;
|
56 |
+
float: left;
|
57 |
+
}
|
58 |
+
|
59 |
+
@media only screen and (max-width: 850px) {
|
60 |
+
.dashboard_page_simple_history_page .SimpleHistoryGuiWrap {
|
61 |
+
float: none;
|
62 |
+
margin-right: auto;
|
63 |
+
}
|
64 |
+
.dashboard_page_simple_history_page .SimpleHistoryGui {
|
65 |
+
float: none;
|
66 |
+
}
|
67 |
}
|
68 |
|
69 |
+
|
70 |
+
|
71 |
/*
|
72 |
.SimpleHistoryGui:after {
|
73 |
content: "\f206";
|
84 |
}
|
85 |
*/
|
86 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
87 |
.SimpleHistoryLogitems {
|
88 |
margin: 0;
|
89 |
background: #fff;
|
101 |
|
102 |
/**
|
103 |
* Log items
|
104 |
+
* There is always a 4px left border, just with differents colors
|
105 |
*/
|
106 |
.SimpleHistoryLogitem {
|
107 |
position: relative;
|
109 |
margin: 0;
|
110 |
padding: 20px 20px 20px 16px;
|
111 |
/*border-bottom: 1px solid rgb(229, 229, 229);*/
|
112 |
+
|
113 |
/* uncomment to show border with log color */
|
114 |
/*border-left: 4px solid transparent;*/
|
115 |
|
234 |
}
|
235 |
|
236 |
.SimpleHistoryLogitem__senderImage {
|
237 |
+
position: relative;
|
238 |
border-radius: 50%;
|
239 |
overflow: hidden;
|
240 |
/*opacity: .8;*/
|
306 |
|
307 |
/* table with keys and values */
|
308 |
/*.SimpleHistoryLogitem__keyValueTable {
|
309 |
+
|
310 |
}*/
|
311 |
|
312 |
.SimpleHistoryLogitem__keyValueTable th,
|
356 |
Images/thumbs can be styles nicely
|
357 |
*/
|
358 |
.SimpleHistoryLogitemThumbnail {
|
359 |
+
display: inline-block;
|
360 |
+
margin: .5em 0 0 0;
|
361 |
+
padding: 5px;
|
362 |
+
border: 1px solid #ddd;
|
363 |
+
border-radius: 2px;
|
364 |
|
365 |
}
|
366 |
|
367 |
+
.SimpleHistoryLogitemThumbnailLink {
|
368 |
+
display: inline-block;
|
369 |
+
}
|
370 |
+
|
371 |
.SimpleHistoryLogitemThumbnail img {
|
372 |
+
/*
|
373 |
+
photoshop-like background that represents transparency
|
374 |
+
so user can see that an image have transparency
|
375 |
+
*/
|
376 |
+
display: block;
|
377 |
+
background-image: url('data:image/gif;base64,R0lGODlhEAAQAIAAAOXl5f///yH5BAAAAAAALAAAAAAQABAAAAIfhG+hq4jM3IFLJhoswNly/XkcBpIiVaInlLJr9FZWAQA7');
|
378 |
+
max-width: 100%;
|
379 |
+
max-height: 300px;
|
380 |
+
max-height: 200px;
|
381 |
+
height: auto;
|
382 |
}
|
383 |
|
384 |
|
472 |
|
473 |
|
474 |
/*
|
475 |
+
customizations for the dashboard
|
476 |
i.e. the log is inside a .postbox element
|
477 |
*/
|
478 |
|
527 |
margin-bottom: 0;
|
528 |
}
|
529 |
|
530 |
+
.postbox .SimpleHistoryLogitem__text,
|
531 |
+
.postbox .SimpleHistoryLogitem__details,
|
532 |
.postbox .SimpleHistoryLogitem__details p {
|
533 |
line-height: 1.1;
|
534 |
}
|
535 |
|
536 |
+
.postbox .SimpleHistoryPaginationLink,
|
537 |
+
.postbox .SimpleHistoryPaginationCurrentPage {
|
538 |
+
font-size: 13px;
|
539 |
+
line-height: 19px;
|
540 |
+
height: 24px;
|
541 |
+
}
|
542 |
+
|
543 |
/*
|
544 |
.postbox .SimpleHistoryLogitem__details {
|
545 |
display: none;
|
645 |
right: 120px;
|
646 |
top: 60px;
|
647 |
z-index: 15;
|
648 |
+
-webkit-overflow-scrolling: touch;
|
649 |
+
}
|
650 |
+
|
651 |
+
@media only screen and (max-width: 960px) {
|
652 |
+
|
653 |
+
.SimpleHistory-modal__background {
|
654 |
+
z-index: 9991; /* #adminmenuwrap has z-index 9990 */
|
655 |
+
}
|
656 |
+
|
657 |
+
.SimpleHistory-modal__content {
|
658 |
+
top: 10px;
|
659 |
+
left: 10px;
|
660 |
+
right: 10px;
|
661 |
+
bottom: 10px;
|
662 |
+
z-index: 9991; /* #adminmenuwrap has z-index 9990 */
|
663 |
+
}
|
664 |
+
|
665 |
}
|
666 |
|
667 |
.SimpleHistory-modal__contentInner {
|
685 |
|
686 |
/* if wp left meny is collapsed .folded is added and meny width is 36 px */
|
687 |
.folded .SimpleHistory-modal__content {
|
688 |
+
left: 156px /* admin meny width is 160 px */
|
689 |
}
|
690 |
+
|
691 |
+
@media only screen and (max-width: 850px) {
|
692 |
+
|
693 |
.SimpleHistory-modal__content {
|
694 |
+
left: 10px /* admin meny width is 160 px */
|
695 |
}
|
|
|
696 |
|
697 |
+
}
|
698 |
|
699 |
|
700 |
.SimpleHistory-modal__content--enter {
|
727 |
top: 92px /* admin bar height is 32 px*/
|
728 |
}
|
729 |
|
730 |
+
@media only screen and (max-width: 960px) {
|
731 |
+
.admin-bar .SimpleHistory-modal__content {
|
732 |
+
top: 10px;
|
733 |
+
z-index: 100000;
|
734 |
+
}
|
735 |
+
}
|
736 |
+
|
737 |
/* style the logRow a bit more when shown in modal */
|
738 |
.SimpleHistory-modal .SimpleHistoryLogitem__header {
|
739 |
font-size: 16px;
|
789 |
background-color: #eee;
|
790 |
}
|
791 |
|
792 |
+
|
793 |
+
@media only screen and (max-width: 850px) {
|
794 |
+
|
795 |
+
.SimpleHistoryLogitem__moreDetails {
|
796 |
+
margin-left: -60px;
|
797 |
+
}
|
798 |
+
|
799 |
+
/* make table less table-like on small screens by putting tds below/after each other
|
800 |
+
instead of next to each other */
|
801 |
+
.SimpleHistoryLogitem__moreDetailsContext th:first-child,
|
802 |
+
.SimpleHistoryLogitem__moreDetailsContext td:first-child {
|
803 |
+
display: block;
|
804 |
+
font-weight: bold;
|
805 |
+
}
|
806 |
+
|
807 |
+
.SimpleHistoryLogitem__moreDetailsContext th:nth-child(2),
|
808 |
+
.SimpleHistoryLogitem__moreDetailsContext td:nth-child(2) {
|
809 |
+
display: block;
|
810 |
+
margin-bottom: 1em;
|
811 |
+
}
|
812 |
+
|
813 |
+
}
|
814 |
+
|
815 |
+
|
816 |
.SimpleHistory-modal .SimpleHistoryLogitem--initiator-web_user .SimpleHistoryLogitem__secondcol,
|
817 |
.SimpleHistory-modal .SimpleHistoryLogitem--initiator-other .SimpleHistoryLogitem__secondcol {
|
818 |
margin-left: 0;
|
821 |
/** wordpress as initiator = add wordpress icon */
|
822 |
/** anonymous user as initiator = plain user image */
|
823 |
.SimpleHistoryLogitem--initiator-wp .SimpleHistoryLogitem__senderImage:before,
|
824 |
+
.SimpleHistoryLogitem--initiator-wp_cli .SimpleHistoryLogitem__senderImage:before,
|
825 |
.SimpleHistoryLogitem--initiator-web_user .SimpleHistoryLogitem__senderImage:before {
|
826 |
display: inline-block;
|
827 |
-webkit-font-smoothing: antialiased;
|
830 |
color: #999;
|
831 |
}
|
832 |
|
833 |
+
.SimpleHistoryLogitem--initiator-wp .SimpleHistoryLogitem__senderImage:before,
|
834 |
+
.SimpleHistoryLogitem--initiator-wp_cli .SimpleHistoryLogitem__senderImage:before {
|
835 |
content: "\f120";
|
836 |
}
|
837 |
|
838 |
+
.SimpleHistoryLogitem--initiator-wp_cli .SimpleHistoryLogitem__senderImage:after {
|
839 |
+
content: "CLI";
|
840 |
+
position: absolute;
|
841 |
+
background: rgba(255, 255, 255, 0.7);
|
842 |
+
top: 0;
|
843 |
+
left: 0;
|
844 |
+
right: 0;
|
845 |
+
bottom: 0;
|
846 |
+
line-height: 36px;
|
847 |
+
text-align: center;
|
848 |
+
font-family: monospace;
|
849 |
+
font-sIze: 12px;
|
850 |
+
}
|
851 |
+
|
852 |
.SimpleHistoryLogitem--initiator-web_user .SimpleHistoryLogitem__senderImage:before {
|
853 |
content: "\f110";
|
854 |
}
|
897 |
display: block;
|
898 |
}
|
899 |
|
900 |
+
.postbox .SimpleHistory--hasNoHits .SimpleHistoryLogitems__noHits {
|
901 |
+
margin-left: 13px;
|
902 |
+
margin-right: 13px;
|
903 |
+
}
|
904 |
+
|
dropins/SimpleHistoryFilterDropin.css
CHANGED
@@ -1,15 +1,32 @@
|
|
1 |
|
2 |
-
/*.SimpleHistory__filters {
|
3 |
|
4 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
|
6 |
.SimpleHistory__filters__form select {
|
7 |
-
width: 100%;
|
|
|
8 |
}
|
9 |
|
10 |
-
.SimpleHistory__filters__form input[type=text],
|
11 |
.SimpleHistory__filters__form input[type=search] {
|
12 |
-
width: 100%;
|
|
|
|
|
|
|
|
|
|
|
13 |
}
|
14 |
|
15 |
/**
|
@@ -35,3 +52,47 @@
|
|
35 |
margin-right: 10px;
|
36 |
}
|
37 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
2 |
|
3 |
+
.SimpleHistory__filters {
|
4 |
+
/*float: right;
|
5 |
+
width: 300px;
|
6 |
+
margin-right: -340px;
|
7 |
+
*/
|
8 |
+
/* hide by default while log is loading */
|
9 |
+
opacity: .5;
|
10 |
+
transition: all .25s ease-out;
|
11 |
+
}
|
12 |
+
|
13 |
+
.SimpleHistory--isLoaded .SimpleHistory__filters {
|
14 |
+
opacity: 1;
|
15 |
+
}
|
16 |
|
17 |
.SimpleHistory__filters__form select {
|
18 |
+
/* width: 100%; */
|
19 |
+
width: 310px;
|
20 |
}
|
21 |
|
22 |
+
.SimpleHistory__filters__form input[type=text],
|
23 |
.SimpleHistory__filters__form input[type=search] {
|
24 |
+
/* width: 100%; */
|
25 |
+
/* width: 310px; */
|
26 |
+
}
|
27 |
+
|
28 |
+
.SimpleHistory__filters__filter--date {
|
29 |
+
width: 310px;
|
30 |
}
|
31 |
|
32 |
/**
|
52 |
margin-right: 10px;
|
53 |
}
|
54 |
|
55 |
+
.SimpleHistoryFilterDropin-showMoreFilters {
|
56 |
+
border: 0;
|
57 |
+
background: none;
|
58 |
+
color: rgb(0, 116, 162);
|
59 |
+
cursor: pointer;
|
60 |
+
}
|
61 |
+
|
62 |
+
.SimpleHistoryFilterDropin-showMoreFilters:hover {
|
63 |
+
color: rgb(46, 162, 204);
|
64 |
+
}
|
65 |
+
|
66 |
+
/* more filters are hidden by default */
|
67 |
+
.SimpleHistory__filters__moreFilters {
|
68 |
+
display: none;
|
69 |
+
margin-bottom: 20px;
|
70 |
+
}
|
71 |
+
|
72 |
+
/* when showing more filters */
|
73 |
+
.SimpleHistory__filters.is-showingMoreFilters {
|
74 |
+
|
75 |
+
}
|
76 |
+
|
77 |
+
.SimpleHistory__filters.is-showingMoreFilters .SimpleHistoryFilterDropin-searchInput {
|
78 |
+
width: 310px;
|
79 |
+
}
|
80 |
+
|
81 |
+
.SimpleHistory__filters.is-showingMoreFilters .SimpleHistoryFilterDropin-showMoreFilters--first {
|
82 |
+
display: none;
|
83 |
+
}
|
84 |
+
|
85 |
+
.SimpleHistory__filters.is-showingMoreFilters .SimpleHistory__filters__moreFilters {
|
86 |
+
display: block;
|
87 |
+
}
|
88 |
+
|
89 |
+
.SimpleHistory__filters.is-showingMoreFilters .SimpleHistoryFilterDropin-doFilterButton--first {
|
90 |
+
display: none;
|
91 |
+
}
|
92 |
+
|
93 |
+
|
94 |
+
/* dashboard */
|
95 |
+
.postbox .SimpleHistory__filters {
|
96 |
+
margin-left: 13px;
|
97 |
+
margin-right: 13px;
|
98 |
+
}
|
dropins/SimpleHistoryFilterDropin.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
/**
|
2 |
-
*
|
3 |
*/
|
4 |
|
5 |
var SimpleHistoryFilterDropin = (function($) {
|
@@ -20,7 +20,9 @@ var SimpleHistoryFilterDropin = (function($) {
|
|
20 |
$elms.filter_user = $elms.filter_container.find(".SimpleHistory__filters__filter--user");
|
21 |
$elms.filter_button = $elms.filter_container.find(".js-SimpleHistoryFilterDropin-doFilter");
|
22 |
$elms.filter_form = $elms.filter_container.find(".js-SimpleHistory__filters__form");
|
23 |
-
|
|
|
|
|
24 |
enhanceSelects();
|
25 |
addListeners();
|
26 |
|
@@ -29,13 +31,21 @@ var SimpleHistoryFilterDropin = (function($) {
|
|
29 |
function addListeners() {
|
30 |
|
31 |
$elms.filter_form.on("submit", onSubmitForm);
|
|
|
32 |
|
33 |
}
|
34 |
|
35 |
-
function
|
36 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
e.preventDefault();
|
38 |
-
|
39 |
// form serialize
|
40 |
// search=apa&loglevels=critical&loglevels=alert&loggers=SimpleMediaLogger&loggers=SimpleMenuLogger&user=1&months=2014-09 SimpleHistoryFilterDropin.js?ver=2.0:40
|
41 |
var $search = $elms.filter_form.find("[name='search']");
|
@@ -47,12 +57,12 @@ var SimpleHistoryFilterDropin = (function($) {
|
|
47 |
// If any of our search boxes are filled in we consider ourself to be in search mode
|
48 |
isFilteringActive = false;
|
49 |
activeFilters = {};
|
50 |
-
|
51 |
if ( $.trim( $search.val() )) {
|
52 |
isFilteringActive = true;
|
53 |
activeFilters.search = $search.val();
|
54 |
}
|
55 |
-
|
56 |
if ( $loglevels.val() && $loglevels.val().length ) {
|
57 |
isFilteringActive = true;
|
58 |
activeFilters.loglevels = $loglevels.val();
|
@@ -99,7 +109,7 @@ var SimpleHistoryFilterDropin = (function($) {
|
|
99 |
function modifyNewRowsNotifierApiArgs(e, apiArgs) {
|
100 |
|
101 |
if (isFilteringActive) {
|
102 |
-
|
103 |
apiArgs = _.extend(apiArgs, activeFilters);
|
104 |
|
105 |
}
|
@@ -108,12 +118,12 @@ var SimpleHistoryFilterDropin = (function($) {
|
|
108 |
|
109 |
function modifyFetchData(collection, url_data) {
|
110 |
|
111 |
-
if (isFilteringActive) {
|
112 |
|
113 |
url_data = _.extend(url_data, activeFilters);
|
114 |
|
115 |
}
|
116 |
-
|
117 |
}
|
118 |
|
119 |
function enhanceSelects() {
|
@@ -147,7 +157,7 @@ var SimpleHistoryFilterDropin = (function($) {
|
|
147 |
});
|
148 |
|
149 |
$(".SimpleHistory__filters__filter--date").select2({
|
150 |
-
width: "element"
|
151 |
});
|
152 |
|
153 |
$(".SimpleHistory__filters__filter--loglevel").select2({
|
@@ -159,7 +169,7 @@ var SimpleHistoryFilterDropin = (function($) {
|
|
159 |
}
|
160 |
|
161 |
function formatUsers(userdata) {
|
162 |
-
|
163 |
var html = "";
|
164 |
html += "<div class='SimpleHistory__filters__userfilter__gravatar'>";
|
165 |
html += userdata.gravatar;
|
@@ -175,11 +185,11 @@ var SimpleHistoryFilterDropin = (function($) {
|
|
175 |
}
|
176 |
|
177 |
function formatLoglevel(loglevel) {
|
178 |
-
|
179 |
var originalOption = loglevel.element;
|
180 |
var $originalOption = $(originalOption);
|
181 |
var color = $originalOption.data("color");
|
182 |
-
|
183 |
var html = "<span style=\"border-radius: 50%; border: 1px solid rgba(0,0,0,.1); margin-right: 5px; width: .75em; height: .75em; line-height: 1; display: inline-block; background-color: " + $originalOption.data('color') + "; '\"></span>" + loglevel.text;
|
184 |
return html;
|
185 |
|
@@ -197,4 +207,3 @@ SimpleHistoryFilterDropin.init();
|
|
197 |
jQuery(document).ready(function() {
|
198 |
SimpleHistoryFilterDropin.onDomReadyInit();
|
199 |
});
|
200 |
-
|
1 |
/**
|
2 |
+
*
|
3 |
*/
|
4 |
|
5 |
var SimpleHistoryFilterDropin = (function($) {
|
20 |
$elms.filter_user = $elms.filter_container.find(".SimpleHistory__filters__filter--user");
|
21 |
$elms.filter_button = $elms.filter_container.find(".js-SimpleHistoryFilterDropin-doFilter");
|
22 |
$elms.filter_form = $elms.filter_container.find(".js-SimpleHistory__filters__form");
|
23 |
+
$elms.show_more_filters_button = $elms.filter_container.find(".js-SimpleHistoryFilterDropin-showMoreFilters");
|
24 |
+
$elms.more_filters_container = $elms.filter_container.find(".js-SimpleHistory__filters__moreFilters");
|
25 |
+
|
26 |
enhanceSelects();
|
27 |
addListeners();
|
28 |
|
31 |
function addListeners() {
|
32 |
|
33 |
$elms.filter_form.on("submit", onSubmitForm);
|
34 |
+
$elms.show_more_filters_button.on("click", onClickMoreFilters);
|
35 |
|
36 |
}
|
37 |
|
38 |
+
function onClickMoreFilters() {
|
39 |
|
40 |
+
//$elms.more_filters_container.toggleClass("is-visible");
|
41 |
+
$elms.filter_container.toggleClass("is-showingMoreFilters");
|
42 |
+
|
43 |
+
}
|
44 |
+
|
45 |
+
function onSubmitForm(e) {
|
46 |
+
|
47 |
e.preventDefault();
|
48 |
+
|
49 |
// form serialize
|
50 |
// search=apa&loglevels=critical&loglevels=alert&loggers=SimpleMediaLogger&loggers=SimpleMenuLogger&user=1&months=2014-09 SimpleHistoryFilterDropin.js?ver=2.0:40
|
51 |
var $search = $elms.filter_form.find("[name='search']");
|
57 |
// If any of our search boxes are filled in we consider ourself to be in search mode
|
58 |
isFilteringActive = false;
|
59 |
activeFilters = {};
|
60 |
+
|
61 |
if ( $.trim( $search.val() )) {
|
62 |
isFilteringActive = true;
|
63 |
activeFilters.search = $search.val();
|
64 |
}
|
65 |
+
|
66 |
if ( $loglevels.val() && $loglevels.val().length ) {
|
67 |
isFilteringActive = true;
|
68 |
activeFilters.loglevels = $loglevels.val();
|
109 |
function modifyNewRowsNotifierApiArgs(e, apiArgs) {
|
110 |
|
111 |
if (isFilteringActive) {
|
112 |
+
|
113 |
apiArgs = _.extend(apiArgs, activeFilters);
|
114 |
|
115 |
}
|
118 |
|
119 |
function modifyFetchData(collection, url_data) {
|
120 |
|
121 |
+
if (isFilteringActive) {
|
122 |
|
123 |
url_data = _.extend(url_data, activeFilters);
|
124 |
|
125 |
}
|
126 |
+
|
127 |
}
|
128 |
|
129 |
function enhanceSelects() {
|
157 |
});
|
158 |
|
159 |
$(".SimpleHistory__filters__filter--date").select2({
|
160 |
+
//width: "element"
|
161 |
});
|
162 |
|
163 |
$(".SimpleHistory__filters__filter--loglevel").select2({
|
169 |
}
|
170 |
|
171 |
function formatUsers(userdata) {
|
172 |
+
|
173 |
var html = "";
|
174 |
html += "<div class='SimpleHistory__filters__userfilter__gravatar'>";
|
175 |
html += userdata.gravatar;
|
185 |
}
|
186 |
|
187 |
function formatLoglevel(loglevel) {
|
188 |
+
|
189 |
var originalOption = loglevel.element;
|
190 |
var $originalOption = $(originalOption);
|
191 |
var color = $originalOption.data("color");
|
192 |
+
|
193 |
var html = "<span style=\"border-radius: 50%; border: 1px solid rgba(0,0,0,.1); margin-right: 5px; width: .75em; height: .75em; line-height: 1; display: inline-block; background-color: " + $originalOption.data('color') + "; '\"></span>" + loglevel.text;
|
194 |
return html;
|
195 |
|
207 |
jQuery(document).ready(function() {
|
208 |
SimpleHistoryFilterDropin.onDomReadyInit();
|
209 |
});
|
|
dropins/SimpleHistoryFilterDropin.php
CHANGED
@@ -16,7 +16,8 @@ class SimpleHistoryFilterDropin {
|
|
16 |
$this->sh = $sh;
|
17 |
|
18 |
add_action("simple_history/enqueue_admin_scripts", array($this, "enqueue_admin_scripts"));
|
19 |
-
add_action("simple_history/history_page/
|
|
|
20 |
add_action("wp_ajax_simple_history_filters_search_user", array( $this, "ajax_simple_history_filters_search_user") );
|
21 |
|
22 |
}
|
@@ -40,118 +41,133 @@ class SimpleHistoryFilterDropin {
|
|
40 |
|
41 |
<form class="SimpleHistory__filters__form js-SimpleHistory__filters__form">
|
42 |
|
43 |
-
<h3><?php _e("Filter history", "simple-history") ?></h3>
|
44 |
|
45 |
<p>
|
46 |
-
<input type="search" placeholder="
|
|
|
|
|
|
|
47 |
</p>
|
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 |
-
$arr_all_search_messages =
|
82 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
|
84 |
-
foreach ($arr_all_search_messages as $key => $val) {
|
85 |
-
$arr_all_search_messages[ $key ] = $logger_slug . ":" . $val;
|
86 |
}
|
87 |
|
88 |
-
|
|
|
89 |
|
90 |
-
|
|
|
|
|
91 |
|
92 |
-
|
93 |
-
|
94 |
|
95 |
-
foreach ($option_messages as $key => $val) {
|
96 |
-
$option_messages[ $key ] = $logger_slug . ":" . $val;
|
97 |
}
|
98 |
|
99 |
-
|
100 |
-
printf('<option value="%2$s">%1$s</option>', esc_attr( $option_key ), esc_attr( $str_option_messages ));
|
101 |
|
102 |
}
|
103 |
|
104 |
-
printf('</optgroup>');
|
105 |
-
|
106 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
|
113 |
-
<p>
|
114 |
-
<input type="text"
|
115 |
-
name = "user"
|
116 |
-
class="SimpleHistory__filters__filter SimpleHistory__filters__filter--user"
|
117 |
-
style="width: 300px"
|
118 |
-
placeholder="<?php _e("All users", "simple-history") ?>" />
|
119 |
-
</p>
|
120 |
|
121 |
-
|
122 |
-
global $wpdb;
|
123 |
-
$table_name = $wpdb->prefix . SimpleHistory::DBTABLE;
|
124 |
-
$loggers_user_can_read_sql_in = $this->sh->getLoggersThatUserCanRead(null, "sql");
|
125 |
-
$sql_dates = sprintf('
|
126 |
-
SELECT DISTINCT ( date_format(DATE, "%%Y-%%m") ) AS yearMonth
|
127 |
-
FROM %s
|
128 |
-
WHERE logger IN %s
|
129 |
-
ORDER BY yearMonth DESC
|
130 |
-
', $table_name, // 1
|
131 |
-
$loggers_user_can_read_sql_in // 2
|
132 |
-
);
|
133 |
-
|
134 |
-
$result_months = $wpdb->get_results($sql_dates);
|
135 |
-
?>
|
136 |
-
<p>
|
137 |
-
<select class="SimpleHistory__filters__filter SimpleHistory__filters__filter--date"
|
138 |
-
name="months"
|
139 |
-
placeholder="<?php echo _e("All dates", "simple-history") ?>" multiple>
|
140 |
-
<?php
|
141 |
-
foreach ($result_months as $row) {
|
142 |
-
printf(
|
143 |
-
'<option value="%1$s">%2$s</option>',
|
144 |
-
$row->yearMonth,
|
145 |
-
date_i18n( "F Y", strtotime($row->yearMonth) )
|
146 |
-
);
|
147 |
-
}
|
148 |
-
?>
|
149 |
-
</select>
|
150 |
-
</p>
|
151 |
|
|
|
152 |
<p>
|
153 |
-
<button class="button js-SimpleHistoryFilterDropin-doFilter"><?php _e("
|
154 |
</p>
|
|
|
155 |
|
156 |
</form>
|
157 |
|
@@ -234,4 +250,3 @@ class SimpleHistoryFilterDropin {
|
|
234 |
}
|
235 |
|
236 |
} // end class
|
237 |
-
|
16 |
$this->sh = $sh;
|
17 |
|
18 |
add_action("simple_history/enqueue_admin_scripts", array($this, "enqueue_admin_scripts"));
|
19 |
+
add_action("simple_history/history_page/before_gui", array( $this, "gui_page_filters") );
|
20 |
+
add_action("simple_history/dashboard/before_gui", array( $this, "gui_page_filters") );
|
21 |
add_action("wp_ajax_simple_history_filters_search_user", array( $this, "ajax_simple_history_filters_search_user") );
|
22 |
|
23 |
}
|
41 |
|
42 |
<form class="SimpleHistory__filters__form js-SimpleHistory__filters__form">
|
43 |
|
44 |
+
<!-- <h3><?php _e("Filter history", "simple-history") ?></h3> -->
|
45 |
|
46 |
<p>
|
47 |
+
<input type="search" class="SimpleHistoryFilterDropin-searchInput" placeholder="<?php _e("", "simple-history"); ?>" name="search">
|
48 |
+
<button class="button SimpleHistoryFilterDropin-doFilterButton SimpleHistoryFilterDropin-doFilterButton--first js-SimpleHistoryFilterDropin-doFilter"><?php _e("Search events", "simple-history") ?></button>
|
49 |
+
<!-- <br> -->
|
50 |
+
<button type="button" class="SimpleHistoryFilterDropin-showMoreFilters SimpleHistoryFilterDropin-showMoreFilters--first js-SimpleHistoryFilterDropin-showMoreFilters"><?php _ex("Show options", "Filter dropin: button to show more search options", "simple-history") ?></button>
|
51 |
</p>
|
52 |
|
53 |
+
<div class="SimpleHistory__filters__moreFilters js-SimpleHistory__filters__moreFilters">
|
54 |
+
|
55 |
+
<p>
|
56 |
+
<select name="loglevels" class="SimpleHistory__filters__filter SimpleHistory__filters__filter--loglevel" style="width: 300px" placeholder="<?php _e("All log levels", "simple-history") ?>" multiple>
|
57 |
+
<option value="debug" data-color="#CEF6D8"><?php echo $this->sh->getLogLevelTranslated("Debug") ?></option>
|
58 |
+
<option value="info" data-color="white"><?php echo $this->sh->getLogLevelTranslated("Info") ?></option>
|
59 |
+
<option value="notice" data-color="rgb(219, 219, 183)"><?php echo $this->sh->getLogLevelTranslated("Notice") ?></option>
|
60 |
+
<option value="warning" data-color="#F7D358"><?php echo $this->sh->getLogLevelTranslated("Warning") ?></option>
|
61 |
+
<option value="error" data-color="#F79F81"><?php echo $this->sh->getLogLevelTranslated("Error") ?></option>
|
62 |
+
<option value="critical" data-color="#FA5858"><?php echo $this->sh->getLogLevelTranslated("Critical") ?></option>
|
63 |
+
<option value="alert" data-color="rgb(199, 69, 69)"><?php echo $this->sh->getLogLevelTranslated("Alert") ?></option>
|
64 |
+
<option value="emergency" data-color="#DF0101"><?php echo $this->sh->getLogLevelTranslated("Emergency") ?></option>
|
65 |
+
</select>
|
66 |
+
</p>
|
67 |
+
|
68 |
+
<p>
|
69 |
+
<select name="messages" class="SimpleHistory__filters__filter SimpleHistory__filters__filter--logger" style="width: 300px"
|
70 |
+
placeholder="<?php _e("All messages", "simple-history") ?>" multiple>
|
71 |
+
<?php
|
72 |
+
foreach ($loggers_user_can_read as $logger) {
|
73 |
+
|
74 |
+
$logger_info = $logger["instance"]->getInfo();
|
75 |
+
$logger_slug = $logger["instance"]->slug;
|
76 |
+
|
77 |
+
// Get labels for logger
|
78 |
+
if ( isset( $logger_info["labels"]["search"] ) ) {
|
79 |
+
|
80 |
+
printf('<optgroup label="%1$s">', esc_attr( $logger_info["labels"]["search"]["label"] ) );
|
81 |
+
|
82 |
+
// If all activity
|
83 |
+
if ( ! empty( $logger_info["labels"]["search"]["label_all"] ) ) {
|
84 |
+
|
85 |
+
$arr_all_search_messages = array();
|
86 |
+
foreach ( $logger_info["labels"]["search"]["options"] as $option_key => $option_messages ) {
|
87 |
+
$arr_all_search_messages = array_merge($arr_all_search_messages, $option_messages);
|
88 |
+
}
|
89 |
+
|
90 |
+
foreach ($arr_all_search_messages as $key => $val) {
|
91 |
+
$arr_all_search_messages[ $key ] = $logger_slug . ":" . $val;
|
92 |
+
}
|
93 |
+
|
94 |
+
printf('<option value="%2$s">%1$s</option>', esc_attr( $logger_info["labels"]["search"]["label_all"] ), esc_attr( implode(",", $arr_all_search_messages) ));
|
95 |
|
|
|
|
|
96 |
}
|
97 |
|
98 |
+
// For each specific search option
|
99 |
+
foreach ( $logger_info["labels"]["search"]["options"] as $option_key => $option_messages ) {
|
100 |
|
101 |
+
foreach ($option_messages as $key => $val) {
|
102 |
+
$option_messages[ $key ] = $logger_slug . ":" . $val;
|
103 |
+
}
|
104 |
|
105 |
+
$str_option_messages = implode(",", $option_messages);
|
106 |
+
printf('<option value="%2$s">%1$s</option>', esc_attr( $option_key ), esc_attr( $str_option_messages ));
|
107 |
|
|
|
|
|
108 |
}
|
109 |
|
110 |
+
printf('</optgroup>');
|
|
|
111 |
|
112 |
}
|
113 |
|
|
|
|
|
114 |
}
|
115 |
+
?>
|
116 |
+
</select>
|
117 |
+
</p>
|
118 |
+
|
119 |
+
<p>
|
120 |
+
<input type="text"
|
121 |
+
name = "user"
|
122 |
+
class="SimpleHistory__filters__filter SimpleHistory__filters__filter--user"
|
123 |
+
style="width: 300px"
|
124 |
+
placeholder="<?php _e("All users", "simple-history") ?>" />
|
125 |
+
</p>
|
126 |
+
|
127 |
+
<?php
|
128 |
+
global $wpdb;
|
129 |
+
$table_name = $wpdb->prefix . SimpleHistory::DBTABLE;
|
130 |
+
$loggers_user_can_read_sql_in = $this->sh->getLoggersThatUserCanRead(null, "sql");
|
131 |
+
$sql_dates = sprintf('
|
132 |
+
SELECT DISTINCT ( date_format(DATE, "%%Y-%%m") ) AS yearMonth
|
133 |
+
FROM %s
|
134 |
+
WHERE logger IN %s
|
135 |
+
ORDER BY yearMonth DESC
|
136 |
+
', $table_name, // 1
|
137 |
+
$loggers_user_can_read_sql_in // 2
|
138 |
+
);
|
139 |
+
|
140 |
+
$result_months = $wpdb->get_results($sql_dates);
|
141 |
+
?>
|
142 |
+
<p>
|
143 |
+
<select class="SimpleHistory__filters__filter SimpleHistory__filters__filter--date"
|
144 |
+
name="months"
|
145 |
+
placeholder="<?php echo _e("All dates", "simple-history") ?>" multiple>
|
146 |
+
<?php
|
147 |
+
foreach ($result_months as $row) {
|
148 |
+
printf(
|
149 |
+
'<option value="%1$s">%2$s</option>',
|
150 |
+
$row->yearMonth,
|
151 |
+
date_i18n( "F Y", strtotime($row->yearMonth) )
|
152 |
+
);
|
153 |
+
}
|
154 |
+
?>
|
155 |
+
</select>
|
156 |
+
</p>
|
157 |
|
158 |
+
<p>
|
159 |
+
<button class="button SimpleHistoryFilterDropin-doFilterButton SimpleHistoryFilterDropin-doFilterButton--second js-SimpleHistoryFilterDropin-doFilter"><?php _e("Search events", "simple-history") ?></button>
|
160 |
+
<button type="button" class="SimpleHistoryFilterDropin-showMoreFilters SimpleHistoryFilterDropin-showMoreFilters--second js-SimpleHistoryFilterDropin-showMoreFilters"><?php _ex("Hide options", "Filter dropin: button to hide more search options", "simple-history") ?></button>
|
161 |
+
</p>
|
162 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
163 |
|
164 |
+
</div><!-- // more filters -->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
165 |
|
166 |
+
<!--
|
167 |
<p>
|
168 |
+
<button class="button js-SimpleHistoryFilterDropin-doFilter"><?php _e("Search", "simple-history") ?></button>
|
169 |
</p>
|
170 |
+
-->
|
171 |
|
172 |
</form>
|
173 |
|
250 |
}
|
251 |
|
252 |
} // end class
|
|
dropins/SimpleHistoryIpInfoDropin.css
CHANGED
@@ -5,3 +5,138 @@
|
|
5 |
/* cursor: pointer;
|
6 |
text-decoration: underline;*/
|
7 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
/* cursor: pointer;
|
6 |
text-decoration: underline;*/
|
7 |
}
|
8 |
+
|
9 |
+
.SimpleHistoryIpInfoDropin__popup {
|
10 |
+
position: absolute;
|
11 |
+
visibility: hidden;
|
12 |
+
opacity: 0;
|
13 |
+
top: 0;
|
14 |
+
left: 0;
|
15 |
+
width: 350px;
|
16 |
+
min-height: 200px;
|
17 |
+
margin-left: -20px;
|
18 |
+
margin-top: -5px;
|
19 |
+
border: 1px solid #ccc;
|
20 |
+
background-color: rgba(255, 255, 255, 1);
|
21 |
+
box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.2);
|
22 |
+
padding: 10px;
|
23 |
+
z-index: 5;
|
24 |
+
/* fade out then hide visibility */
|
25 |
+
transition: visibility 0 .25s, opacity .25s;
|
26 |
+
}
|
27 |
+
|
28 |
+
.SimpleHistoryIpInfoDropin__popup p {
|
29 |
+
margin: 0;
|
30 |
+
}
|
31 |
+
|
32 |
+
.SimpleHistoryIpInfoDropin__popup.is-visible {
|
33 |
+
visibility: visible;
|
34 |
+
opacity: 1;
|
35 |
+
/* make visible immediately and start opacity directly */
|
36 |
+
transition: visibility 0, opacity .25s 0s;
|
37 |
+
}
|
38 |
+
|
39 |
+
.SimpleHistoryIpInfoDropin__popupArrow {
|
40 |
+
/*width: 40px;
|
41 |
+
height: 40px;
|
42 |
+
font-size: 40px;
|
43 |
+
position: absolute;
|
44 |
+
top: -25px;
|
45 |
+
left: 0;*/
|
46 |
+
}
|
47 |
+
|
48 |
+
.SimpleHistoryIpInfoDropin__popupArrow {
|
49 |
+
position: absolute;
|
50 |
+
background: #fff;
|
51 |
+
border: none;
|
52 |
+
top: 0;
|
53 |
+
left: 40px;
|
54 |
+
}
|
55 |
+
|
56 |
+
.SimpleHistoryIpInfoDropin__popupArrow:after, .SimpleHistoryIpInfoDropin__popupArrow:before {
|
57 |
+
bottom: 100%;
|
58 |
+
left: 50%;
|
59 |
+
border: solid transparent;
|
60 |
+
content: " ";
|
61 |
+
height: 0;
|
62 |
+
width: 0;
|
63 |
+
position: absolute;
|
64 |
+
pointer-events: none;
|
65 |
+
}
|
66 |
+
|
67 |
+
.SimpleHistoryIpInfoDropin__popupArrow:after {
|
68 |
+
border-color: rgba(255, 255, 255, 0);
|
69 |
+
border-bottom-color: #fff;
|
70 |
+
border-width: 10px;
|
71 |
+
margin-left: -10px;
|
72 |
+
}
|
73 |
+
.SimpleHistoryIpInfoDropin__popupArrow:before {
|
74 |
+
border-color: rgba(204, 204, 204, 0);
|
75 |
+
border-bottom-color: #ccc;
|
76 |
+
border-width: 11px;
|
77 |
+
margin-left: -11px;
|
78 |
+
}
|
79 |
+
|
80 |
+
.SimpleHistoryIpInfoDropin__ipInfoTable {
|
81 |
+
width: 100%;
|
82 |
+
border-collapse: collapse;
|
83 |
+
}
|
84 |
+
|
85 |
+
.SimpleHistoryIpInfoDropin__ipInfoTable tr {
|
86 |
+
|
87 |
+
}
|
88 |
+
|
89 |
+
.SimpleHistoryIpInfoDropin__ipInfoTable th,
|
90 |
+
.SimpleHistoryIpInfoDropin__ipInfoTable td {
|
91 |
+
vertical-align: top;
|
92 |
+
text-align: left;
|
93 |
+
padding: 5px 5px;
|
94 |
+
border-top: 1px solid #eee;
|
95 |
+
}
|
96 |
+
|
97 |
+
.SimpleHistoryIpInfoDropin__ipInfoTable tr:first-of-type th,
|
98 |
+
.SimpleHistoryIpInfoDropin__ipInfoTable tr:first-of-type td {
|
99 |
+
border-top: 0;
|
100 |
+
}
|
101 |
+
|
102 |
+
.SimpleHistoryIpInfoDropin__ipInfoTable__mapRow a {
|
103 |
+
display: inline-block;
|
104 |
+
}
|
105 |
+
|
106 |
+
.SimpleHistoryIpInfoDropin__ipInfoTable__mapRow td {
|
107 |
+
padding: 0;
|
108 |
+
}
|
109 |
+
|
110 |
+
.SimpleHistoryIpInfoDropin__provider {
|
111 |
+
text-align: right;
|
112 |
+
font-size: 12px;
|
113 |
+
color: #888;
|
114 |
+
margin-top: .5em !important;
|
115 |
+
}
|
116 |
+
|
117 |
+
.SimpleHistoryIpInfoDropin__popupClose {
|
118 |
+
position: absolute;
|
119 |
+
width: 21px;
|
120 |
+
height: 20px;
|
121 |
+
background-color: rgba(200, 200, 200, .5);
|
122 |
+
border-radius: 50%;
|
123 |
+
top: 5px;
|
124 |
+
right: 5px;
|
125 |
+
line-height: 1;
|
126 |
+
font-size: 20px;
|
127 |
+
text-align: center;
|
128 |
+
}
|
129 |
+
|
130 |
+
.SimpleHistoryIpInfoDropin__popupCloseButton {
|
131 |
+
padding: 0 5px;
|
132 |
+
margin: 0;
|
133 |
+
background: none;
|
134 |
+
border: 0;
|
135 |
+
line-height: 1;
|
136 |
+
cursor: pointer;
|
137 |
+
}
|
138 |
+
|
139 |
+
.SimpleHistoryIpInfoDropin__popupCloseButton:hover {
|
140 |
+
/* same color as wp popups close on hover */
|
141 |
+
color: rgb(46, 162, 204);
|
142 |
+
}
|
dropins/SimpleHistoryIpInfoDropin.js
CHANGED
@@ -2,7 +2,13 @@
|
|
2 |
(function($) {
|
3 |
|
4 |
var $logItems = $(".SimpleHistoryLogitems");
|
|
|
|
|
5 |
|
|
|
|
|
|
|
|
|
6 |
$logItems.on("click", ".SimpleHistoryLogitem__anonUserWithIp__theIp", function(e) {
|
7 |
|
8 |
var $elm = $(this);
|
@@ -12,10 +18,62 @@
|
|
12 |
return;
|
13 |
}
|
14 |
|
|
|
|
|
15 |
return lookupIpAddress(ipAddress);
|
16 |
|
17 |
});
|
18 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
function lookupIpAddress(ipAddress) {
|
20 |
|
21 |
$.get("http://ipinfo.io/" + ipAddress, onIpAddressLookupkResponse, "jsonp");
|
@@ -24,9 +82,10 @@
|
|
24 |
|
25 |
}
|
26 |
|
|
|
27 |
function onIpAddressLookupkResponse(d) {
|
28 |
-
|
29 |
-
|
30 |
|
31 |
}
|
32 |
|
2 |
(function($) {
|
3 |
|
4 |
var $logItems = $(".SimpleHistoryLogitems");
|
5 |
+
var $popup = $(".SimpleHistoryIpInfoDropin__popup");
|
6 |
+
var $popupContent = $popup.find(".SimpleHistoryIpInfoDropin__popupContent");
|
7 |
|
8 |
+
var templateLoading = wp.template("simple-history-ipinfodropin-popup-loading");
|
9 |
+
var templateLoaded = wp.template("simple-history-ipinfodropin-popup-loaded");
|
10 |
+
|
11 |
+
// Click on link with IP-number
|
12 |
$logItems.on("click", ".SimpleHistoryLogitem__anonUserWithIp__theIp", function(e) {
|
13 |
|
14 |
var $elm = $(this);
|
18 |
return;
|
19 |
}
|
20 |
|
21 |
+
showPopup($elm);
|
22 |
+
|
23 |
return lookupIpAddress(ipAddress);
|
24 |
|
25 |
});
|
26 |
|
27 |
+
// Close popup
|
28 |
+
$popup.on("click", ".SimpleHistoryIpInfoDropin__popupCloseButton", hidePopup);
|
29 |
+
$(window).on("click", maybeHidePopup);
|
30 |
+
$(window).on("keyup", maybeHidePopup);
|
31 |
+
$(document).on("SimpleHistory:logReloadStart", hidePopup);
|
32 |
+
|
33 |
+
// Position and then show popup.
|
34 |
+
// Content is not added yet
|
35 |
+
function showPopup($elm) {
|
36 |
+
|
37 |
+
var offset = $elm.offset();
|
38 |
+
|
39 |
+
$popup.css({
|
40 |
+
//top: offset.top + $elm.outerHeight(),
|
41 |
+
top: offset.top,
|
42 |
+
left: offset.left
|
43 |
+
});
|
44 |
+
|
45 |
+
$popupContent.html(templateLoading());
|
46 |
+
|
47 |
+
$popup.addClass("is-visible");
|
48 |
+
|
49 |
+
}
|
50 |
+
|
51 |
+
function hidePopup(e) {
|
52 |
+
|
53 |
+
$popup.removeClass("is-visible");
|
54 |
+
|
55 |
+
}
|
56 |
+
|
57 |
+
function maybeHidePopup(e) {
|
58 |
+
|
59 |
+
var $target = (e.target);
|
60 |
+
|
61 |
+
// Don't hide if click inside popup
|
62 |
+
if ($.contains($popup.get(0), $target) ) {
|
63 |
+
return true;
|
64 |
+
}
|
65 |
+
|
66 |
+
// If initiated by keyboard but not esc, then don't close
|
67 |
+
if (e.originalEvent.type == "keyup" && e.originalEvent.keyCode != 27) {
|
68 |
+
return;
|
69 |
+
}
|
70 |
+
|
71 |
+
// Else it should be ok to hide
|
72 |
+
hidePopup();
|
73 |
+
|
74 |
+
}
|
75 |
+
|
76 |
+
// Init request to lookup address
|
77 |
function lookupIpAddress(ipAddress) {
|
78 |
|
79 |
$.get("http://ipinfo.io/" + ipAddress, onIpAddressLookupkResponse, "jsonp");
|
82 |
|
83 |
}
|
84 |
|
85 |
+
// Function called when ip adress lookup succeeded
|
86 |
function onIpAddressLookupkResponse(d) {
|
87 |
+
|
88 |
+
$popupContent.html(templateLoaded(d));
|
89 |
|
90 |
}
|
91 |
|
dropins/SimpleHistoryIpInfoDropin.php
CHANGED
@@ -15,11 +15,13 @@ class SimpleHistoryIpInfoDropin {
|
|
15 |
$this->sh = $sh;
|
16 |
|
17 |
// Since it's not quite done yet, it's for da devs only for now
|
18 |
-
if ( ! defined("SIMPLE_HISTORY_DEV") || ! SIMPLE_HISTORY_DEV ) {
|
19 |
return;
|
20 |
-
}
|
21 |
|
22 |
add_action("simple_history/enqueue_admin_scripts", array($this, "enqueue_admin_scripts"));
|
|
|
|
|
23 |
|
24 |
}
|
25 |
|
@@ -33,5 +35,138 @@ class SimpleHistoryIpInfoDropin {
|
|
33 |
|
34 |
}
|
35 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
} // end class
|
37 |
|
15 |
$this->sh = $sh;
|
16 |
|
17 |
// Since it's not quite done yet, it's for da devs only for now
|
18 |
+
/*if ( ! defined("SIMPLE_HISTORY_DEV") || ! SIMPLE_HISTORY_DEV ) {
|
19 |
return;
|
20 |
+
}*/
|
21 |
|
22 |
add_action("simple_history/enqueue_admin_scripts", array($this, "enqueue_admin_scripts"));
|
23 |
+
add_action("simple_history/admin_footer", array($this, "add_js_template"));
|
24 |
+
|
25 |
|
26 |
}
|
27 |
|
35 |
|
36 |
}
|
37 |
|
38 |
+
public function add_js_template() {
|
39 |
+
?>
|
40 |
+
|
41 |
+
<div class="SimpleHistoryIpInfoDropin__popup">
|
42 |
+
<div class="SimpleHistoryIpInfoDropin__popupArrow"></div>
|
43 |
+
<div class="SimpleHistoryIpInfoDropin__popupClose"><button class="SimpleHistoryIpInfoDropin__popupCloseButton">×</button></div>
|
44 |
+
<div class="SimpleHistoryIpInfoDropin__popupContent"></div>
|
45 |
+
</div>
|
46 |
+
|
47 |
+
<script type="text/html" id="tmpl-simple-history-ipinfodropin-popup-loading">
|
48 |
+
<!-- <p>Getting IP info ...</p> -->
|
49 |
+
</script>
|
50 |
+
|
51 |
+
<script type="text/html" id="tmpl-simple-history-ipinfodropin-popup-loaded">
|
52 |
+
<!--
|
53 |
+
{
|
54 |
+
"ip": "8.8.8.8",
|
55 |
+
"hostname": "google-public-dns-a.google.com",
|
56 |
+
"city": "Mountain View",
|
57 |
+
"region": "California",
|
58 |
+
"country": "US",
|
59 |
+
"loc": "37.3860,-122.0838",
|
60 |
+
"org": "AS15169 Google Inc.",
|
61 |
+
"postal": "94035"
|
62 |
+
}
|
63 |
+
-->
|
64 |
+
<# if ( typeof(data.bogon) != "undefined" ) { #>
|
65 |
+
|
66 |
+
<p><?php _ex("That IP address does not seem like a public one.", "IP Info Dropin", "simple-history"); ?></p>
|
67 |
+
|
68 |
+
<# } else { #>
|
69 |
+
|
70 |
+
<table class="SimpleHistoryIpInfoDropin__ipInfoTable">
|
71 |
+
|
72 |
+
<tr class="SimpleHistoryIpInfoDropin__ipInfoTable__mapRow">
|
73 |
+
<td colspan="2">
|
74 |
+
<# if ( typeof(data.loc) != "undefined" && data.loc ) { #>
|
75 |
+
<a href="https://www.google.com/maps/place/{{ data.loc }}/@{{ data.loc }},6z" target="_blank">
|
76 |
+
<img src="https://maps.googleapis.com/maps/api/staticmap?center={{ data.loc }}&zoom=7&size=350x100&sensor=false" width="350" height="100" alt="Google Map">
|
77 |
+
</a>
|
78 |
+
<# } #>
|
79 |
+
</td>
|
80 |
+
</tr>
|
81 |
+
|
82 |
+
<# if ( typeof(data.ip) != "undefined" && data.ip ) { #>
|
83 |
+
<tr>
|
84 |
+
<td>
|
85 |
+
<?php _ex("IP address", "IP Info Dropin", "simple-history"); ?>
|
86 |
+
</td>
|
87 |
+
<td>
|
88 |
+
{{ data.ip }}
|
89 |
+
</td>
|
90 |
+
</tr>
|
91 |
+
<# } #>
|
92 |
+
|
93 |
+
<# if ( typeof(data.hostname) != "undefined" && data.hostname ) { #>
|
94 |
+
<tr>
|
95 |
+
<td>
|
96 |
+
<?php _ex("Hostname", "IP Info Dropin", "simple-history"); ?>
|
97 |
+
</td>
|
98 |
+
<td>
|
99 |
+
{{ data.hostname }}
|
100 |
+
</td>
|
101 |
+
</tr>
|
102 |
+
<# } #>
|
103 |
+
|
104 |
+
<# if ( typeof(data.org) != "undefined" && data.org ) { #>
|
105 |
+
<tr>
|
106 |
+
<td>
|
107 |
+
<?php _ex("Network", "IP Info Dropin", "simple-history"); ?>
|
108 |
+
</td>
|
109 |
+
<td>
|
110 |
+
{{ data.org }}
|
111 |
+
</td>
|
112 |
+
</tr>
|
113 |
+
<# } #>
|
114 |
+
|
115 |
+
<# if ( typeof(data.network) != "undefined" && data.network ) { #>
|
116 |
+
<tr>
|
117 |
+
<td>
|
118 |
+
<?php _ex("Network", "IP Info Dropin", "simple-history"); ?>
|
119 |
+
</td>
|
120 |
+
<td>
|
121 |
+
{{ data.network }}
|
122 |
+
</td>
|
123 |
+
</tr>
|
124 |
+
<# } #>
|
125 |
+
|
126 |
+
<# if ( typeof(data.city) != "undefined" && data.city ) { #>
|
127 |
+
<tr>
|
128 |
+
<td>
|
129 |
+
<?php _ex("City", "IP Info Dropin", "simple-history"); ?>
|
130 |
+
</td>
|
131 |
+
<td>
|
132 |
+
{{ data.city }}
|
133 |
+
</td>
|
134 |
+
</tr>
|
135 |
+
<# } #>
|
136 |
+
|
137 |
+
<# if ( typeof(data.region) != "undefined" && data.region ) { #>
|
138 |
+
<tr>
|
139 |
+
<td>
|
140 |
+
<?php _ex("Region", "IP Info Dropin", "simple-history"); ?>
|
141 |
+
</td>
|
142 |
+
<td>
|
143 |
+
{{ data.region }}
|
144 |
+
</td>
|
145 |
+
</tr>
|
146 |
+
<# } #>
|
147 |
+
|
148 |
+
<# if ( typeof(data.country) != "undefined" && data.country ) { #>
|
149 |
+
<tr>
|
150 |
+
<td>
|
151 |
+
<?php _ex("Country", "IP Info Dropin", "simple-history"); ?>
|
152 |
+
</td>
|
153 |
+
<td>
|
154 |
+
{{ data.country }}
|
155 |
+
</td>
|
156 |
+
</tr>
|
157 |
+
<# } #>
|
158 |
+
|
159 |
+
</table>
|
160 |
+
|
161 |
+
<p class="SimpleHistoryIpInfoDropin__provider">
|
162 |
+
<?php printf( _x('IP info provided by %1$s ipinfo.io %2$s', "IP Info Dropin", "simple-history"), "<a href='http://ipinfo.io/{{ data.ip }}' target='_blank'>", "</a>" ); ?>
|
163 |
+
</p>
|
164 |
+
|
165 |
+
<# } #>
|
166 |
+
|
167 |
+
</script>
|
168 |
+
<?php
|
169 |
+
}
|
170 |
+
|
171 |
} // end class
|
172 |
|
dropins/SimpleHistoryNewRowsNotifier.php
CHANGED
@@ -63,7 +63,6 @@ class SimpleHistoryNewRowsNotifier {
|
|
63 |
$logQueryArgs = $apiArgs;
|
64 |
|
65 |
$logQuery = new SimpleHistoryLogQuery();
|
66 |
-
|
67 |
$answer = $logQuery->query( $logQueryArgs );
|
68 |
|
69 |
// Use our own repsonse array instead of $answer to keep size down
|
@@ -71,6 +70,7 @@ class SimpleHistoryNewRowsNotifier {
|
|
71 |
|
72 |
$numNewRows = isset( $answer["total_row_count"] ) ? $answer["total_row_count"] : 0;
|
73 |
$json_data["num_new_rows"] = $numNewRows;
|
|
|
74 |
|
75 |
if ($numNewRows) {
|
76 |
|
63 |
$logQueryArgs = $apiArgs;
|
64 |
|
65 |
$logQuery = new SimpleHistoryLogQuery();
|
|
|
66 |
$answer = $logQuery->query( $logQueryArgs );
|
67 |
|
68 |
// Use our own repsonse array instead of $answer to keep size down
|
70 |
|
71 |
$numNewRows = isset( $answer["total_row_count"] ) ? $answer["total_row_count"] : 0;
|
72 |
$json_data["num_new_rows"] = $numNewRows;
|
73 |
+
$json_data["num_mysql_queries"] = get_num_queries();
|
74 |
|
75 |
if ($numNewRows) {
|
76 |
|
dropins/SimpleHistoryRSSDropin.php
CHANGED
@@ -12,7 +12,7 @@ Author: Pär Thernström
|
|
12 |
class SimpleHistoryRSSDropin {
|
13 |
|
14 |
function __construct($sh) {
|
15 |
-
|
16 |
$this->sh = $sh;
|
17 |
|
18 |
if ( ! function_exists('get_editable_roles') ) {
|
@@ -32,7 +32,7 @@ class SimpleHistoryRSSDropin {
|
|
32 |
}
|
33 |
|
34 |
/**
|
35 |
-
* Add settings for the RSS feed
|
36 |
* + also regenerates the secret if requested
|
37 |
*/
|
38 |
public function add_settings() {
|
@@ -43,15 +43,15 @@ class SimpleHistoryRSSDropin {
|
|
43 |
$settings_section_rss_id = "simple_history_settings_section_rss";
|
44 |
|
45 |
add_settings_section(
|
46 |
-
$settings_section_rss_id,
|
47 |
-
_x("RSS feed", "rss settings headline", "simple-history"), // No title __("General", "simple-history"),
|
48 |
-
array($this, "settings_section_output"),
|
49 |
SimpleHistory::SETTINGS_MENU_SLUG // same slug as for options menu page
|
50 |
);
|
51 |
|
52 |
// RSS address
|
53 |
add_settings_field(
|
54 |
-
"simple_history_rss_feed",
|
55 |
__("Address", "simple-history"),
|
56 |
array($this, "settings_field_rss"),
|
57 |
SimpleHistory::SETTINGS_MENU_SLUG,
|
@@ -60,7 +60,7 @@ class SimpleHistoryRSSDropin {
|
|
60 |
|
61 |
// Regnerate address
|
62 |
add_settings_field(
|
63 |
-
"simple_history_rss_feed_regenerate_secret",
|
64 |
__("Regenerate", "simple-history"),
|
65 |
array($this, "settings_field_rss_regenerate"),
|
66 |
SimpleHistory::SETTINGS_MENU_SLUG,
|
@@ -70,7 +70,7 @@ class SimpleHistoryRSSDropin {
|
|
70 |
// Create new RSS secret
|
71 |
$create_new_secret = false;
|
72 |
$create_secret_nonce_name = "simple_history_rss_secret_regenerate_nonce";
|
73 |
-
|
74 |
if ( isset( $_GET[$create_secret_nonce_name] ) && wp_verify_nonce( $_GET[$create_secret_nonce_name], 'simple_history_rss_update_secret')) {
|
75 |
|
76 |
$create_new_secret = true;
|
@@ -95,7 +95,7 @@ class SimpleHistoryRSSDropin {
|
|
95 |
* Check if current request is a request for the RSS feed
|
96 |
*/
|
97 |
function check_for_rss_feed_request() {
|
98 |
-
|
99 |
// check for RSS
|
100 |
// don't know if this is the right way to do this, but it seems to work!
|
101 |
if ( isset( $_GET["simple_history_get_rss"] ) ) {
|
@@ -104,7 +104,7 @@ class SimpleHistoryRSSDropin {
|
|
104 |
exit;
|
105 |
|
106 |
}
|
107 |
-
|
108 |
}
|
109 |
|
110 |
/**
|
@@ -136,17 +136,17 @@ class SimpleHistoryRSSDropin {
|
|
136 |
wp_die( 'Nothing here.' );
|
137 |
}
|
138 |
|
139 |
-
header
|
140 |
echo '<?xml version="1.0" encoding="UTF-8"?>';
|
141 |
$self_link = $this->get_rss_address();
|
142 |
-
|
143 |
if ( $rss_secret_option === $rss_secret_get ) {
|
144 |
-
|
145 |
?>
|
146 |
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
147 |
<channel>
|
148 |
-
<title
|
149 |
-
<description
|
150 |
<link><?php echo get_bloginfo("url") ?></link>
|
151 |
<atom:link href="<?php echo $self_link; ?>" rel="self" type="application/atom+xml" />
|
152 |
<?php
|
@@ -166,7 +166,7 @@ class SimpleHistoryRSSDropin {
|
|
166 |
);
|
167 |
|
168 |
$args = apply_filters("simple_history/rss_feed_args", $args);
|
169 |
-
|
170 |
$logQuery = new SimpleHistoryLogQuery();
|
171 |
$queryResults = $logQuery->query($args);
|
172 |
|
@@ -174,30 +174,36 @@ class SimpleHistoryRSSDropin {
|
|
174 |
// remove_action( $action_tag, array($this, "on_can_read_single_logger") );
|
175 |
|
176 |
foreach ($queryResults["log_rows"] as $row) {
|
177 |
-
|
178 |
$header_output = $this->sh->getLogRowHeaderOutput( $row );
|
179 |
$text_output = $this->sh->getLogRowPlainTextOutput( $row );
|
180 |
$details_output = $this->sh->getLogRowDetailsOutput( $row );
|
181 |
$item_guid = home_url() . "?SimpleHistoryGuid=" . $row->id;
|
182 |
|
183 |
#$item_title = wp_kses( $header_output . ": " . $text_output, array() );
|
184 |
-
$item_title = wp_kses( $text_output, array() );
|
185 |
-
|
|
|
|
|
186 |
?>
|
187 |
<item>
|
188 |
-
<title
|
189 |
<description><![CDATA[
|
190 |
<p><?php echo $header_output ?></p>
|
191 |
<p><?php echo $text_output ?></p>
|
192 |
<div><?php echo $details_output ?></div>
|
|
|
193 |
<?php
|
194 |
$occasions = $row->subsequentOccasions - 1;
|
195 |
if ( $occasions ) {
|
196 |
-
printf( _n('+%1$s occasion', '+%1$s occasions',
|
197 |
}
|
198 |
?>
|
199 |
]]></description>
|
200 |
-
|
|
|
|
|
|
|
201 |
<pubDate><?php echo date("D, d M Y H:i:s", strtotime($row->date)) ?> GMT</pubDate>
|
202 |
<guid isPermaLink="false"><?php echo $item_guid ?></guid>
|
203 |
<link><?php echo $item_guid ?></link>
|
@@ -211,7 +217,7 @@ class SimpleHistoryRSSDropin {
|
|
211 |
[level] => info
|
212 |
[date] => 2014-10-15 06:50:01
|
213 |
[message] => Updated plugin "{plugin_name}" from {plugin_prev_version} to {plugin_version}
|
214 |
-
[type] =>
|
215 |
[initiator] => wp_user
|
216 |
[occasionsID] => 75e8aeab3e43b37f8a458f3744c4995f
|
217 |
[subsequentOccasions] => 1
|
@@ -265,7 +271,7 @@ class SimpleHistoryRSSDropin {
|
|
265 |
</channel>
|
266 |
</rss>
|
267 |
<?php
|
268 |
-
|
269 |
}
|
270 |
|
271 |
} // rss
|
@@ -277,9 +283,9 @@ class SimpleHistoryRSSDropin {
|
|
277 |
* @return string new secret
|
278 |
*/
|
279 |
function update_rss_secret() {
|
280 |
-
|
281 |
$rss_secret = "";
|
282 |
-
|
283 |
for ($i=0; $i<20; $i++) {
|
284 |
$rss_secret .= chr(rand(97,122));
|
285 |
}
|
@@ -304,7 +310,7 @@ class SimpleHistoryRSSDropin {
|
|
304 |
* Output for settings field that regenerates the RSS adress/secret
|
305 |
*/
|
306 |
function settings_field_rss_regenerate() {
|
307 |
-
|
308 |
$update_link = add_query_arg("", "");
|
309 |
$update_link = wp_nonce_url( $update_link, "simple_history_rss_update_secret", "simple_history_rss_secret_regenerate_nonce" );
|
310 |
|
@@ -324,7 +330,7 @@ class SimpleHistoryRSSDropin {
|
|
324 |
* @return string URL
|
325 |
*/
|
326 |
function get_rss_address() {
|
327 |
-
|
328 |
$rss_secret = get_option("simple_history_rss_secret");
|
329 |
$rss_address = add_query_arg(array("simple_history_get_rss" => "1", "rss_secret" => $rss_secret), get_bloginfo("url") . "/");
|
330 |
$rss_address = htmlspecialchars($rss_address, ENT_COMPAT, "UTF-8");
|
12 |
class SimpleHistoryRSSDropin {
|
13 |
|
14 |
function __construct($sh) {
|
15 |
+
|
16 |
$this->sh = $sh;
|
17 |
|
18 |
if ( ! function_exists('get_editable_roles') ) {
|
32 |
}
|
33 |
|
34 |
/**
|
35 |
+
* Add settings for the RSS feed
|
36 |
* + also regenerates the secret if requested
|
37 |
*/
|
38 |
public function add_settings() {
|
43 |
$settings_section_rss_id = "simple_history_settings_section_rss";
|
44 |
|
45 |
add_settings_section(
|
46 |
+
$settings_section_rss_id,
|
47 |
+
_x("RSS feed", "rss settings headline", "simple-history"), // No title __("General", "simple-history"),
|
48 |
+
array($this, "settings_section_output"),
|
49 |
SimpleHistory::SETTINGS_MENU_SLUG // same slug as for options menu page
|
50 |
);
|
51 |
|
52 |
// RSS address
|
53 |
add_settings_field(
|
54 |
+
"simple_history_rss_feed",
|
55 |
__("Address", "simple-history"),
|
56 |
array($this, "settings_field_rss"),
|
57 |
SimpleHistory::SETTINGS_MENU_SLUG,
|
60 |
|
61 |
// Regnerate address
|
62 |
add_settings_field(
|
63 |
+
"simple_history_rss_feed_regenerate_secret",
|
64 |
__("Regenerate", "simple-history"),
|
65 |
array($this, "settings_field_rss_regenerate"),
|
66 |
SimpleHistory::SETTINGS_MENU_SLUG,
|
70 |
// Create new RSS secret
|
71 |
$create_new_secret = false;
|
72 |
$create_secret_nonce_name = "simple_history_rss_secret_regenerate_nonce";
|
73 |
+
|
74 |
if ( isset( $_GET[$create_secret_nonce_name] ) && wp_verify_nonce( $_GET[$create_secret_nonce_name], 'simple_history_rss_update_secret')) {
|
75 |
|
76 |
$create_new_secret = true;
|
95 |
* Check if current request is a request for the RSS feed
|
96 |
*/
|
97 |
function check_for_rss_feed_request() {
|
98 |
+
|
99 |
// check for RSS
|
100 |
// don't know if this is the right way to do this, but it seems to work!
|
101 |
if ( isset( $_GET["simple_history_get_rss"] ) ) {
|
104 |
exit;
|
105 |
|
106 |
}
|
107 |
+
|
108 |
}
|
109 |
|
110 |
/**
|
136 |
wp_die( 'Nothing here.' );
|
137 |
}
|
138 |
|
139 |
+
header("Content-Type: text/xml; charset=utf-8");
|
140 |
echo '<?xml version="1.0" encoding="UTF-8"?>';
|
141 |
$self_link = $this->get_rss_address();
|
142 |
+
|
143 |
if ( $rss_secret_option === $rss_secret_get ) {
|
144 |
+
|
145 |
?>
|
146 |
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
147 |
<channel>
|
148 |
+
<title><![CDATA[<?php printf(__("History for %s", 'simple-history'), get_bloginfo("name")) ?>]]></title>
|
149 |
+
<description><![CDATA[<?php printf(__("WordPress History for %s", 'simple-history'), get_bloginfo("name")) ?>]]></description>
|
150 |
<link><?php echo get_bloginfo("url") ?></link>
|
151 |
<atom:link href="<?php echo $self_link; ?>" rel="self" type="application/atom+xml" />
|
152 |
<?php
|
166 |
);
|
167 |
|
168 |
$args = apply_filters("simple_history/rss_feed_args", $args);
|
169 |
+
|
170 |
$logQuery = new SimpleHistoryLogQuery();
|
171 |
$queryResults = $logQuery->query($args);
|
172 |
|
174 |
// remove_action( $action_tag, array($this, "on_can_read_single_logger") );
|
175 |
|
176 |
foreach ($queryResults["log_rows"] as $row) {
|
177 |
+
|
178 |
$header_output = $this->sh->getLogRowHeaderOutput( $row );
|
179 |
$text_output = $this->sh->getLogRowPlainTextOutput( $row );
|
180 |
$details_output = $this->sh->getLogRowDetailsOutput( $row );
|
181 |
$item_guid = home_url() . "?SimpleHistoryGuid=" . $row->id;
|
182 |
|
183 |
#$item_title = wp_kses( $header_output . ": " . $text_output, array() );
|
184 |
+
$item_title = $this->sh->getLogLevelTranslated( $row->level ) . ": " . wp_kses( $text_output, array() );
|
185 |
+
|
186 |
+
$level_output = sprintf( __('Severity level: %1$s'), $this->sh->getLogLevelTranslated( $row->level ));
|
187 |
+
|
188 |
?>
|
189 |
<item>
|
190 |
+
<title><![CDATA[<?php echo $item_title; ?>]]></title>
|
191 |
<description><![CDATA[
|
192 |
<p><?php echo $header_output ?></p>
|
193 |
<p><?php echo $text_output ?></p>
|
194 |
<div><?php echo $details_output ?></div>
|
195 |
+
<p><?php echo $level_output ?></p>
|
196 |
<?php
|
197 |
$occasions = $row->subsequentOccasions - 1;
|
198 |
if ( $occasions ) {
|
199 |
+
printf( _n( '+%1$s occasion', '+%1$s occasions', $occasions, 'simple-history' ), $occasions );
|
200 |
}
|
201 |
?>
|
202 |
]]></description>
|
203 |
+
<?php
|
204 |
+
// author must be email to validate, but the field is optional, so we skip it
|
205 |
+
/* <author><?php echo $row->initiator ?></author> */
|
206 |
+
?>
|
207 |
<pubDate><?php echo date("D, d M Y H:i:s", strtotime($row->date)) ?> GMT</pubDate>
|
208 |
<guid isPermaLink="false"><?php echo $item_guid ?></guid>
|
209 |
<link><?php echo $item_guid ?></link>
|
217 |
[level] => info
|
218 |
[date] => 2014-10-15 06:50:01
|
219 |
[message] => Updated plugin "{plugin_name}" from {plugin_prev_version} to {plugin_version}
|
220 |
+
[type] =>
|
221 |
[initiator] => wp_user
|
222 |
[occasionsID] => 75e8aeab3e43b37f8a458f3744c4995f
|
223 |
[subsequentOccasions] => 1
|
271 |
</channel>
|
272 |
</rss>
|
273 |
<?php
|
274 |
+
|
275 |
}
|
276 |
|
277 |
} // rss
|
283 |
* @return string new secret
|
284 |
*/
|
285 |
function update_rss_secret() {
|
286 |
+
|
287 |
$rss_secret = "";
|
288 |
+
|
289 |
for ($i=0; $i<20; $i++) {
|
290 |
$rss_secret .= chr(rand(97,122));
|
291 |
}
|
310 |
* Output for settings field that regenerates the RSS adress/secret
|
311 |
*/
|
312 |
function settings_field_rss_regenerate() {
|
313 |
+
|
314 |
$update_link = add_query_arg("", "");
|
315 |
$update_link = wp_nonce_url( $update_link, "simple_history_rss_update_secret", "simple_history_rss_secret_regenerate_nonce" );
|
316 |
|
330 |
* @return string URL
|
331 |
*/
|
332 |
function get_rss_address() {
|
333 |
+
|
334 |
$rss_secret = get_option("simple_history_rss_secret");
|
335 |
$rss_address = add_query_arg(array("simple_history_get_rss" => "1", "rss_secret" => $rss_secret), get_bloginfo("url") . "/");
|
336 |
$rss_address = htmlspecialchars($rss_address, ENT_COMPAT, "UTF-8");
|
dropins/SimpleHistorySettingsLogtestDropin.php
CHANGED
@@ -11,7 +11,7 @@ class SimpleHistorySettingsLogtestDropin {
|
|
11 |
if ( ! defined("SIMPLE_HISTORY_DEV") || ! SIMPLE_HISTORY_DEV ) {
|
12 |
return;
|
13 |
}
|
14 |
-
|
15 |
$this->sh = $sh;
|
16 |
|
17 |
// How do we register this to the settings array?
|
@@ -40,10 +40,10 @@ class SimpleHistorySettingsLogtestDropin {
|
|
40 |
}
|
41 |
|
42 |
public function on_admin_head() {
|
43 |
-
|
44 |
?>
|
45 |
<script>
|
46 |
-
|
47 |
jQuery(function($) {
|
48 |
|
49 |
var button = $(".js-SimpleHistorySettingsLogtestDropin-addStuff");
|
@@ -51,14 +51,14 @@ class SimpleHistorySettingsLogtestDropin {
|
|
51 |
var messageWorking = $(".js-SimpleHistorySettingsLogtestDropin-addStuffWorking");
|
52 |
|
53 |
button.on("click", function(e) {
|
54 |
-
|
55 |
messageWorking.show();
|
56 |
messageDone.hide();
|
57 |
|
58 |
$.post(ajaxurl, {
|
59 |
action: "SimpleHistoryAddLogTest"
|
60 |
}).done(function(r) {
|
61 |
-
|
62 |
messageWorking.hide();
|
63 |
messageDone.show();
|
64 |
|
@@ -75,7 +75,7 @@ class SimpleHistorySettingsLogtestDropin {
|
|
75 |
}
|
76 |
|
77 |
public function output() {
|
78 |
-
|
79 |
?>
|
80 |
<h2>Test data</h2>
|
81 |
|
@@ -122,12 +122,12 @@ class SimpleHistorySettingsLogtestDropin {
|
|
122 |
SimpleLogger()->info("User admin edited page 'About our company'");
|
123 |
SimpleLogger()->warning("User 'Jessie' deleted user 'Kim'");
|
124 |
SimpleLogger()->debug("Ok, cron job is running!");
|
125 |
-
|
126 |
// Log entries can have placeholders and context
|
127 |
// This makes log entried translatable and filterable
|
128 |
for ($i = 0; $i < rand(1, 50); $i++) {
|
129 |
SimpleLogger()->notice(
|
130 |
-
"User {username} edited page {pagename}",
|
131 |
array(
|
132 |
"username" => "bonnyerden",
|
133 |
"pagename" => "My test page",
|
@@ -145,7 +145,7 @@ class SimpleHistorySettingsLogtestDropin {
|
|
145 |
// in the log overview
|
146 |
for ($i = 0; $i < rand(1, 50); $i++) {
|
147 |
SimpleLogger()->notice("User {username} edited page {pagename}", array(
|
148 |
-
"username" => "admin",
|
149 |
"pagename" => "My test page",
|
150 |
"_occasionsID" => "username:1,postID:24884,action:edited"
|
151 |
));
|
@@ -221,6 +221,10 @@ class SimpleHistorySettingsLogtestDropin {
|
|
221 |
"_occasionsID" => "username:1,postID:24885,action:edited"
|
222 |
));
|
223 |
|
|
|
|
|
|
|
|
|
224 |
}
|
225 |
|
226 |
}
|
@@ -289,4 +293,4 @@ add_action("init", function() {
|
|
289 |
|
290 |
|
291 |
|
292 |
-
//*/
|
11 |
if ( ! defined("SIMPLE_HISTORY_DEV") || ! SIMPLE_HISTORY_DEV ) {
|
12 |
return;
|
13 |
}
|
14 |
+
|
15 |
$this->sh = $sh;
|
16 |
|
17 |
// How do we register this to the settings array?
|
40 |
}
|
41 |
|
42 |
public function on_admin_head() {
|
43 |
+
|
44 |
?>
|
45 |
<script>
|
46 |
+
|
47 |
jQuery(function($) {
|
48 |
|
49 |
var button = $(".js-SimpleHistorySettingsLogtestDropin-addStuff");
|
51 |
var messageWorking = $(".js-SimpleHistorySettingsLogtestDropin-addStuffWorking");
|
52 |
|
53 |
button.on("click", function(e) {
|
54 |
+
|
55 |
messageWorking.show();
|
56 |
messageDone.hide();
|
57 |
|
58 |
$.post(ajaxurl, {
|
59 |
action: "SimpleHistoryAddLogTest"
|
60 |
}).done(function(r) {
|
61 |
+
|
62 |
messageWorking.hide();
|
63 |
messageDone.show();
|
64 |
|
75 |
}
|
76 |
|
77 |
public function output() {
|
78 |
+
|
79 |
?>
|
80 |
<h2>Test data</h2>
|
81 |
|
122 |
SimpleLogger()->info("User admin edited page 'About our company'");
|
123 |
SimpleLogger()->warning("User 'Jessie' deleted user 'Kim'");
|
124 |
SimpleLogger()->debug("Ok, cron job is running!");
|
125 |
+
|
126 |
// Log entries can have placeholders and context
|
127 |
// This makes log entried translatable and filterable
|
128 |
for ($i = 0; $i < rand(1, 50); $i++) {
|
129 |
SimpleLogger()->notice(
|
130 |
+
"User {username} edited page {pagename}",
|
131 |
array(
|
132 |
"username" => "bonnyerden",
|
133 |
"pagename" => "My test page",
|
145 |
// in the log overview
|
146 |
for ($i = 0; $i < rand(1, 50); $i++) {
|
147 |
SimpleLogger()->notice("User {username} edited page {pagename}", array(
|
148 |
+
"username" => "admin",
|
149 |
"pagename" => "My test page",
|
150 |
"_occasionsID" => "username:1,postID:24884,action:edited"
|
151 |
));
|
221 |
"_occasionsID" => "username:1,postID:24885,action:edited"
|
222 |
));
|
223 |
|
224 |
+
SimpleLogger()->debug( "This is a message with no translation" );
|
225 |
+
SimpleLogger()->debug( __("Plugin"), array( "comment" => "This message is 'Plugin' and should contain text domain 'default' since it's a translation that comes with WordPress" ) );
|
226 |
+
SimpleLogger()->debug( __("Enter title of new page", "cms-tree-page-view"), array("comment" => "A translation used in CMS Tree Page View"));
|
227 |
+
|
228 |
}
|
229 |
|
230 |
}
|
293 |
|
294 |
|
295 |
|
296 |
+
//*/
|
dropins/SimpleHistorySidebarDropin.css
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
.SimpleHistory__pageSidebar {
|
3 |
+
float: right;
|
4 |
+
width: 300px;
|
5 |
+
margin-right: -340px;
|
6 |
+
}
|
7 |
+
|
8 |
+
@media only screen and (max-width: 850px) {
|
9 |
+
.SimpleHistory__pageSidebar {
|
10 |
+
width: 100%;
|
11 |
+
float: none;
|
12 |
+
margin-right: auto;
|
13 |
+
margin-top: 20px;
|
14 |
+
}
|
15 |
+
}
|
16 |
+
|
17 |
+
.SimpleHistory__pageSidebar .inside {
|
18 |
+
margin-bottom: 0;
|
19 |
+
}
|
20 |
+
|
21 |
+
.SimpleHistory__pageSidebar .metabox-holder {
|
22 |
+
padding-top: 0 !important;
|
23 |
+
}
|
24 |
+
|
25 |
+
.SimpleHistory__pageSidebar .postbox .hndle {
|
26 |
+
cursor: auto;
|
27 |
+
}
|
28 |
+
|
dropins/SimpleHistorySidebarDropin.php
ADDED
@@ -0,0 +1,225 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
Dropin Name: Sidebar
|
4 |
+
Drop Description: Outputs HTML and filters for a sidebar
|
5 |
+
Dropin URI: http://simple-history.com/
|
6 |
+
Author: Pär Thernström
|
7 |
+
*/
|
8 |
+
|
9 |
+
class SimpleHistorySidebarDropin {
|
10 |
+
|
11 |
+
private $sh;
|
12 |
+
|
13 |
+
function __construct($sh) {
|
14 |
+
|
15 |
+
$this->sh = $sh;
|
16 |
+
|
17 |
+
add_action("simple_history/enqueue_admin_scripts", array($this, "enqueue_admin_scripts"));
|
18 |
+
add_action("simple_history/history_page/after_gui", array($this, "output_sidebar_html"));
|
19 |
+
|
20 |
+
// add_action("simple_history/dropin/sidebar/sidebar_html", array($this, "example_output"));
|
21 |
+
|
22 |
+
add_action("simple_history/dropin/sidebar/sidebar_html", array($this, "default_sidebar_contents"));
|
23 |
+
|
24 |
+
}
|
25 |
+
|
26 |
+
public function default_sidebar_contents() {
|
27 |
+
|
28 |
+
// Boxes that will appear randomly
|
29 |
+
|
30 |
+
// Box about GitHub
|
31 |
+
$headline = _x("Simple History is on GitHub", 'Sidebar box', 'simple-history');
|
32 |
+
|
33 |
+
$body = sprintf(
|
34 |
+
_x('You can star, fork, or report issues with this plugin over at the <a href="%1$s">GitHub page</a>.', 'Sidebar box', 'simple-history'),
|
35 |
+
'https://github.com/bonny/WordPress-Simple-History'
|
36 |
+
);
|
37 |
+
|
38 |
+
$boxGithub = '
|
39 |
+
<div class="postbox">
|
40 |
+
<h3 class="hndle">'.$headline.'</h3>
|
41 |
+
<div class="inside">
|
42 |
+
<p>'.$body.'</p>
|
43 |
+
</div>
|
44 |
+
</div>
|
45 |
+
';
|
46 |
+
|
47 |
+
// Box about donation
|
48 |
+
$headline = _x('Donate to support development', 'Sidebar box', 'simple-history');
|
49 |
+
|
50 |
+
$body = sprintf(
|
51 |
+
_x('If you like and use Simple History you should <a href="%1$s">donate to keep this plugin free</a>.', 'Sidebar box', 'simple-history'),
|
52 |
+
'http://eskapism.se/sida/donate/'
|
53 |
+
);
|
54 |
+
|
55 |
+
$boxDonate = '
|
56 |
+
<div class="postbox">
|
57 |
+
<h3 class="hndle">'.$headline.'</h3>
|
58 |
+
<div class="inside">
|
59 |
+
<p>'.$body.'</p>
|
60 |
+
</div>
|
61 |
+
</div>
|
62 |
+
';
|
63 |
+
|
64 |
+
// Box about review
|
65 |
+
$headline = _x('Review this plugin if you like it', 'Sidebar box', 'simple-history');
|
66 |
+
|
67 |
+
$body1 = sprintf(
|
68 |
+
_x('If you like Simple History then please <a href="%1$s">give it a nice review over at wordpress.org</a>.', 'Sidebar box', 'simple-history'),
|
69 |
+
'https://wordpress.org/support/view/plugin-reviews/simple-history'
|
70 |
+
);
|
71 |
+
|
72 |
+
$body2 = _x('A good review will help new users find this plugin. And it will make the plugin author very happy :)', 'Sidebar box', 'simple-history');
|
73 |
+
|
74 |
+
$boxReview = '
|
75 |
+
<div class="postbox">
|
76 |
+
<h3 class="hndle">'.$headline.'</h3>
|
77 |
+
<div class="inside">
|
78 |
+
<p>'.$body1.'</p>
|
79 |
+
<p>'.$body2.'</p>
|
80 |
+
</div>
|
81 |
+
</div>
|
82 |
+
';
|
83 |
+
|
84 |
+
// Box about tweeting and blogging
|
85 |
+
/*
|
86 |
+
$boxSocial = '
|
87 |
+
<div class="postbox">
|
88 |
+
<h3 class="hndle">Blog or tweet</h3>
|
89 |
+
<div class="inside">
|
90 |
+
<p>Yeah, how about that yo.</p>
|
91 |
+
</div>
|
92 |
+
</div>
|
93 |
+
';
|
94 |
+
*/
|
95 |
+
|
96 |
+
// Box about possible events missing
|
97 |
+
$boxMissingEvents = '
|
98 |
+
<div class="postbox">
|
99 |
+
<h3 class="hndle">Missing events?</h3>
|
100 |
+
<div class="inside">
|
101 |
+
<p>Do you think things are missing in the log? Let me know about it.</p>
|
102 |
+
</div>
|
103 |
+
</div>
|
104 |
+
';
|
105 |
+
//echo $boxMissingEvents;
|
106 |
+
|
107 |
+
$arrBoxes = array(
|
108 |
+
"boxReview" => $boxReview,
|
109 |
+
"boxDonate" => $boxDonate,
|
110 |
+
"boxGithub" => $boxGithub,
|
111 |
+
);
|
112 |
+
|
113 |
+
/**
|
114 |
+
* Filter the default boxes to output in the sidebar
|
115 |
+
*
|
116 |
+
* @since 2.0.17
|
117 |
+
*
|
118 |
+
* @param array $arrBoxes array with boxes to output. Check the key to determine which box is which.
|
119 |
+
*/
|
120 |
+
$arrBoxes = apply_filters("simple_history/SidebarDropin/default_sidebar_boxes", $arrBoxes);
|
121 |
+
|
122 |
+
//echo $arrBoxes[array_rand($arrBoxes)];
|
123 |
+
echo implode("", $arrBoxes); // show all
|
124 |
+
|
125 |
+
// Box to encourage people translate plugin
|
126 |
+
$current_locale = get_locale();
|
127 |
+
if ("en_US" != $current_locale) {
|
128 |
+
|
129 |
+
/** WordPress Translation Install API */
|
130 |
+
require_once ABSPATH . 'wp-admin/includes/translation-install.php';
|
131 |
+
|
132 |
+
$translations = wp_get_available_translations();
|
133 |
+
|
134 |
+
// This text does not need translation since is's only shown in English
|
135 |
+
$boxTranslationTmpl = '
|
136 |
+
<div class="postbox">
|
137 |
+
<h3 class="hndle">Translate Simple History to %1$s</h3>
|
138 |
+
<div class="inside">
|
139 |
+
|
140 |
+
<p>
|
141 |
+
It looks like Simple History is not yet translated to your language.
|
142 |
+
</p>
|
143 |
+
|
144 |
+
<p>
|
145 |
+
If you\'re interested in translating it please check out the <a href="https://developer.wordpress.org/plugins/internationalization/localization/">localization</a> part of the Plugin Handbook for info on how to translate plugins.
|
146 |
+
</p>
|
147 |
+
|
148 |
+
<p>
|
149 |
+
When you\'re done with your translation email it to me at <a href="mailto:par.thernstrom@gmail.com" rel="nofollow">par.thernstrom@gmail.com</a>
|
150 |
+
or <a href="https://github.com/bonny/WordPress-Simple-History/" rel="nofollow">add a pull request</a>.
|
151 |
+
</p>
|
152 |
+
</div>
|
153 |
+
</div>
|
154 |
+
';
|
155 |
+
|
156 |
+
if (isset($translations[$current_locale])) {
|
157 |
+
|
158 |
+
// Check if an existing text string returns something else, and that current lang is not en
|
159 |
+
$teststring_translated = __("Just now", "simple-history");
|
160 |
+
$teststring_untranslated = "Just now";
|
161 |
+
if ($teststring_untranslated == $teststring_translated) {
|
162 |
+
// strings are the same, so plugin probably not translated
|
163 |
+
printf($boxTranslationTmpl, $translations[$current_locale]["english_name"]);
|
164 |
+
}
|
165 |
+
|
166 |
+
}
|
167 |
+
}
|
168 |
+
|
169 |
+
}
|
170 |
+
|
171 |
+
public function example_output() {
|
172 |
+
?>
|
173 |
+
<div class="postbox">
|
174 |
+
<h3 class="hndle">Example title</h3>
|
175 |
+
<div class="inside">
|
176 |
+
<p>Example content. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Inquit, dasne adolescenti veniam? Non laboro, inquit, de nomine. In quibus doctissimi illi veteres inesse quiddam caeleste et divinum putaverunt. Duo Reges: constructio interrete. Indicant pueri, in quibus ut in speculis natura cernitur. Quod ea non occurrentia fingunt, vincunt Aristonem; Quod quidem iam fit etiam in Academia. Aliter enim nosmet ipsos nosse non possumus.</p>
|
177 |
+
</div>
|
178 |
+
</div>
|
179 |
+
<?php
|
180 |
+
}
|
181 |
+
|
182 |
+
public function enqueue_admin_scripts() {
|
183 |
+
|
184 |
+
$file_url = plugin_dir_url(__FILE__);
|
185 |
+
|
186 |
+
wp_enqueue_style("simple_history_SidebarDropin", $file_url . "SimpleHistorySidebarDropin.css", null, SimpleHistory::VERSION);
|
187 |
+
|
188 |
+
}
|
189 |
+
|
190 |
+
/**
|
191 |
+
* Output the outline for the sidebar
|
192 |
+
* Plugins and dropins simple use the filters to output contents to the sidebar
|
193 |
+
* Example HTML code to generate meta box:
|
194 |
+
*
|
195 |
+
* <div class="postbox">
|
196 |
+
* <h3 class="hndle">Title</h3>
|
197 |
+
* <div class="inside">
|
198 |
+
* <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Inquit, dasne adolescenti veniam? Non laboro, inquit, de nomine. In quibus doctissimi illi veteres inesse quiddam caeleste et divinum putaverunt. Duo Reges: constructio interrete. Indicant pueri, in quibus ut in speculis natura cernitur. Quod ea non occurrentia fingunt, vincunt Aristonem; Quod quidem iam fit etiam in Academia. Aliter enim nosmet ipsos nosse non possumus.</p>
|
199 |
+
* </div>
|
200 |
+
* </div>
|
201 |
+
*
|
202 |
+
*/
|
203 |
+
public function output_sidebar_html() {
|
204 |
+
|
205 |
+
?>
|
206 |
+
<div class="SimpleHistory__pageSidebar">
|
207 |
+
|
208 |
+
<div class="metabox-holder">
|
209 |
+
|
210 |
+
<?php
|
211 |
+
/**
|
212 |
+
* Allows to output HTML in sidebar
|
213 |
+
*
|
214 |
+
* @since 2.0.16
|
215 |
+
*/
|
216 |
+
do_action("simple_history/dropin/sidebar/sidebar_html");
|
217 |
+
?>
|
218 |
+
</div>
|
219 |
+
|
220 |
+
</div>
|
221 |
+
<?php
|
222 |
+
|
223 |
+
}
|
224 |
+
|
225 |
+
}// end class
|
examples.php → examples/examples.php
RENAMED
@@ -3,10 +3,68 @@
|
|
3 |
// No external calls allowed
|
4 |
exit;
|
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
/**
|
7 |
* Some examples of filter usage and so on
|
8 |
*/
|
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
// Never clear the log (default is 60 days)
|
11 |
add_filter("simple_history/db_purge_days_interval", "__return_zero");
|
12 |
|
@@ -33,11 +91,11 @@ SimpleLogger()->debug("Ok, cron job is running!");
|
|
33 |
// i.e. collapsing their entries into one expandable log item
|
34 |
SimpleLogger()->info("This is a message sent to the log");
|
35 |
SimpleLogger()->info("This is a message sent to the log");
|
36 |
-
|
37 |
// Log entries can have placeholders and context
|
38 |
// This makes log entried translatable and filterable
|
39 |
SimpleLogger()->notice(
|
40 |
-
"User {username} edited page {pagename}",
|
41 |
array(
|
42 |
"username" => "jessie",
|
43 |
"pagename" => "My test page",
|
@@ -53,13 +111,13 @@ SimpleLogger()->notice(
|
|
53 |
// in the log overview, even if the logged messages are different
|
54 |
for ($i = 0; $i < rand(1, 50); $i++) {
|
55 |
SimpleLogger()->notice("User {username} edited page {pagename}", array(
|
56 |
-
"username" => "example_user_{$i}",
|
57 |
"pagename" => "My test page",
|
58 |
"_occasionsID" => "postID:24884,action:edited"
|
59 |
));
|
60 |
}
|
61 |
|
62 |
-
// Events can have different "initiators",
|
63 |
// i.e. who was responsible for the logged event
|
64 |
// Initiator "WORDPRESS" means that WordPress did something on it's own
|
65 |
SimpleLogger()->info(
|
@@ -99,3 +157,50 @@ SimpleLogger()->info("Edited product '{pagename}'", array(
|
|
99 |
"_userEmail" => "jessie@example.com",
|
100 |
"_occasionsID" => "username:1,postID:24885,action:edited"
|
101 |
));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
// No external calls allowed
|
4 |
exit;
|
5 |
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Misc
|
9 |
+
*/
|
10 |
+
|
11 |
+
// Add $_GET, $_POST, and more info to each logged event
|
12 |
+
define("SIMPLE_HISTORY_LOG_DEBUG", true);
|
13 |
+
|
14 |
+
|
15 |
/**
|
16 |
* Some examples of filter usage and so on
|
17 |
*/
|
18 |
|
19 |
+
|
20 |
+
// Skip loading of loggers
|
21 |
+
add_filter("simple_history/logger/load_logger", function($load_logger, $oneLoggerFile) {
|
22 |
+
|
23 |
+
// Don't load loggers for comments or menus, i.e. don't log changes to comments or to menus
|
24 |
+
if ( in_array($oneLoggerFile, array("SimpleCommentsLogger", "SimpleMenuLogger")) ) {
|
25 |
+
$load_logger = false;
|
26 |
+
}
|
27 |
+
|
28 |
+
return $load_logger;
|
29 |
+
|
30 |
+
}, 10, 2);
|
31 |
+
|
32 |
+
|
33 |
+
// Skip the loading of dropins
|
34 |
+
add_filter("simple_history/dropin/load_dropin", function($load_dropin, $dropinFileBasename) {
|
35 |
+
|
36 |
+
// Don't load the RSS feed dropin
|
37 |
+
if ( $dropinFileBasename == "SimpleHistoryRSSDropin" ) {
|
38 |
+
$load_dropin = false;
|
39 |
+
}
|
40 |
+
|
41 |
+
// Don't load the dropin that polls for changes
|
42 |
+
if ( $dropinFileBasename == "SimpleHistoryNewRowsNotifier" ) {
|
43 |
+
$load_dropin = false;
|
44 |
+
}
|
45 |
+
|
46 |
+
return $load_dropin;
|
47 |
+
|
48 |
+
}, 10, 2);
|
49 |
+
|
50 |
+
|
51 |
+
// Don't log failed logins
|
52 |
+
add_filter("simple_history/simple_logger/log_message_key", function($doLog, $loggerSlug, $messageKey, $SimpleLoggerLogLevelsLevel, $context) {
|
53 |
+
|
54 |
+
// Don't log login attempts to non existing users
|
55 |
+
if ( "SimpleUserLogger" == $loggerSlug && "user_unknown_login_failed" == $messageKey ) {
|
56 |
+
$doLog = false;
|
57 |
+
}
|
58 |
+
|
59 |
+
// Don't log failed logins to existing users
|
60 |
+
if ( "SimpleUserLogger" == $loggerSlug && "user_login_failed" == $messageKey ) {
|
61 |
+
$doLog = false;
|
62 |
+
}
|
63 |
+
|
64 |
+
return $doLog;
|
65 |
+
|
66 |
+
}, 10, 5);
|
67 |
+
|
68 |
// Never clear the log (default is 60 days)
|
69 |
add_filter("simple_history/db_purge_days_interval", "__return_zero");
|
70 |
|
91 |
// i.e. collapsing their entries into one expandable log item
|
92 |
SimpleLogger()->info("This is a message sent to the log");
|
93 |
SimpleLogger()->info("This is a message sent to the log");
|
94 |
+
|
95 |
// Log entries can have placeholders and context
|
96 |
// This makes log entried translatable and filterable
|
97 |
SimpleLogger()->notice(
|
98 |
+
"User {username} edited page {pagename}",
|
99 |
array(
|
100 |
"username" => "jessie",
|
101 |
"pagename" => "My test page",
|
111 |
// in the log overview, even if the logged messages are different
|
112 |
for ($i = 0; $i < rand(1, 50); $i++) {
|
113 |
SimpleLogger()->notice("User {username} edited page {pagename}", array(
|
114 |
+
"username" => "example_user_{$i}",
|
115 |
"pagename" => "My test page",
|
116 |
"_occasionsID" => "postID:24884,action:edited"
|
117 |
));
|
118 |
}
|
119 |
|
120 |
+
// Events can have different "initiators",
|
121 |
// i.e. who was responsible for the logged event
|
122 |
// Initiator "WORDPRESS" means that WordPress did something on it's own
|
123 |
SimpleLogger()->info(
|
157 |
"_userEmail" => "jessie@example.com",
|
158 |
"_occasionsID" => "username:1,postID:24885,action:edited"
|
159 |
));
|
160 |
+
|
161 |
+
|
162 |
+
// Test log cron things
|
163 |
+
/*
|
164 |
+
wp_schedule_event( time(), "hourly", "simple_history_cron_testhook");
|
165 |
+
*/
|
166 |
+
/*
|
167 |
+
wp_clear_scheduled_hook("simple_history_cron_testhook");
|
168 |
+
add_action( 'simple_history_cron_testhook', 'simple_history_cron_testhook_function' );
|
169 |
+
function simple_history_cron_testhook_function() {
|
170 |
+
SimpleLogger()->info("This is a message inside a cron function");
|
171 |
+
}
|
172 |
+
*/
|
173 |
+
|
174 |
+
/*
|
175 |
+
add_action("init", function() {
|
176 |
+
|
177 |
+
global $wp_current_filter;
|
178 |
+
|
179 |
+
$doing_cron = get_transient( 'doing_cron' );
|
180 |
+
$const_doing_cron = defined('DOING_CRON') && DOING_CRON;
|
181 |
+
|
182 |
+
if ($const_doing_cron) {
|
183 |
+
|
184 |
+
$current_filter = current_filter();
|
185 |
+
|
186 |
+
SimpleLogger()->info("This is a message inside init, trying to log crons", array(
|
187 |
+
"doing_cron" => simpleHistory::json_encode($doing_cron),
|
188 |
+
"current_filter" => $current_filter,
|
189 |
+
"wp_current_filter" => $wp_current_filter,
|
190 |
+
"wp_current_filter" => simpleHistory::json_encode( $wp_current_filter ),
|
191 |
+
"const_doing_cron" => simpleHistory::json_encode($const_doing_cron)
|
192 |
+
));
|
193 |
+
|
194 |
+
}
|
195 |
+
|
196 |
+
}, 100);
|
197 |
+
*/
|
198 |
+
|
199 |
+
|
200 |
+
/*
|
201 |
+
add_action("init", function() {
|
202 |
+
|
203 |
+
#SimpleLogger()->info("This is a regular info message" . time());
|
204 |
+
|
205 |
+
}, 100);
|
206 |
+
// */
|
SimpleHistory.php → inc/SimpleHistory.php
RENAMED
@@ -2,17 +2,22 @@
|
|
2 |
|
3 |
/**
|
4 |
* Main class for Simple History
|
5 |
-
*/
|
6 |
class SimpleHistory {
|
7 |
|
8 |
const NAME = "Simple History";
|
9 |
-
const VERSION = "2.0.
|
|
|
|
|
|
|
|
|
|
|
10 |
|
11 |
/**
|
12 |
* Capability required to view the history log
|
13 |
*/
|
14 |
private $view_history_capability;
|
15 |
-
|
16 |
/**
|
17 |
* Capability required to view and edit the settings page
|
18 |
*/
|
@@ -41,6 +46,13 @@ class SimpleHistory {
|
|
41 |
*/
|
42 |
private $doFilterGettext_currentLogger = null;
|
43 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
/**
|
45 |
* All registered settings tabs
|
46 |
*/
|
@@ -58,59 +70,149 @@ class SimpleHistory {
|
|
58 |
function __construct() {
|
59 |
|
60 |
/**
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
do_action(
|
68 |
|
69 |
$this->setupVariables();
|
70 |
|
71 |
// Actions and filters, ordered by order specified in codex: http://codex.wordpress.org/Plugin_API/Action_Reference
|
72 |
-
add_action(
|
73 |
-
add_action(
|
74 |
-
add_action(
|
75 |
-
add_action(
|
76 |
|
77 |
// Run before loading of loggers and before menu items are added
|
78 |
-
add_action(
|
79 |
|
80 |
-
add_action(
|
81 |
-
add_action( 'admin_menu', array($this, 'add_settings') );
|
82 |
|
83 |
-
add_action(
|
84 |
-
|
85 |
-
add_action( 'wp_dashboard_setup', array($this, 'add_dashboard_widget') );
|
86 |
|
87 |
-
add_action(
|
88 |
|
89 |
-
add_action(
|
|
|
|
|
|
|
|
|
|
|
90 |
|
91 |
// Filters and actions not called during regular boot
|
92 |
add_filter("gettext", array($this, 'filter_gettext'), 20, 3);
|
93 |
add_filter("gettext_with_context", array($this, 'filter_gettext_with_context'), 20, 4);
|
94 |
|
95 |
-
|
96 |
-
add_action( 'simple_history/dashboard/before_gui', array( $this, "output_quick_stats" ) );
|
97 |
|
98 |
-
add_action(
|
99 |
-
add_action(
|
100 |
|
101 |
-
|
|
|
|
|
102 |
|
103 |
/**
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
do_action(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
|
112 |
-
|
113 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
|
115 |
}
|
116 |
|
@@ -118,9 +220,9 @@ class SimpleHistory {
|
|
118 |
|
119 |
# Log that an email has been sent
|
120 |
simple_history_add(array(
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
));
|
125 |
|
126 |
# Will show “Plugin your_plugin_name Edited” in the history log
|
@@ -131,20 +233,29 @@ class SimpleHistory {
|
|
131 |
|
132 |
# Log with some extra details about the email
|
133 |
simple_history_add(array(
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
));
|
139 |
|
140 |
-
|
141 |
}
|
142 |
|
143 |
public function onAdminHead() {
|
144 |
|
145 |
-
if (
|
146 |
-
|
147 |
-
do_action(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
148 |
|
149 |
}
|
150 |
|
@@ -154,16 +265,16 @@ class SimpleHistory {
|
|
154 |
* Output JS templated into footer
|
155 |
*/
|
156 |
public function add_js_templates($hook) {
|
157 |
-
|
158 |
-
if (
|
159 |
|
160 |
?>
|
161 |
-
|
162 |
<script type="text/html" id="tmpl-simple-history-base">
|
163 |
|
164 |
<div class="SimpleHistory__waitingForFirstLoad">
|
165 |
<img src="<?php echo admin_url("/images/spinner.gif");?>" alt="" width="20" height="20">
|
166 |
-
<?php echo _x("Loading history...", "Message visible while waiting for log to load from server the first time", "simple-history")
|
167 |
</div>
|
168 |
|
169 |
<div class="SimpleHistoryLogitemsWrap">
|
@@ -180,38 +291,38 @@ class SimpleHistory {
|
|
180 |
</script>
|
181 |
|
182 |
<script type="text/html" id="tmpl-simple-history-logitems-pagination">
|
183 |
-
|
184 |
<!-- this uses the (almost) the same html as WP does -->
|
185 |
<div class="SimpleHistoryPaginationPages">
|
186 |
-
<!--
|
187 |
-
|
188 |
-
<span class="SimpleHistoryPaginationDisplayNum"> of
|
189 |
-->
|
190 |
<span class="SimpleHistoryPaginationLinks">
|
191 |
-
<a
|
192 |
-
data-direction="first"
|
193 |
-
class="button SimpleHistoryPaginationLink SimpleHistoryPaginationLink--firstPage
|
194 |
-
title="
|
195 |
href="#">«</a>
|
196 |
-
<a
|
197 |
-
data-direction="prev"
|
198 |
-
class="button SimpleHistoryPaginationLink SimpleHistoryPaginationLink--prevPage
|
199 |
-
title="
|
200 |
href="#">‹</a>
|
201 |
<span class="SimpleHistoryPaginationInput">
|
202 |
-
<input class="SimpleHistoryPaginationCurrentPage" title="
|
203 |
-
<?php _x("of", "page n of n", "simple-history")
|
204 |
-
<span class="total-pages"
|
205 |
</span>
|
206 |
-
<a
|
207 |
-
data-direction="next"
|
208 |
-
class="button SimpleHistoryPaginationLink SimpleHistoryPaginationLink--nextPage
|
209 |
-
title="
|
210 |
href="#">›</a>
|
211 |
-
<a
|
212 |
-
data-direction="last"
|
213 |
-
class="button SimpleHistoryPaginationLink SimpleHistoryPaginationLink--lastPage
|
214 |
-
title="
|
215 |
href="#">»</a>
|
216 |
</span>
|
217 |
</div>
|
@@ -237,8 +348,8 @@ class SimpleHistory {
|
|
237 |
<?php
|
238 |
|
239 |
// Call plugins so they can add their js
|
240 |
-
foreach (
|
241 |
-
if(
|
242 |
$one_logger["instance"]->adminJS();
|
243 |
}
|
244 |
}
|
@@ -256,7 +367,7 @@ class SimpleHistory {
|
|
256 |
*
|
257 |
*/
|
258 |
public function api() {
|
259 |
-
|
260 |
global $wpdb;
|
261 |
|
262 |
// Fake slow answers
|
@@ -266,23 +377,22 @@ class SimpleHistory {
|
|
266 |
unset($args["action"]);
|
267 |
|
268 |
// Type = overview | ...
|
269 |
-
$type = isset(
|
270 |
|
271 |
-
if (
|
272 |
|
273 |
-
wp_send_json_error(
|
274 |
-
_x("Not enough args specified", "API: not enought arguments passed", "simple-history")
|
275 |
-
)
|
276 |
|
277 |
}
|
278 |
|
279 |
if (isset($args["id"])) {
|
280 |
$args["post__in"] = array(
|
281 |
-
$args["id"]
|
282 |
);
|
283 |
}
|
284 |
|
285 |
-
|
286 |
$data = array();
|
287 |
|
288 |
switch ($type) {
|
@@ -294,39 +404,39 @@ class SimpleHistory {
|
|
294 |
// API use SimpleHistoryLogQuery, so simply pass args on to that
|
295 |
$logQuery = new SimpleHistoryLogQuery();
|
296 |
$data = $logQuery->query($args);
|
297 |
-
|
298 |
$data["api_args"] = $args;
|
299 |
|
300 |
// Output can be array or HMTL
|
301 |
-
if (
|
302 |
-
|
303 |
$data["log_rows_raw"] = array();
|
304 |
|
305 |
foreach ($data["log_rows"] as $key => $oneLogRow) {
|
306 |
-
|
307 |
$args = array();
|
308 |
if ($type == "single") {
|
309 |
$args["type"] = "single";
|
310 |
}
|
311 |
|
312 |
-
$data["log_rows"][$key] = $this->getLogRowHTMLOutput(
|
|
|
313 |
|
314 |
}
|
315 |
|
316 |
} else {
|
317 |
-
|
318 |
$data["logRows"] = $logRows;
|
319 |
}
|
320 |
|
321 |
break;
|
322 |
|
323 |
-
|
324 |
default:
|
325 |
$data[] = "Nah.";
|
326 |
|
327 |
}
|
328 |
|
329 |
-
wp_send_json_success(
|
330 |
|
331 |
}
|
332 |
|
@@ -335,9 +445,9 @@ class SimpleHistory {
|
|
335 |
* to the untranslated text too, because that's the version we want to store
|
336 |
* in the database.
|
337 |
*/
|
338 |
-
public function filter_gettext(
|
339 |
|
340 |
-
if (
|
341 |
|
342 |
$this->doFilterGettext_currentLogger->messages[] = array(
|
343 |
"untranslated_text" => $untranslated_text,
|
@@ -349,15 +459,15 @@ class SimpleHistory {
|
|
349 |
}
|
350 |
|
351 |
return $translated_text;
|
352 |
-
|
353 |
}
|
354 |
|
355 |
/**
|
356 |
* Store messages with context
|
357 |
*/
|
358 |
-
public function filter_gettext_with_context(
|
359 |
|
360 |
-
if (
|
361 |
|
362 |
$this->doFilterGettext_currentLogger->messages[] = array(
|
363 |
"untranslated_text" => $untranslated_text,
|
@@ -369,25 +479,25 @@ class SimpleHistory {
|
|
369 |
}
|
370 |
|
371 |
return $translated_text;
|
372 |
-
|
373 |
}
|
374 |
|
375 |
/**
|
376 |
* Load language files.
|
377 |
* Uses the method described here:
|
378 |
* http://geertdedeckere.be/article/loading-wordpress-language-files-the-right-way
|
379 |
-
*
|
380 |
* @since 2.0
|
381 |
*/
|
382 |
public function load_plugin_textdomain() {
|
383 |
|
384 |
$domain = 'simple-history';
|
385 |
-
|
386 |
// The "plugin_locale" filter is also used in load_plugin_textdomain()
|
387 |
$locale = apply_filters('plugin_locale', get_locale(), $domain);
|
388 |
|
389 |
-
load_textdomain($domain, WP_LANG_DIR.'/simple-history/'
|
390 |
-
load_plugin_textdomain($domain, FALSE, dirname(
|
391 |
|
392 |
}
|
393 |
|
@@ -395,7 +505,7 @@ class SimpleHistory {
|
|
395 |
* Setup variables and things
|
396 |
*/
|
397 |
public function setupVariables() {
|
398 |
-
|
399 |
// Capability required to view history = for who will the History page be added
|
400 |
$this->view_history_capability = "edit_pages";
|
401 |
$this->view_history_capability = apply_filters("simple_history_view_history_capability", $this->view_history_capability);
|
@@ -406,7 +516,7 @@ class SimpleHistory {
|
|
406 |
$this->view_settings_capability = apply_filters("simple_history_view_settings_capability", $this->view_settings_capability);
|
407 |
$this->view_settings_capability = apply_filters("simple_history/view_settings_capability", $this->view_settings_capability);
|
408 |
|
409 |
-
$this->plugin_basename = plugin_basename(__DIR__ . "
|
410 |
|
411 |
}
|
412 |
|
@@ -414,35 +524,35 @@ class SimpleHistory {
|
|
414 |
* Adds default tabs to settings
|
415 |
*/
|
416 |
public function add_default_settings_tabs() {
|
417 |
-
|
418 |
// Add default settings tabs
|
419 |
$this->arr_settings_tabs = array(
|
420 |
-
|
421 |
array(
|
422 |
"slug" => "settings",
|
423 |
"name" => __("Settings", "simple-history"),
|
424 |
-
"function" => array($this, "settings_output_general")
|
425 |
),
|
426 |
|
427 |
);
|
428 |
|
429 |
-
if (
|
430 |
-
|
431 |
$arr_dev_tabs = array(
|
432 |
array(
|
433 |
"slug" => "log",
|
434 |
"name" => __("Log (debug)", "simple-history"),
|
435 |
-
"function" => array($this, "settings_output_log")
|
436 |
),
|
437 |
array(
|
438 |
"slug" => "styles-example",
|
439 |
"name" => __("Styles example (debug)", "simple-history"),
|
440 |
-
"function" => array($this, "settings_output_styles_example")
|
441 |
-
)
|
442 |
|
443 |
);
|
444 |
|
445 |
-
$this->arr_settings_tabs = array_merge(
|
446 |
|
447 |
}
|
448 |
|
@@ -453,8 +563,8 @@ class SimpleHistory {
|
|
453 |
* and instantiates them
|
454 |
*/
|
455 |
public function loadLoggers() {
|
456 |
-
|
457 |
-
$loggersDir = __DIR__ . "
|
458 |
|
459 |
/**
|
460 |
* Filter the directory to load loggers from
|
@@ -465,10 +575,10 @@ class SimpleHistory {
|
|
465 |
*/
|
466 |
$loggersDir = apply_filters("simple_history/loggers_dir", $loggersDir);
|
467 |
|
468 |
-
$loggersFiles = glob(
|
469 |
|
470 |
// SimpleLogger.php must be loaded first since the other loggers extend it
|
471 |
-
require_once
|
472 |
|
473 |
/**
|
474 |
* Filter the array with absolute paths to files as returned by glob function.
|
@@ -478,24 +588,43 @@ class SimpleHistory {
|
|
478 |
* @since 2.0
|
479 |
*
|
480 |
* @param array $loggersFiles Array with filenames
|
481 |
-
*/
|
482 |
$loggersFiles = apply_filters("simple_history/loggers_files", $loggersFiles);
|
483 |
-
|
484 |
$arrLoggersToInstantiate = array();
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
489 |
// SimpleLogger is already loaded
|
490 |
|
491 |
} else {
|
492 |
|
493 |
-
include_once
|
494 |
|
495 |
}
|
496 |
|
497 |
-
$arrLoggersToInstantiate[] =
|
498 |
-
|
499 |
}
|
500 |
|
501 |
/**
|
@@ -504,23 +633,24 @@ class SimpleHistory {
|
|
504 |
* @since 2.0
|
505 |
*
|
506 |
* @param array $arrLoggersToInstantiate Array with class names
|
507 |
-
*/
|
508 |
$arrLoggersToInstantiate = apply_filters("simple_history/loggers_to_instantiate", $arrLoggersToInstantiate);
|
|
|
509 |
// Instantiate each logger
|
510 |
-
foreach ($arrLoggersToInstantiate as $oneLoggerName
|
511 |
-
|
512 |
-
if (
|
513 |
continue;
|
514 |
}
|
515 |
|
516 |
$loggerInstance = new $oneLoggerName($this);
|
517 |
|
518 |
-
if (
|
519 |
continue;
|
520 |
}
|
521 |
|
522 |
$loggerInstance->loaded();
|
523 |
-
|
524 |
// Tell gettext-filter to add untranslated messages
|
525 |
$this->doFilterGettext = true;
|
526 |
$this->doFilterGettext_currentLogger = $loggerInstance;
|
@@ -531,34 +661,34 @@ class SimpleHistory {
|
|
531 |
$this->doFilterGettext = false;
|
532 |
$this->doFilterGettext_currentLogger = null;
|
533 |
|
534 |
-
// LoggerInfo contains all messages, both translated an not, by key.
|
535 |
// Add messages to the loggerInstance
|
536 |
$loopNum = 0;
|
537 |
-
foreach (
|
538 |
-
|
539 |
-
$loggerInstance->messages[
|
540 |
$loopNum++;
|
541 |
|
542 |
}
|
543 |
|
544 |
// Remove index keys, only keeping slug keys
|
545 |
if (is_array($loggerInstance->messages)) {
|
546 |
-
foreach (
|
547 |
-
if
|
548 |
-
unset(
|
549 |
}
|
550 |
}
|
551 |
-
}
|
552 |
-
|
553 |
// Add logger to array of loggers
|
554 |
-
$this->instantiatedLoggers[
|
555 |
"name" => $loggerInfo["name"],
|
556 |
-
"instance" => $loggerInstance
|
557 |
);
|
558 |
|
559 |
}
|
560 |
|
561 |
-
do_action(
|
562 |
|
563 |
#sf_d($this->instantiatedLoggers);exit;
|
564 |
|
@@ -569,8 +699,8 @@ class SimpleHistory {
|
|
569 |
* and instantiates them
|
570 |
*/
|
571 |
public function loadDropins() {
|
572 |
-
|
573 |
-
$dropinsDir = __DIR__ . "
|
574 |
|
575 |
/**
|
576 |
* Filter the directory to load loggers from
|
@@ -581,7 +711,7 @@ class SimpleHistory {
|
|
581 |
*/
|
582 |
$dropinsDir = apply_filters("simple_history/dropins_dir", $dropinsDir);
|
583 |
|
584 |
-
$dropinsFiles = glob(
|
585 |
|
586 |
/**
|
587 |
* Filter the array with absolute paths to files as returned by glob function.
|
@@ -591,16 +721,18 @@ class SimpleHistory {
|
|
591 |
* @since 2.0
|
592 |
*
|
593 |
* @param array $dropinsFiles Array with filenames
|
594 |
-
*/
|
595 |
$dropinsFiles = apply_filters("simple_history/dropins_files", $dropinsFiles);
|
596 |
-
|
597 |
$arrDropinsToInstantiate = array();
|
598 |
|
599 |
-
foreach (
|
600 |
-
|
601 |
// path/path/simplehistory/dropins/SimpleHistoryDonateDropin.php => SimpleHistoryDonateDropin
|
602 |
$oneDropinFileBasename = basename($oneDropinFile, ".php");
|
603 |
|
|
|
|
|
604 |
/**
|
605 |
* Filter to completely skip loading of dropin
|
606 |
* complete filer name will be like:
|
@@ -610,16 +742,26 @@ class SimpleHistory {
|
|
610 |
*
|
611 |
* @param bool if to load the dropin. return false to not load it.
|
612 |
*/
|
613 |
-
$load_dropin = apply_filters(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
614 |
|
615 |
if ( ! $load_dropin ) {
|
616 |
continue;
|
617 |
}
|
618 |
|
619 |
-
include_once
|
620 |
|
621 |
$arrDropinsToInstantiate[] = $oneDropinFileBasename;
|
622 |
-
|
623 |
}
|
624 |
|
625 |
/**
|
@@ -628,26 +770,26 @@ class SimpleHistory {
|
|
628 |
* @since 2.0
|
629 |
*
|
630 |
* @param array $arrDropinsToInstantiate Array with class names
|
631 |
-
*/
|
632 |
$arrDropinsToInstantiate = apply_filters("simple_history/dropins_to_instantiate", $arrDropinsToInstantiate);
|
633 |
|
634 |
// Instantiate each dropin
|
635 |
-
foreach ($arrDropinsToInstantiate as $oneDropinName
|
636 |
-
|
637 |
-
if (
|
638 |
continue;
|
639 |
}
|
640 |
|
641 |
$this->instantiatedDropins[$oneDropinName] = array(
|
642 |
"name" => $oneDropinName,
|
643 |
-
"instance" => new $oneDropinName(
|
644 |
);
|
645 |
}
|
646 |
|
647 |
}
|
648 |
|
649 |
/**
|
650 |
-
* Gets the pager size,
|
651 |
* i.e. the number of items to show on each page in the history
|
652 |
*
|
653 |
* @return int
|
@@ -668,24 +810,23 @@ class SimpleHistory {
|
|
668 |
return $pager_size;
|
669 |
|
670 |
}
|
671 |
-
|
672 |
|
673 |
/**
|
674 |
* Show a link to our settings page on the Plugins -> Installed Plugins screen
|
675 |
*/
|
676 |
function plugin_action_links($actions, $b, $c, $d) {
|
677 |
-
|
678 |
// Only add link if user has the right to view the settings page
|
679 |
-
if (
|
680 |
return $actions;
|
681 |
}
|
682 |
|
683 |
$settings_page_url = menu_page_url(SimpleHistory::SETTINGS_MENU_SLUG, 0);
|
684 |
-
|
685 |
$actions[] = "<a href='$settings_page_url'>" . __("Settings", "simple-history") . "</a>";
|
686 |
|
687 |
return $actions;
|
688 |
-
|
689 |
}
|
690 |
|
691 |
/**
|
@@ -694,11 +835,11 @@ class SimpleHistory {
|
|
694 |
* and a setting to show dashboard to be set
|
695 |
*/
|
696 |
function add_dashboard_widget() {
|
697 |
-
|
698 |
-
if (
|
699 |
-
|
700 |
wp_add_dashboard_widget("simple_history_dashboard_widget", __("Simple History", 'simple-history'), array($this, "dashboard_widget_output"));
|
701 |
-
|
702 |
}
|
703 |
}
|
704 |
|
@@ -706,7 +847,7 @@ class SimpleHistory {
|
|
706 |
* Output html for the dashboard widget
|
707 |
*/
|
708 |
function dashboard_widget_output() {
|
709 |
-
|
710 |
$pager_size = $this->get_pager_size();
|
711 |
|
712 |
/**
|
@@ -718,33 +859,33 @@ class SimpleHistory {
|
|
718 |
*/
|
719 |
$pager_size = apply_filters("simple_history/dashboard_pager_size", $pager_size);
|
720 |
|
721 |
-
do_action(
|
722 |
|
723 |
?>
|
724 |
<div class="SimpleHistoryGui"
|
725 |
-
data-pager-size='<?php echo $pager_size
|
726 |
></div>
|
727 |
<?php
|
728 |
|
729 |
}
|
730 |
-
|
731 |
function is_on_our_own_pages($hook = "") {
|
732 |
|
733 |
$current_screen = get_current_screen();
|
734 |
|
735 |
-
if (
|
736 |
-
|
737 |
return true;
|
738 |
|
739 |
-
} else if (
|
740 |
|
741 |
return true;
|
742 |
|
743 |
-
} else if (
|
744 |
|
745 |
return true;
|
746 |
|
747 |
-
} else if (
|
748 |
|
749 |
return true;
|
750 |
|
@@ -759,20 +900,20 @@ class SimpleHistory {
|
|
759 |
* Only adds scripts to pages where the log is shown or the settings page.
|
760 |
*/
|
761 |
function enqueue_admin_scripts($hook) {
|
762 |
-
|
763 |
-
if (
|
764 |
-
|
765 |
add_thickbox();
|
766 |
|
767 |
-
$plugin_url = plugin_dir_url(
|
768 |
-
wp_enqueue_style(
|
769 |
-
wp_enqueue_script("simple_history_script", $plugin_url . "js/scripts.js", array("jquery", "backbone"), SimpleHistory::VERSION, true);
|
770 |
-
|
771 |
wp_enqueue_script("select2", $plugin_url . "/js/select2/select2.min.js", array("jquery"));
|
772 |
wp_enqueue_style("select2", $plugin_url . "/js/select2/select2.css");
|
773 |
|
774 |
// Translations that we use in JavaScript
|
775 |
-
wp_localize_script('simple_history_script', 'simple_history_script_vars', array(
|
776 |
'settingsConfirmClearLog' => __("Remove all log items?", 'simple-history'),
|
777 |
'pagination' => array(
|
778 |
'goToTheFirstPage' => __("Go to the first page", 'simple-history'),
|
@@ -782,26 +923,26 @@ class SimpleHistory {
|
|
782 |
'currentPage' => __("Current page", 'simple-history'),
|
783 |
),
|
784 |
"loadLogAPIError" => __("Oups, the log could not be loaded right now.", 'simple-history'),
|
785 |
-
"logNoHits" => __("Your search did not match any history events.", "simple-history")
|
786 |
));
|
787 |
|
788 |
// Call plugins adminCSS-method, so they can add their CSS
|
789 |
-
foreach (
|
790 |
-
if (
|
791 |
$one_logger["instance"]->adminCSS();
|
792 |
}
|
793 |
}
|
794 |
|
795 |
/**
|
796 |
-
|
797 |
-
|
798 |
-
|
799 |
-
|
800 |
-
|
801 |
-
|
802 |
-
|
803 |
do_action("simple_history/enqueue_admin_scripts", $this);
|
804 |
-
|
805 |
}
|
806 |
|
807 |
}
|
@@ -809,7 +950,7 @@ class SimpleHistory {
|
|
809 |
function filter_option_page_capability($capability) {
|
810 |
return $capability;
|
811 |
}
|
812 |
-
|
813 |
/**
|
814 |
* Check if plugin version have changed, i.e. has been upgraded
|
815 |
* If upgrade is detected then maybe modify database and so on for that version
|
@@ -823,30 +964,30 @@ class SimpleHistory {
|
|
823 |
$table_name_contexts = $wpdb->prefix . SimpleHistory::DBTABLE_CONTEXTS;
|
824 |
$first_install = false;
|
825 |
|
826 |
-
// If no db_version is set then this
|
827 |
// is a version of Simple History < 0.4
|
828 |
// or it's a first install
|
829 |
// Fix database not using UTF-8
|
830 |
-
if (
|
831 |
-
|
832 |
-
require_once
|
833 |
|
834 |
// Table creation, used to be in register_activation_hook
|
835 |
-
/*
|
836 |
$sql = "CREATE TABLE " . $table_name . " (
|
837 |
-
|
838 |
-
|
839 |
-
|
840 |
-
|
841 |
-
|
842 |
-
|
843 |
-
|
844 |
-
|
845 |
-
|
846 |
-
|
847 |
) CHARACTER SET=utf8;";
|
848 |
dbDelta($sql);
|
849 |
-
|
850 |
|
851 |
// We change the varchar size to add one num just to force update of encoding. dbdelta didn't see it otherwise.
|
852 |
// This table is missing action_description, but we add that later on
|
@@ -864,36 +1005,27 @@ class SimpleHistory {
|
|
864 |
|
865 |
// Upgrade db / fix utf for varchars
|
866 |
dbDelta($sql);
|
867 |
-
|
868 |
// Fix UTF-8 for table
|
869 |
$sql = sprintf('alter table %1$s charset=utf8;', $table_name);
|
870 |
$wpdb->query($sql);
|
871 |
-
|
872 |
$db_version_prev = $db_version;
|
873 |
$db_version = 1;
|
874 |
|
875 |
-
/*SimpleLogger()->debug(
|
876 |
-
"Simple History updated its database from version {from_version} to {to_version}",
|
877 |
-
array(
|
878 |
-
"from_version" => $db_version_prev,
|
879 |
-
"to_version" => $db_version
|
880 |
-
)
|
881 |
-
);*/
|
882 |
-
|
883 |
update_option("simple_history_db_version", $db_version);
|
884 |
|
885 |
-
// We are not 100% sure that this is a first install,
|
886 |
// but it is at least a very old version that is being updated
|
887 |
$first_install = true;
|
888 |
|
889 |
-
}
|
890 |
-
|
891 |
|
892 |
// If db version is 1 then upgrade to 2
|
893 |
// Version 2 added the action_description column
|
894 |
-
if (
|
895 |
|
896 |
-
// Add column for action description in non-
|
897 |
$sql = "ALTER TABLE {$table_name} ADD COLUMN action_description longtext";
|
898 |
$wpdb->query($sql);
|
899 |
|
@@ -909,20 +1041,20 @@ class SimpleHistory {
|
|
909 |
$arr_options = array(
|
910 |
array(
|
911 |
"name" => "simple_history_show_as_page",
|
912 |
-
"default_value" => 1
|
913 |
),
|
914 |
array(
|
915 |
"name" => "simple_history_show_on_dashboard",
|
916 |
-
"default_value" => 1
|
917 |
-
)
|
918 |
);
|
919 |
|
920 |
foreach ($arr_options as $one_option) {
|
921 |
-
|
922 |
-
if (
|
923 |
|
924 |
// Value is not set in db, so set it to a default
|
925 |
-
update_option(
|
926 |
|
927 |
}
|
928 |
}
|
@@ -934,9 +1066,9 @@ class SimpleHistory {
|
|
934 |
*
|
935 |
* @since 2.0
|
936 |
*/
|
937 |
-
if (
|
938 |
|
939 |
-
require_once
|
940 |
|
941 |
// Update old table
|
942 |
$sql = "
|
@@ -960,7 +1092,7 @@ class SimpleHistory {
|
|
960 |
KEY date (date),
|
961 |
KEY loggerdate (logger, date)
|
962 |
) CHARSET=utf8;";
|
963 |
-
|
964 |
dbDelta($sql);
|
965 |
|
966 |
// Add context table
|
@@ -985,33 +1117,33 @@ class SimpleHistory {
|
|
985 |
// Update old items to use SimpleLegacyLogger
|
986 |
$sql = sprintf('
|
987 |
UPDATE %1$s
|
988 |
-
SET
|
989 |
logger = "SimpleLegacyLogger",
|
990 |
level = "info"
|
991 |
WHERE logger IS NULL
|
992 |
-
',
|
993 |
$table_name
|
994 |
);
|
995 |
|
996 |
-
$wpdb->query(
|
997 |
|
998 |
// Say welcome, however loggers are not added this early so we need to
|
999 |
// use a filter to load it later
|
1000 |
-
add_action("simple_history/loggers_loaded", array(
|
1001 |
|
1002 |
-
}
|
1003 |
|
1004 |
/**
|
1005 |
-
* If db version = 3
|
1006 |
* then we need to update database to allow null values for some old columns
|
1007 |
* that used to work in pre wp 4.1 beta, but since 4.1 wp uses STRICT_ALL_TABLES
|
1008 |
* WordPress Commit: https://github.com/WordPress/WordPress/commit/f17d168a0f72211a9bfd9d3fa680713069871bb6
|
1009 |
-
*
|
1010 |
* @since 2.0
|
1011 |
*/
|
1012 |
-
if (
|
1013 |
|
1014 |
-
require_once
|
1015 |
|
1016 |
$sql = sprintf('
|
1017 |
ALTER TABLE %1$s
|
@@ -1021,31 +1153,30 @@ class SimpleHistory {
|
|
1021 |
MODIFY `user_id` int(10) NULL,
|
1022 |
MODIFY `object_id` int(10) NULL,
|
1023 |
MODIFY `object_name` varchar(255) NULL
|
1024 |
-
',
|
1025 |
$table_name
|
1026 |
);
|
1027 |
-
$wpdb->query(
|
1028 |
|
1029 |
$db_version_prev = $db_version;
|
1030 |
$db_version = 4;
|
1031 |
-
|
1032 |
update_option("simple_history_db_version", $db_version);
|
1033 |
|
1034 |
-
}
|
|
|
|
|
1035 |
|
1036 |
-
|
1037 |
-
} // end check_for_upgrade
|
1038 |
-
|
1039 |
/**
|
1040 |
* Greet users to version 2!
|
1041 |
*/
|
1042 |
public function addWelcomeLogMessage() {
|
1043 |
|
1044 |
SimpleLogger()->info(
|
1045 |
-
"Welcome to Simple History 2! Hope you will enjoy this plugin.
|
1046 |
Found bugs? Got great ideas? Send them to the plugin developer at par.thernstrom@gmail.com.",
|
1047 |
array(
|
1048 |
-
"_initiator" => SimpleLoggerLogInitiators::WORDPRESS
|
1049 |
)
|
1050 |
);
|
1051 |
|
@@ -1066,9 +1197,9 @@ class SimpleHistory {
|
|
1066 |
/**
|
1067 |
* Output HTML for the settings page
|
1068 |
* Called from add_options_page
|
1069 |
-
*/
|
1070 |
function settings_page_output() {
|
1071 |
-
|
1072 |
$arr_settings_tabs = $this->getSettingsTabs();
|
1073 |
|
1074 |
?>
|
@@ -1076,99 +1207,97 @@ class SimpleHistory {
|
|
1076 |
|
1077 |
<h2 class="SimpleHistoryPageHeadline">
|
1078 |
<div class="dashicons dashicons-backup SimpleHistoryPageHeadline__icon"></div>
|
1079 |
-
<?php _e("Simple History Settings", "simple-history")
|
1080 |
</h2>
|
1081 |
-
|
1082 |
<?php
|
1083 |
-
|
1084 |
-
|
1085 |
-
|
1086 |
|
1087 |
<h3 class="nav-tab-wrapper">
|
1088 |
<?php
|
1089 |
-
|
1090 |
|
1091 |
-
|
1092 |
-
|
1093 |
-
printf(
|
1094 |
-
'<a href="%3$s" class="nav-tab %4$s">%1$s</a>',
|
1095 |
-
$one_tab["name"], // 1
|
1096 |
-
$tab_slug, // 2
|
1097 |
-
add_query_arg("selected-tab", $tab_slug, $settings_base_url), // 3
|
1098 |
-
$active_tab == $tab_slug ? "nav-tab-active" : "" // 4
|
1099 |
-
);
|
1100 |
|
1101 |
-
|
1102 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1103 |
</h3>
|
1104 |
|
1105 |
<?php
|
1106 |
-
|
1107 |
-
// Output contents for selected tab
|
1108 |
-
$arr_active_tab = wp_filter_object_list( $arr_settings_tabs, array("slug" => $active_tab));
|
1109 |
-
$arr_active_tab = current($arr_active_tab);
|
1110 |
-
|
1111 |
-
// We must have found an active tab and it must have a callable function
|
1112 |
-
if ( ! $arr_active_tab || ! is_callable( $arr_active_tab["function"] ) ) {
|
1113 |
-
wp_die( __("No valid callback found", "simple-history") );
|
1114 |
-
}
|
1115 |
|
1116 |
-
|
1117 |
-
|
1118 |
-
|
1119 |
|
1120 |
-
|
|
|
|
|
|
|
1121 |
|
1122 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1123 |
|
1124 |
</div>
|
1125 |
<?php
|
1126 |
-
|
1127 |
}
|
1128 |
|
1129 |
public function settings_output_log() {
|
1130 |
-
|
1131 |
-
include
|
1132 |
|
1133 |
}
|
1134 |
|
1135 |
public function settings_output_general() {
|
1136 |
-
|
1137 |
-
include
|
1138 |
|
1139 |
}
|
1140 |
|
1141 |
public function settings_output_styles_example() {
|
1142 |
-
|
1143 |
-
include( __DIR__ . "/templates/settings-style-example.php" );
|
1144 |
|
1145 |
-
|
1146 |
|
|
|
1147 |
|
1148 |
/**
|
1149 |
* Content for section intro. Leave it be, even if empty.
|
1150 |
* Called from add_sections_setting.
|
1151 |
*/
|
1152 |
function settings_section_output() {
|
1153 |
-
|
1154 |
-
}
|
1155 |
|
|
|
1156 |
|
1157 |
/**
|
1158 |
* Add pages (history page and settings page)
|
1159 |
*/
|
1160 |
function add_admin_pages() {
|
1161 |
-
|
1162 |
// Add a history page as a sub-page below the Dashboard menu item
|
1163 |
-
if (
|
1164 |
-
|
1165 |
add_dashboard_page(
|
1166 |
-
|
1167 |
-
|
1168 |
-
|
1169 |
-
|
1170 |
-
|
1171 |
-
|
1172 |
|
1173 |
}
|
1174 |
|
@@ -1179,12 +1308,12 @@ class SimpleHistory {
|
|
1179 |
if ($show_settings_page) {
|
1180 |
|
1181 |
add_options_page(
|
1182 |
-
|
1183 |
-
|
1184 |
-
|
1185 |
-
|
1186 |
-
|
1187 |
-
|
1188 |
|
1189 |
}
|
1190 |
|
@@ -1197,15 +1326,15 @@ class SimpleHistory {
|
|
1197 |
function add_settings() {
|
1198 |
|
1199 |
// Clear the log if clear button was clicked in settings
|
1200 |
-
|
1201 |
-
|
1202 |
$this->clear_log();
|
1203 |
$msg = __("Cleared database", 'simple-history');
|
1204 |
-
add_settings_error(
|
1205 |
set_transient('settings_errors', get_settings_errors(), 30);
|
1206 |
|
1207 |
-
$goback = add_query_arg(
|
1208 |
-
wp_redirect(
|
1209 |
exit;
|
1210 |
|
1211 |
}
|
@@ -1214,10 +1343,10 @@ class SimpleHistory {
|
|
1214 |
// Will contain settings like where to show simple history and number of items
|
1215 |
$settings_section_general_id = self::SETTINGS_SECTION_GENERAL_ID;
|
1216 |
add_settings_section(
|
1217 |
-
$settings_section_general_id,
|
1218 |
-
"", // No title __("General", "simple-history"),
|
1219 |
-
array($this, "settings_section_output"),
|
1220 |
-
SimpleHistory::SETTINGS_MENU_SLUG
|
1221 |
);
|
1222 |
|
1223 |
// Settings for the general settings section
|
@@ -1226,7 +1355,7 @@ class SimpleHistory {
|
|
1226 |
|
1227 |
// Checkboxes for where to show simple history
|
1228 |
add_settings_field(
|
1229 |
-
"simple_history_show_where",
|
1230 |
__("Show history", "simple-history"),
|
1231 |
array($this, "settings_field_where_to_show"),
|
1232 |
SimpleHistory::SETTINGS_MENU_SLUG,
|
@@ -1239,7 +1368,7 @@ class SimpleHistory {
|
|
1239 |
|
1240 |
// Dropdown number if items to show
|
1241 |
add_settings_field(
|
1242 |
-
"simple_history_number_of_items",
|
1243 |
__("Number of items per page", "simple-history"),
|
1244 |
array($this, "settings_field_number_of_items"),
|
1245 |
SimpleHistory::SETTINGS_MENU_SLUG,
|
@@ -1260,7 +1389,6 @@ class SimpleHistory {
|
|
1260 |
|
1261 |
}
|
1262 |
|
1263 |
-
|
1264 |
/**
|
1265 |
* Output for page with the history
|
1266 |
*/
|
@@ -1286,42 +1414,42 @@ class SimpleHistory {
|
|
1286 |
?>
|
1287 |
|
1288 |
<div class="wrap SimpleHistoryWrap">
|
1289 |
-
|
1290 |
<h2 class="SimpleHistoryPageHeadline">
|
1291 |
<div class="dashicons dashicons-backup SimpleHistoryPageHeadline__icon"></div>
|
1292 |
-
<?php echo _x("Simple History", 'history page headline', 'simple-history')
|
1293 |
</h2>
|
1294 |
|
1295 |
<?php
|
1296 |
-
|
1297 |
-
|
1298 |
-
|
1299 |
-
|
1300 |
-
|
1301 |
-
|
1302 |
-
|
1303 |
-
|
1304 |
-
|
1305 |
|
1306 |
<div class="SimpleHistoryGuiWrap">
|
1307 |
|
1308 |
<div class="SimpleHistoryGui"
|
1309 |
-
data-pager-size='<?php echo $pager_size
|
1310 |
></div>
|
1311 |
|
1312 |
<?php
|
1313 |
|
1314 |
-
|
1315 |
-
|
1316 |
-
|
1317 |
-
|
1318 |
-
|
1319 |
-
|
1320 |
-
|
1321 |
-
|
|
|
|
|
1322 |
|
1323 |
-
?>
|
1324 |
-
|
1325 |
</div>
|
1326 |
|
1327 |
</div>
|
@@ -1331,13 +1459,13 @@ class SimpleHistory {
|
|
1331 |
}
|
1332 |
|
1333 |
/**
|
1334 |
-
* Get setting if plugin should be visible on dasboard.
|
1335 |
* Defaults to true
|
1336 |
*
|
1337 |
* @return bool
|
1338 |
*/
|
1339 |
function setting_show_on_dashboard() {
|
1340 |
-
|
1341 |
$show_on_dashboard = get_option("simple_history_show_on_dashboard", 1);
|
1342 |
$show_on_dashboard = apply_filters("simple_history_show_on_dashboard", $show_on_dashboard);
|
1343 |
return (bool) $show_on_dashboard;
|
@@ -1362,21 +1490,21 @@ class SimpleHistory {
|
|
1362 |
* Settings field for how many rows/items to show in log
|
1363 |
*/
|
1364 |
function settings_field_number_of_items() {
|
1365 |
-
|
1366 |
$current_pager_size = $this->get_pager_size();
|
1367 |
|
1368 |
?>
|
1369 |
<select name="simple_history_pager_size">
|
1370 |
-
<option <?php echo $current_pager_size == 5 ? "selected" : ""
|
1371 |
-
<option <?php echo $current_pager_size == 10 ? "selected" : ""
|
1372 |
-
<option <?php echo $current_pager_size == 15 ? "selected" : ""
|
1373 |
-
<option <?php echo $current_pager_size == 20 ? "selected" : ""
|
1374 |
-
<option <?php echo $current_pager_size == 25 ? "selected" : ""
|
1375 |
-
<option <?php echo $current_pager_size == 30 ? "selected" : ""
|
1376 |
-
<option <?php echo $current_pager_size == 40 ? "selected" : ""
|
1377 |
-
<option <?php echo $current_pager_size == 50 ? "selected" : ""
|
1378 |
-
<option <?php echo $current_pager_size == 75 ? "selected" : ""
|
1379 |
-
<option <?php echo $current_pager_size == 100 ? "selected" : ""
|
1380 |
</select>
|
1381 |
<?php
|
1382 |
|
@@ -1390,32 +1518,32 @@ class SimpleHistory {
|
|
1390 |
$show_on_dashboard = $this->setting_show_on_dashboard();
|
1391 |
$show_as_page = $this->setting_show_as_page();
|
1392 |
?>
|
1393 |
-
|
1394 |
-
<input <?php echo $show_on_dashboard ? "checked='checked'" : ""
|
1395 |
-
<label for="simple_history_show_on_dashboard"><?php _e("on the dashboard", 'simple-history')
|
1396 |
|
1397 |
<br />
|
1398 |
-
|
1399 |
-
<input <?php echo $show_as_page ? "checked='checked'" : ""
|
1400 |
-
<label for="simple_history_show_as_page"><?php _e("as a page under the dashboard menu", 'simple-history')
|
1401 |
-
|
1402 |
<?php
|
1403 |
-
|
1404 |
|
1405 |
/**
|
1406 |
* Settings section to clear database
|
1407 |
*/
|
1408 |
function settings_field_clear_log() {
|
1409 |
-
|
1410 |
$clear_link = add_query_arg("", "");
|
1411 |
-
$clear_link = wp_nonce_url(
|
1412 |
$clear_days = $this->get_clear_history_interval();
|
1413 |
|
1414 |
echo "<p>";
|
1415 |
-
if (
|
1416 |
-
echo sprintf(
|
1417 |
} else {
|
1418 |
-
_e(
|
1419 |
}
|
1420 |
echo "</p>";
|
1421 |
|
@@ -1423,7 +1551,7 @@ class SimpleHistory {
|
|
1423 |
}
|
1424 |
|
1425 |
/**
|
1426 |
-
* How old log entried are allowed to be.
|
1427 |
* 0 = don't delete old entries.
|
1428 |
*
|
1429 |
* @return int Number of days.
|
@@ -1445,29 +1573,73 @@ class SimpleHistory {
|
|
1445 |
function clear_log() {
|
1446 |
|
1447 |
global $wpdb;
|
1448 |
-
|
1449 |
$tableprefix = $wpdb->prefix;
|
|
|
1450 |
$simple_history_table = SimpleHistory::DBTABLE;
|
1451 |
$simple_history_context_table = SimpleHistory::DBTABLE_CONTEXTS;
|
1452 |
-
|
|
|
|
|
|
|
|
|
1453 |
$sql = "DELETE FROM {$tableprefix}{$simple_history_table}";
|
1454 |
$wpdb->query($sql);
|
1455 |
|
1456 |
$sql = "DELETE FROM {$tableprefix}{$simple_history_context_table}";
|
1457 |
$wpdb->query($sql);
|
1458 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1459 |
}
|
1460 |
|
1461 |
/**
|
1462 |
* Removes old entries from the db
|
1463 |
-
* @TODO this function does not remove old entries from context table
|
1464 |
*/
|
1465 |
function purge_db() {
|
1466 |
|
|
|
|
|
1467 |
$do_purge_history = true;
|
|
|
1468 |
$do_purge_history = apply_filters("simple_history_allow_db_purge", $do_purge_history);
|
1469 |
$do_purge_history = apply_filters("simple_history/allow_db_purge", $do_purge_history);
|
1470 |
-
|
|
|
1471 |
return;
|
1472 |
}
|
1473 |
|
@@ -1479,12 +1651,50 @@ class SimpleHistory {
|
|
1479 |
}
|
1480 |
|
1481 |
global $wpdb;
|
1482 |
-
$tableprefix = $wpdb->prefix;
|
1483 |
-
$simple_history_table = SimpleHistory::DBTABLE;
|
1484 |
|
1485 |
-
$
|
|
|
1486 |
|
1487 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1488 |
|
1489 |
}
|
1490 |
|
@@ -1493,28 +1703,28 @@ class SimpleHistory {
|
|
1493 |
* Uses the getLogRowPlainTextOutput of the logger that logged the row
|
1494 |
* with fallback to SimpleLogger if logger is not available
|
1495 |
*
|
1496 |
-
* @param array $row
|
1497 |
* @return string
|
1498 |
*/
|
1499 |
public function getLogRowPlainTextOutput($row) {
|
1500 |
-
|
1501 |
$row_logger = $row->logger;
|
1502 |
$logger = null;
|
1503 |
-
$row->context = isset(
|
1504 |
|
1505 |
-
if (
|
1506 |
$row->context["_message_key"] = null;
|
1507 |
}
|
1508 |
-
|
1509 |
// Fallback to SimpleLogger if no logger exists for row
|
1510 |
-
if (
|
1511 |
$row_logger = "SimpleLogger";
|
1512 |
}
|
1513 |
|
1514 |
-
$logger = $this->instantiatedLoggers[
|
|
|
|
|
1515 |
|
1516 |
-
return $logger->getLogRowPlainTextOutput( $row );
|
1517 |
-
|
1518 |
}
|
1519 |
|
1520 |
/**
|
@@ -1522,9 +1732,9 @@ class SimpleHistory {
|
|
1522 |
* Uses the getLogRowHeaderOutput of the logger that logged the row
|
1523 |
* with fallback to SimpleLogger if logger is not available
|
1524 |
*
|
1525 |
-
* Loggers are discouraged to override this in the loggers,
|
1526 |
* because the output should be the same for all items in the gui
|
1527 |
-
*
|
1528 |
* @param array $row
|
1529 |
* @return string
|
1530 |
*/
|
@@ -1532,22 +1742,22 @@ class SimpleHistory {
|
|
1532 |
|
1533 |
$row_logger = $row->logger;
|
1534 |
$logger = null;
|
1535 |
-
$row->context = isset(
|
1536 |
-
|
1537 |
// Fallback to SimpleLogger if no logger exists for row
|
1538 |
-
if (
|
1539 |
$row_logger = "SimpleLogger";
|
1540 |
}
|
1541 |
|
1542 |
-
$logger = $this->instantiatedLoggers[$row_logger]["instance"];
|
1543 |
|
1544 |
-
return $logger->getLogRowHeaderOutput(
|
1545 |
|
1546 |
}
|
1547 |
|
1548 |
/**
|
1549 |
-
*
|
1550 |
-
*
|
1551 |
* @param array $row
|
1552 |
* @return string
|
1553 |
*/
|
@@ -1555,16 +1765,16 @@ class SimpleHistory {
|
|
1555 |
|
1556 |
$row_logger = $row->logger;
|
1557 |
$logger = null;
|
1558 |
-
$row->context = isset(
|
1559 |
-
|
1560 |
// Fallback to SimpleLogger if no logger exists for row
|
1561 |
-
if (
|
1562 |
$row_logger = "SimpleLogger";
|
1563 |
}
|
1564 |
|
1565 |
-
$logger = $this->instantiatedLoggers[$row_logger]["instance"];
|
1566 |
|
1567 |
-
return $logger->getLogRowSenderImageOutput(
|
1568 |
|
1569 |
}
|
1570 |
|
@@ -1572,28 +1782,28 @@ class SimpleHistory {
|
|
1572 |
|
1573 |
$row_logger = $row->logger;
|
1574 |
$logger = null;
|
1575 |
-
$row->context = isset(
|
1576 |
-
|
1577 |
// Fallback to SimpleLogger if no logger exists for row
|
1578 |
-
if (
|
1579 |
$row_logger = "SimpleLogger";
|
1580 |
}
|
1581 |
|
1582 |
-
$logger = $this->instantiatedLoggers[$row_logger]["instance"];
|
1583 |
|
1584 |
-
return $logger->getLogRowDetailsOutput(
|
1585 |
|
1586 |
}
|
1587 |
|
1588 |
/**
|
1589 |
* Works like json_encode, but adds JSON_PRETTY_PRINT if the current php version supports it
|
1590 |
* i.e. PHP is 5.4.0 or greated
|
1591 |
-
*
|
1592 |
* @param $value array|object|string|whatever that is json_encode'able
|
1593 |
*/
|
1594 |
public static function json_encode($value) {
|
1595 |
-
|
1596 |
-
return version_compare(PHP_VERSION, '5.4.0') >=0 ? json_encode($value, JSON_PRETTY_PRINT) : json_encode($value);
|
1597 |
|
1598 |
}
|
1599 |
|
@@ -1602,8 +1812,8 @@ class SimpleHistory {
|
|
1602 |
* @param string $haystack
|
1603 |
* @param string $needle
|
1604 |
*/
|
1605 |
-
public static function ends_with(
|
1606 |
-
return $needle === substr(
|
1607 |
}
|
1608 |
|
1609 |
/**
|
@@ -1615,17 +1825,17 @@ class SimpleHistory {
|
|
1615 |
public function getLogRowHTMLOutput($oneLogRow, $args) {
|
1616 |
|
1617 |
$defaults = array(
|
1618 |
-
"type" => "overview" // or "single" to include more stuff
|
1619 |
);
|
1620 |
|
1621 |
-
$args = wp_parse_args(
|
1622 |
|
1623 |
-
$header_html = $this->getLogRowHeaderOutput($oneLogRow);
|
1624 |
$plain_text_html = $this->getLogRowPlainTextOutput($oneLogRow);
|
1625 |
$sender_image_html = $this->getLogRowSenderImageOutput($oneLogRow);
|
1626 |
-
|
1627 |
// Details = for example thumbnail of media
|
1628 |
-
$details_html = trim(
|
1629 |
if ($details_html) {
|
1630 |
|
1631 |
$details_html = sprintf(
|
@@ -1638,13 +1848,14 @@ class SimpleHistory {
|
|
1638 |
// subsequentOccasions = including the current one
|
1639 |
$occasions_count = $oneLogRow->subsequentOccasions - 1;
|
1640 |
$occasions_html = "";
|
|
|
1641 |
if ($occasions_count > 0) {
|
1642 |
|
1643 |
$occasions_html = '<div class="SimpleHistoryLogitem__occasions">';
|
1644 |
-
|
1645 |
$occasions_html .= '<a href="#" class="SimpleHistoryLogitem__occasionsLink">';
|
1646 |
$occasions_html .= sprintf(
|
1647 |
-
|
1648 |
$occasions_count
|
1649 |
);
|
1650 |
$occasions_html .= '</a>';
|
@@ -1662,23 +1873,23 @@ class SimpleHistory {
|
|
1662 |
$occasions_count
|
1663 |
);
|
1664 |
$occasions_html .= '</span>';
|
1665 |
-
|
1666 |
$occasions_html .= '</div>';
|
1667 |
|
1668 |
}
|
1669 |
|
1670 |
$data_attrs = "";
|
1671 |
-
$data_attrs .= sprintf(' data-row-id="%1$d" ', $oneLogRow->id
|
1672 |
-
$data_attrs .= sprintf(' data-occasions-count="%1$d" ', $occasions_count
|
1673 |
-
$data_attrs .= sprintf(' data-occasions-id="%1$s" ', $oneLogRow->occasionsID
|
1674 |
-
$data_attrs .= sprintf(' data-ip-address="%1$s" ', esc_attr(
|
1675 |
|
1676 |
// If type is single then include more details
|
1677 |
$more_details_html = "";
|
1678 |
-
if (
|
1679 |
|
1680 |
$more_details_html .= sprintf('<h2 class="SimpleHistoryLogitem__moreDetailsHeadline">%1$s</h2>', __("Context data", "simple-history"));
|
1681 |
-
$more_details_html .= "<p>" . __("This is potentially useful meta data that a logger
|
1682 |
$more_details_html .= "<table class='SimpleHistoryLogitem__moreDetailsContext'>";
|
1683 |
$more_details_html .= sprintf(
|
1684 |
'<tr>
|
@@ -1692,7 +1903,7 @@ class SimpleHistory {
|
|
1692 |
foreach ($oneLogRow as $rowKey => $rowVal) {
|
1693 |
|
1694 |
// skip arrays and objects and such
|
1695 |
-
if (
|
1696 |
continue;
|
1697 |
}
|
1698 |
|
@@ -1701,8 +1912,8 @@ class SimpleHistory {
|
|
1701 |
<td>%1$s</td>
|
1702 |
<td>%2$s</td>
|
1703 |
</tr>',
|
1704 |
-
esc_html(
|
1705 |
-
esc_html(
|
1706 |
);
|
1707 |
|
1708 |
}
|
@@ -1714,8 +1925,8 @@ class SimpleHistory {
|
|
1714 |
<td>%1$s</td>
|
1715 |
<td>%2$s</td>
|
1716 |
</tr>',
|
1717 |
-
esc_html(
|
1718 |
-
esc_html(
|
1719 |
);
|
1720 |
|
1721 |
}
|
@@ -1729,28 +1940,39 @@ class SimpleHistory {
|
|
1729 |
|
1730 |
}
|
1731 |
|
1732 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1733 |
if (isset($oneLogRow->initiator) && !empty($oneLogRow->initiator)) {
|
1734 |
-
$
|
1735 |
}
|
1736 |
|
1737 |
-
/*$level_html = sprintf(
|
1738 |
-
'<span class="SimpleHistoryLogitem--logleveltag SimpleHistoryLogitem--logleveltag-%1$s">%1$s</span>',
|
1739 |
-
$row->level
|
1740 |
-
);*/
|
1741 |
-
|
1742 |
// Always append the log level tag
|
1743 |
$log_level_tag_html = sprintf(
|
1744 |
-
' <span class="SimpleHistoryLogitem--logleveltag SimpleHistoryLogitem--logleveltag-%1$s">%
|
1745 |
-
$oneLogRow->level
|
|
|
1746 |
);
|
1747 |
|
1748 |
$plain_text_html .= $log_level_tag_html;
|
1749 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1750 |
// Generate the HTML output for a row
|
1751 |
$output = sprintf(
|
1752 |
'
|
1753 |
-
<li %8$s class="
|
1754 |
<div class="SimpleHistoryLogitem__firstcol">
|
1755 |
<div class="SimpleHistoryLogitem__senderImage">%3$s</div>
|
1756 |
</div>
|
@@ -1772,11 +1994,11 @@ class SimpleHistory {
|
|
1772 |
$oneLogRow->logger, // 7
|
1773 |
$data_attrs, // 8 data attributes
|
1774 |
$more_details_html, // 9
|
1775 |
-
$
|
1776 |
);
|
1777 |
|
1778 |
// Get the main message row.
|
1779 |
-
// Should be as plain as possible, like plain text
|
1780 |
// but with links to for example users and posts
|
1781 |
#SimpleLoggerFormatter::getRowTextOutput($oneLogRow);
|
1782 |
|
@@ -1788,6 +2010,94 @@ class SimpleHistory {
|
|
1788 |
|
1789 |
}
|
1790 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1791 |
public function getInstantiatedLoggers() {
|
1792 |
|
1793 |
return $this->instantiatedLoggers;
|
@@ -1795,14 +2105,14 @@ class SimpleHistory {
|
|
1795 |
}
|
1796 |
|
1797 |
public function getInstantiatedLoggerBySlug($slug = "") {
|
1798 |
-
|
1799 |
-
if (empty(
|
1800 |
return false;
|
1801 |
}
|
1802 |
-
|
1803 |
foreach ($this->getInstantiatedLoggers() as $one_logger) {
|
1804 |
-
|
1805 |
-
if (
|
1806 |
return $one_logger["instance"];
|
1807 |
}
|
1808 |
|
@@ -1824,7 +2134,7 @@ class SimpleHistory {
|
|
1824 |
|
1825 |
$arr_loggers_user_can_view = array();
|
1826 |
|
1827 |
-
if (
|
1828 |
$user_id = get_current_user_id();
|
1829 |
}
|
1830 |
|
@@ -1834,39 +2144,39 @@ class SimpleHistory {
|
|
1834 |
$logger_capability = $one_logger["instance"]->getCapability();
|
1835 |
|
1836 |
//$arr_loggers_user_can_view = apply_filters("simple_history/loggers_user_can_read", $user_id, $arr_loggers_user_can_view);
|
1837 |
-
$user_can_read_logger = user_can(
|
1838 |
$user_can_read_logger = apply_filters("simple_history/loggers_user_can_read/can_read_single_logger", $user_can_read_logger, $one_logger["instance"], $user_id);
|
1839 |
|
1840 |
-
if (
|
1841 |
$arr_loggers_user_can_view[] = $one_logger;
|
1842 |
}
|
1843 |
|
1844 |
}
|
1845 |
|
1846 |
/**
|
1847 |
-
|
1848 |
-
|
1849 |
-
|
1850 |
-
|
1851 |
-
|
1852 |
-
|
1853 |
-
|
1854 |
$arr_loggers_user_can_view = apply_filters("simple_history/loggers_user_can_read", $arr_loggers_user_can_view, $user_id);
|
1855 |
|
1856 |
// just return array with slugs in parenthesis suitable for sql-where
|
1857 |
-
if (
|
1858 |
|
1859 |
$str_return = "(";
|
1860 |
-
|
1861 |
foreach ($arr_loggers_user_can_view as $one_logger) {
|
1862 |
-
|
1863 |
$str_return .= sprintf(
|
1864 |
'"%1$s", ',
|
1865 |
$one_logger["instance"]->slug
|
1866 |
);
|
1867 |
|
1868 |
}
|
1869 |
-
|
1870 |
$str_return = rtrim($str_return, " ,");
|
1871 |
$str_return .= ")";
|
1872 |
|
@@ -1874,14 +2184,13 @@ class SimpleHistory {
|
|
1874 |
|
1875 |
}
|
1876 |
|
1877 |
-
|
1878 |
return $arr_loggers_user_can_view;
|
1879 |
|
1880 |
}
|
1881 |
|
1882 |
/**
|
1883 |
* Retrieve the avatar for a user who provided a user ID or email address.
|
1884 |
-
* A modified version of the function that comes with WordPress, but we
|
1885 |
* want to allow/show gravatars even if they are disabled in discussion settings
|
1886 |
*
|
1887 |
* @since 2.0
|
@@ -1891,68 +2200,107 @@ class SimpleHistory {
|
|
1891 |
* @param string $default URL to a default image to use if no avatar is available
|
1892 |
* @param string $alt Alternative text to use in image tag. Defaults to blank
|
1893 |
* @return string <img> tag for the user's avatar
|
1894 |
-
|
1895 |
-
function get_avatar(
|
1896 |
-
|
1897 |
-
if ( false === $alt)
|
1898 |
-
$safe_alt = '';
|
1899 |
-
else
|
1900 |
-
$safe_alt = esc_attr( $alt );
|
1901 |
-
|
1902 |
-
if ( !is_numeric($size) )
|
1903 |
-
$size = '96';
|
1904 |
-
|
1905 |
-
if ( empty($default) ) {
|
1906 |
-
$avatar_default = get_option('avatar_default');
|
1907 |
-
if ( empty($avatar_default) )
|
1908 |
-
$default = 'mystery';
|
1909 |
-
else
|
1910 |
-
$default = $avatar_default;
|
1911 |
-
}
|
1912 |
|
1913 |
-
|
1914 |
-
|
1915 |
|
1916 |
-
|
1917 |
-
|
1918 |
-
|
1919 |
-
if ( !empty($email) )
|
1920 |
-
$host = sprintf( "http://%d.gravatar.com", ( hexdec( $email_hash[0] ) % 2 ) );
|
1921 |
-
else
|
1922 |
-
$host = 'http://0.gravatar.com';
|
1923 |
-
}
|
1924 |
|
1925 |
-
if ( 'mystery' == $default )
|
1926 |
-
$default = "$host/avatar/ad516503a11cd5ca435acc9bb6523536?s={$size}"; // ad516503a11cd5ca435acc9bb6523536 == md5('unknown@gravatar.com')
|
1927 |
-
elseif ( 'blank' == $default )
|
1928 |
-
$default = $email ? 'blank' : includes_url( 'images/blank.gif' );
|
1929 |
-
elseif ( !empty($email) && 'gravatar_default' == $default )
|
1930 |
-
$default = '';
|
1931 |
-
elseif ( 'gravatar_default' == $default )
|
1932 |
-
$default = "$host/avatar/?s={$size}";
|
1933 |
-
elseif ( empty($email) )
|
1934 |
-
$default = "$host/avatar/?d=$default&s={$size}";
|
1935 |
-
elseif ( strpos($default, 'http://') === 0 )
|
1936 |
-
$default = add_query_arg( 's', $size, $default );
|
1937 |
-
|
1938 |
-
if ( !empty($email) ) {
|
1939 |
-
$out = "$host/avatar/";
|
1940 |
-
$out .= $email_hash;
|
1941 |
-
$out .= '?s='.$size;
|
1942 |
-
$out .= '&d=' . urlencode( $default );
|
1943 |
-
|
1944 |
-
$rating = get_option('avatar_rating');
|
1945 |
-
if ( !empty( $rating ) )
|
1946 |
-
$out .= "&r={$rating}";
|
1947 |
-
|
1948 |
-
$out = str_replace( '&', '&', esc_url( $out ) );
|
1949 |
-
$avatar = "<img alt='{$safe_alt}' src='{$out}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
|
1950 |
} else {
|
1951 |
-
$out = esc_url( $default );
|
1952 |
-
$avatar = "<img alt='{$safe_alt}' src='{$out}' class='avatar avatar-{$size} photo avatar-default' height='{$size}' width='{$size}' />";
|
1953 |
-
}
|
1954 |
|
1955 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1956 |
}
|
1957 |
|
1958 |
/**
|
@@ -1960,59 +2308,170 @@ class SimpleHistory {
|
|
1960 |
* Uses filter "simple_history/history_page/before_gui" to output its contents
|
1961 |
*/
|
1962 |
public function output_quick_stats() {
|
1963 |
-
|
1964 |
global $wpdb;
|
1965 |
|
1966 |
// Get number of events today
|
1967 |
$logQuery = new SimpleHistoryLogQuery();
|
1968 |
$logResults = $logQuery->query(array(
|
1969 |
"posts_per_page" => 1,
|
1970 |
-
"date_from" => strtotime("today")
|
1971 |
));
|
1972 |
|
|
|
|
|
|
|
1973 |
$sql_loggers_in = $this->getLoggersThatUserCanRead(get_current_user_id(), "sql");
|
|
|
|
|
1974 |
$sql_users_today = sprintf('
|
1975 |
-
SELECT
|
1976 |
DISTINCT(c.value) AS user_id
|
1977 |
#h.id, h.logger, h.level, h.initiator, h.date
|
1978 |
FROM %3$s AS h
|
1979 |
-
INNER JOIN %4$s AS c
|
1980 |
ON c.history_id = h.id AND c.key = "_user_id"
|
1981 |
-
WHERE
|
1982 |
initiator = "wp_user"
|
1983 |
AND logger IN %1$s
|
1984 |
AND date > "%2$s"
|
1985 |
-
',
|
1986 |
$sql_loggers_in,
|
1987 |
date("Y-m-d H:i", strtotime("today")),
|
1988 |
$wpdb->prefix . SimpleHistory::DBTABLE,
|
1989 |
$wpdb->prefix . SimpleHistory::DBTABLE_CONTEXTS
|
1990 |
);
|
1991 |
|
1992 |
-
$
|
1993 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1994 |
?>
|
1995 |
<div class="SimpleHistoryQuickStats">
|
1996 |
<p>
|
1997 |
<?php
|
1998 |
-
|
1999 |
$msg_tmpl = "";
|
2000 |
|
2001 |
-
|
2002 |
-
|
|
|
2003 |
$msg_tmpl = __("No events today so far.", "simple-history");
|
2004 |
|
2005 |
-
}
|
2006 |
|
2007 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008 |
|
2009 |
-
|
|
|
|
|
|
|
|
|
2010 |
|
2011 |
-
|
|
|
|
|
|
|
|
|
2012 |
|
2013 |
-
|
2014 |
-
|
2015 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016 |
|
2017 |
}
|
2018 |
|
@@ -2021,29 +2480,89 @@ class SimpleHistory {
|
|
2021 |
|
2022 |
printf(
|
2023 |
$msg_tmpl,
|
2024 |
-
$logResults["total_row_count"],
|
2025 |
-
|
|
|
2026 |
);
|
2027 |
|
2028 |
// Space between texts
|
2029 |
/*
|
2030 |
-
|
2031 |
|
2032 |
-
|
2033 |
-
|
2034 |
-
|
2035 |
-
|
2036 |
-
|
2037 |
-
|
2038 |
|
2039 |
}
|
2040 |
-
|
2041 |
?>
|
2042 |
</p>
|
2043 |
-
</div>
|
2044 |
<?php
|
2045 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2046 |
}
|
2047 |
|
2048 |
} // class
|
2049 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
/**
|
4 |
* Main class for Simple History
|
5 |
+
*/
|
6 |
class SimpleHistory {
|
7 |
|
8 |
const NAME = "Simple History";
|
9 |
+
const VERSION = "2.0.22";
|
10 |
+
|
11 |
+
/**
|
12 |
+
* For singleton
|
13 |
+
*/
|
14 |
+
private static $instance;
|
15 |
|
16 |
/**
|
17 |
* Capability required to view the history log
|
18 |
*/
|
19 |
private $view_history_capability;
|
20 |
+
|
21 |
/**
|
22 |
* Capability required to view and edit the settings page
|
23 |
*/
|
46 |
*/
|
47 |
private $doFilterGettext_currentLogger = null;
|
48 |
|
49 |
+
/**
|
50 |
+
* Used to store latest translations used by __()
|
51 |
+
* Required to automagically determine orginal text and text domain
|
52 |
+
* for calls like this `SimpleLogger()->log( __("My translated message") );`
|
53 |
+
*/
|
54 |
+
public $gettextLatestTranslations = array();
|
55 |
+
|
56 |
/**
|
57 |
* All registered settings tabs
|
58 |
*/
|
70 |
function __construct() {
|
71 |
|
72 |
/**
|
73 |
+
* Fires before Simple History does it's init stuff
|
74 |
+
*
|
75 |
+
* @since 2.0
|
76 |
+
*
|
77 |
+
* @param SimpleHistory $SimpleHistory This class.
|
78 |
+
*/
|
79 |
+
do_action("simple_history/before_init", $this);
|
80 |
|
81 |
$this->setupVariables();
|
82 |
|
83 |
// Actions and filters, ordered by order specified in codex: http://codex.wordpress.org/Plugin_API/Action_Reference
|
84 |
+
add_action('plugins_loaded', array($this, 'load_plugin_textdomain'));
|
85 |
+
add_action('plugins_loaded', array($this, 'add_default_settings_tabs'));
|
86 |
+
add_action('plugins_loaded', array($this, 'loadLoggers'));
|
87 |
+
add_action('plugins_loaded', array($this, 'loadDropins'));
|
88 |
|
89 |
// Run before loading of loggers and before menu items are added
|
90 |
+
add_action('plugins_loaded', array($this, 'check_for_upgrade'), 5);
|
91 |
|
92 |
+
add_action('plugins_loaded', array($this, 'setup_cron'));
|
|
|
93 |
|
94 |
+
add_action('admin_menu', array($this, 'add_admin_pages'));
|
95 |
+
add_action('admin_menu', array($this, 'add_settings'));
|
|
|
96 |
|
97 |
+
add_action('admin_footer', array($this, "add_js_templates"));
|
98 |
|
99 |
+
add_action('wp_dashboard_setup', array($this, 'add_dashboard_widget'));
|
100 |
+
|
101 |
+
add_action('admin_enqueue_scripts', array($this, 'enqueue_admin_scripts'));
|
102 |
+
|
103 |
+
add_action('admin_head', array($this, "onAdminHead"));
|
104 |
+
add_action('admin_footer', array($this, "onAdminFooter"));
|
105 |
|
106 |
// Filters and actions not called during regular boot
|
107 |
add_filter("gettext", array($this, 'filter_gettext'), 20, 3);
|
108 |
add_filter("gettext_with_context", array($this, 'filter_gettext_with_context'), 20, 4);
|
109 |
|
110 |
+
add_filter('gettext', array( $this, "filter_gettext_storeLatestTranslations" ), 10, 3 );
|
|
|
111 |
|
112 |
+
add_action('simple_history/history_page/before_gui', array($this, "output_quick_stats"));
|
113 |
+
add_action('simple_history/dashboard/before_gui', array($this, "output_quick_stats"));
|
114 |
|
115 |
+
add_action('wp_ajax_simple_history_api', array($this, 'api'));
|
116 |
+
|
117 |
+
add_filter('plugin_action_links_simple-history/index.php', array($this, 'plugin_action_links'), 10, 4);
|
118 |
|
119 |
/**
|
120 |
+
* Fires after Simple History has done it's init stuff
|
121 |
+
*
|
122 |
+
* @since 2.0
|
123 |
+
*
|
124 |
+
* @param SimpleHistory $SimpleHistory This class.
|
125 |
+
*/
|
126 |
+
do_action("simple_history/after_init", $this);
|
127 |
+
|
128 |
+
// Add some extra info to each logged context when SIMPLE_HISTORY_LOG_DEBUG is set and true
|
129 |
+
if ( defined("SIMPLE_HISTORY_LOG_DEBUG") && SIMPLE_HISTORY_LOG_DEBUG ) {
|
130 |
+
|
131 |
+
add_filter("simple_history/log_argument/context", function($context, $level, $message, $logger) {
|
132 |
+
|
133 |
+
$sh = SimpleHistory::get_instance();
|
134 |
+
$context["_debug_get"] = $sh->json_encode( $_GET );
|
135 |
+
$context["_debug_post"] = $sh->json_encode( $_POST );
|
136 |
+
$context["_debug_server"] = $sh->json_encode( $_SERVER );
|
137 |
+
$context["_debug_php_sapi_name"] = php_sapi_name();
|
138 |
+
|
139 |
+
global $argv;
|
140 |
+
$context["_debug_argv"] = $sh->json_encode( $argv );
|
141 |
+
|
142 |
+
$consts = get_defined_constants(true);
|
143 |
+
$consts = $consts["user"];
|
144 |
+
$context["_debug_user_constants"] = $sh->json_encode( $consts );
|
145 |
+
|
146 |
+
$postdata = file_get_contents("php://input");
|
147 |
+
$context["_debug_http_raw_post_data"] = $sh->json_encode( $postdata );
|
148 |
+
|
149 |
+
return $context;
|
150 |
+
|
151 |
+
}, 10, 4);
|
152 |
+
|
153 |
+
}
|
154 |
+
|
155 |
+
}
|
156 |
+
|
157 |
+
/**
|
158 |
+
* Get singleton intance
|
159 |
+
* @return SimpleHistory instance
|
160 |
+
*/
|
161 |
+
public static function get_instance() {
|
162 |
+
|
163 |
+
if ( ! isset( self::$instance ) ) {
|
164 |
+
|
165 |
+
self::$instance = new SimpleHistory();
|
166 |
+
|
167 |
+
}
|
168 |
+
|
169 |
+
return self::$instance;
|
170 |
+
|
171 |
+
}
|
172 |
+
|
173 |
+
function filter_gettext_storeLatestTranslations($translation, $text, $domain) {
|
174 |
+
|
175 |
+
$array_max_size = 5;
|
176 |
+
|
177 |
+
// Keep a listing of the n latest translation
|
178 |
+
// when SimpleLogger->log() is called from anywhere we can then search for the
|
179 |
+
// translated string among our n latest things and find it there, if it's translated
|
180 |
+
//global $sh_latest_translations;
|
181 |
+
$sh_latest_translations = $this->gettextLatestTranslations;
|
182 |
+
|
183 |
+
$sh_latest_translations[$translation] = array(
|
184 |
+
"translation" => $translation,
|
185 |
+
"text" => $text,
|
186 |
+
"domain" => $domain,
|
187 |
+
);
|
188 |
+
|
189 |
+
$arr_length = sizeof($sh_latest_translations);
|
190 |
+
if ($arr_length > $array_max_size) {
|
191 |
+
$sh_latest_translations = array_slice($sh_latest_translations, $arr_length - $array_max_size);
|
192 |
+
}
|
193 |
|
194 |
+
$this->gettextLatestTranslations = $sh_latest_translations;
|
195 |
|
196 |
+
return $translation;
|
197 |
+
|
198 |
+
}
|
199 |
+
|
200 |
+
function setup_cron() {
|
201 |
+
|
202 |
+
add_filter("simple_history/maybe_purge_db", array( $this, "maybe_purge_db") );
|
203 |
+
|
204 |
+
if ( ! wp_next_scheduled('simple_history/maybe_purge_db') ) {
|
205 |
+
wp_schedule_event(time(), 'daily', 'simple_history/maybe_purge_db');
|
206 |
+
#error_log("not scheduled, so do schedule");
|
207 |
+
} else {
|
208 |
+
#error_log("is scheduled");
|
209 |
+
}
|
210 |
+
|
211 |
+
// Remove old schedule (only author dev sites should have it)
|
212 |
+
$old_next_scheduled = wp_next_scheduled('simple_history/purge_db');
|
213 |
+
if ( $old_next_scheduled ) {
|
214 |
+
wp_unschedule_event($old_next_scheduled, 'simple_history/purge_db');
|
215 |
+
}
|
216 |
|
217 |
}
|
218 |
|
220 |
|
221 |
# Log that an email has been sent
|
222 |
simple_history_add(array(
|
223 |
+
"object_type" => "Email",
|
224 |
+
"object_name" => "Hi there",
|
225 |
+
"action" => "was sent",
|
226 |
));
|
227 |
|
228 |
# Will show “Plugin your_plugin_name Edited” in the history log
|
233 |
|
234 |
# Log with some extra details about the email
|
235 |
simple_history_add(array(
|
236 |
+
"object_type" => "Email",
|
237 |
+
"object_name" => "Hi there",
|
238 |
+
"action" => "was sent",
|
239 |
+
"description" => "The database query to generate the email took .3 seconds. This is email number 4 that is sent to this user",
|
240 |
));
|
241 |
|
|
|
242 |
}
|
243 |
|
244 |
public function onAdminHead() {
|
245 |
|
246 |
+
if ($this->is_on_our_own_pages()) {
|
247 |
+
|
248 |
+
do_action("simple_history/admin_head", $this);
|
249 |
+
|
250 |
+
}
|
251 |
+
|
252 |
+
}
|
253 |
+
|
254 |
+
public function onAdminFooter() {
|
255 |
+
|
256 |
+
if ($this->is_on_our_own_pages()) {
|
257 |
+
|
258 |
+
do_action("simple_history/admin_footer", $this);
|
259 |
|
260 |
}
|
261 |
|
265 |
* Output JS templated into footer
|
266 |
*/
|
267 |
public function add_js_templates($hook) {
|
268 |
+
|
269 |
+
if ($this->is_on_our_own_pages()) {
|
270 |
|
271 |
?>
|
272 |
+
|
273 |
<script type="text/html" id="tmpl-simple-history-base">
|
274 |
|
275 |
<div class="SimpleHistory__waitingForFirstLoad">
|
276 |
<img src="<?php echo admin_url("/images/spinner.gif");?>" alt="" width="20" height="20">
|
277 |
+
<?php echo _x("Loading history...", "Message visible while waiting for log to load from server the first time", "simple-history")?>
|
278 |
</div>
|
279 |
|
280 |
<div class="SimpleHistoryLogitemsWrap">
|
291 |
</script>
|
292 |
|
293 |
<script type="text/html" id="tmpl-simple-history-logitems-pagination">
|
294 |
+
|
295 |
<!-- this uses the (almost) the same html as WP does -->
|
296 |
<div class="SimpleHistoryPaginationPages">
|
297 |
+
<!--
|
298 |
+
{{ data.page_rows_from }}–{{ data.page_rows_to }}
|
299 |
+
<span class="SimpleHistoryPaginationDisplayNum"> of {{ data.total_row_count }} </span>
|
300 |
-->
|
301 |
<span class="SimpleHistoryPaginationLinks">
|
302 |
+
<a
|
303 |
+
data-direction="first"
|
304 |
+
class="button SimpleHistoryPaginationLink SimpleHistoryPaginationLink--firstPage <# if ( data.api_args.paged <= 1 ) { #> disabled <# } #>"
|
305 |
+
title="{{ data.strings.goToTheFirstPage }}"
|
306 |
href="#">«</a>
|
307 |
+
<a
|
308 |
+
data-direction="prev"
|
309 |
+
class="button SimpleHistoryPaginationLink SimpleHistoryPaginationLink--prevPage <# if ( data.api_args.paged <= 1 ) { #> disabled <# } #>"
|
310 |
+
title="{{ data.strings.goToThePrevPage }}"
|
311 |
href="#">‹</a>
|
312 |
<span class="SimpleHistoryPaginationInput">
|
313 |
+
<input class="SimpleHistoryPaginationCurrentPage" title="{{ data.strings.currentPage }}" type="text" name="paged" value="{{ data.api_args.paged }}" size="4">
|
314 |
+
<?php _x("of", "page n of n", "simple-history")?>
|
315 |
+
<span class="total-pages">{{ data.pages_count }}</span>
|
316 |
</span>
|
317 |
+
<a
|
318 |
+
data-direction="next"
|
319 |
+
class="button SimpleHistoryPaginationLink SimpleHistoryPaginationLink--nextPage <# if ( data.api_args.paged >= data.pages_count ) { #> disabled <# } #>"
|
320 |
+
title="{{ data.strings.goToTheNextPage }}"
|
321 |
href="#">›</a>
|
322 |
+
<a
|
323 |
+
data-direction="last"
|
324 |
+
class="button SimpleHistoryPaginationLink SimpleHistoryPaginationLink--lastPage <# if ( data.api_args.paged >= data.pages_count ) { #> disabled <# } #>"
|
325 |
+
title="{{ data.strings.goToTheLastPage }}"
|
326 |
href="#">»</a>
|
327 |
</span>
|
328 |
</div>
|
348 |
<?php
|
349 |
|
350 |
// Call plugins so they can add their js
|
351 |
+
foreach ($this->instantiatedLoggers as $one_logger) {
|
352 |
+
if (method_exists($one_logger["instance"], "adminJS")) {
|
353 |
$one_logger["instance"]->adminJS();
|
354 |
}
|
355 |
}
|
367 |
*
|
368 |
*/
|
369 |
public function api() {
|
370 |
+
|
371 |
global $wpdb;
|
372 |
|
373 |
// Fake slow answers
|
377 |
unset($args["action"]);
|
378 |
|
379 |
// Type = overview | ...
|
380 |
+
$type = isset($_GET["type"]) ? $_GET["type"] : null;
|
381 |
|
382 |
+
if (empty($args) || !$type) {
|
383 |
|
384 |
+
wp_send_json_error(array(
|
385 |
+
_x("Not enough args specified", "API: not enought arguments passed", "simple-history"),
|
386 |
+
));
|
387 |
|
388 |
}
|
389 |
|
390 |
if (isset($args["id"])) {
|
391 |
$args["post__in"] = array(
|
392 |
+
$args["id"],
|
393 |
);
|
394 |
}
|
395 |
|
|
|
396 |
$data = array();
|
397 |
|
398 |
switch ($type) {
|
404 |
// API use SimpleHistoryLogQuery, so simply pass args on to that
|
405 |
$logQuery = new SimpleHistoryLogQuery();
|
406 |
$data = $logQuery->query($args);
|
407 |
+
|
408 |
$data["api_args"] = $args;
|
409 |
|
410 |
// Output can be array or HMTL
|
411 |
+
if (isset($args["format"]) && "html" === $args["format"]) {
|
412 |
+
|
413 |
$data["log_rows_raw"] = array();
|
414 |
|
415 |
foreach ($data["log_rows"] as $key => $oneLogRow) {
|
416 |
+
|
417 |
$args = array();
|
418 |
if ($type == "single") {
|
419 |
$args["type"] = "single";
|
420 |
}
|
421 |
|
422 |
+
$data["log_rows"][$key] = $this->getLogRowHTMLOutput($oneLogRow, $args);
|
423 |
+
$data["num_queries"] = get_num_queries();
|
424 |
|
425 |
}
|
426 |
|
427 |
} else {
|
428 |
+
|
429 |
$data["logRows"] = $logRows;
|
430 |
}
|
431 |
|
432 |
break;
|
433 |
|
|
|
434 |
default:
|
435 |
$data[] = "Nah.";
|
436 |
|
437 |
}
|
438 |
|
439 |
+
wp_send_json_success($data);
|
440 |
|
441 |
}
|
442 |
|
445 |
* to the untranslated text too, because that's the version we want to store
|
446 |
* in the database.
|
447 |
*/
|
448 |
+
public function filter_gettext($translated_text, $untranslated_text, $domain) {
|
449 |
|
450 |
+
if (isset($this->doFilterGettext) && $this->doFilterGettext) {
|
451 |
|
452 |
$this->doFilterGettext_currentLogger->messages[] = array(
|
453 |
"untranslated_text" => $untranslated_text,
|
459 |
}
|
460 |
|
461 |
return $translated_text;
|
462 |
+
|
463 |
}
|
464 |
|
465 |
/**
|
466 |
* Store messages with context
|
467 |
*/
|
468 |
+
public function filter_gettext_with_context($translated_text, $untranslated_text, $context, $domain) {
|
469 |
|
470 |
+
if (isset($this->doFilterGettext) && $this->doFilterGettext) {
|
471 |
|
472 |
$this->doFilterGettext_currentLogger->messages[] = array(
|
473 |
"untranslated_text" => $untranslated_text,
|
479 |
}
|
480 |
|
481 |
return $translated_text;
|
482 |
+
|
483 |
}
|
484 |
|
485 |
/**
|
486 |
* Load language files.
|
487 |
* Uses the method described here:
|
488 |
* http://geertdedeckere.be/article/loading-wordpress-language-files-the-right-way
|
489 |
+
*
|
490 |
* @since 2.0
|
491 |
*/
|
492 |
public function load_plugin_textdomain() {
|
493 |
|
494 |
$domain = 'simple-history';
|
495 |
+
|
496 |
// The "plugin_locale" filter is also used in load_plugin_textdomain()
|
497 |
$locale = apply_filters('plugin_locale', get_locale(), $domain);
|
498 |
|
499 |
+
load_textdomain($domain, WP_LANG_DIR . '/simple-history/' . $domain . '-' . $locale . '.mo');
|
500 |
+
load_plugin_textdomain($domain, FALSE, dirname($this->plugin_basename) . '/languages/');
|
501 |
|
502 |
}
|
503 |
|
505 |
* Setup variables and things
|
506 |
*/
|
507 |
public function setupVariables() {
|
508 |
+
|
509 |
// Capability required to view history = for who will the History page be added
|
510 |
$this->view_history_capability = "edit_pages";
|
511 |
$this->view_history_capability = apply_filters("simple_history_view_history_capability", $this->view_history_capability);
|
516 |
$this->view_settings_capability = apply_filters("simple_history_view_settings_capability", $this->view_settings_capability);
|
517 |
$this->view_settings_capability = apply_filters("simple_history/view_settings_capability", $this->view_settings_capability);
|
518 |
|
519 |
+
$this->plugin_basename = plugin_basename(__DIR__ . "/../index.php");
|
520 |
|
521 |
}
|
522 |
|
524 |
* Adds default tabs to settings
|
525 |
*/
|
526 |
public function add_default_settings_tabs() {
|
527 |
+
|
528 |
// Add default settings tabs
|
529 |
$this->arr_settings_tabs = array(
|
530 |
+
|
531 |
array(
|
532 |
"slug" => "settings",
|
533 |
"name" => __("Settings", "simple-history"),
|
534 |
+
"function" => array($this, "settings_output_general"),
|
535 |
),
|
536 |
|
537 |
);
|
538 |
|
539 |
+
if (defined("SIMPLE_HISTORY_DEV") && SIMPLE_HISTORY_DEV) {
|
540 |
+
|
541 |
$arr_dev_tabs = array(
|
542 |
array(
|
543 |
"slug" => "log",
|
544 |
"name" => __("Log (debug)", "simple-history"),
|
545 |
+
"function" => array($this, "settings_output_log"),
|
546 |
),
|
547 |
array(
|
548 |
"slug" => "styles-example",
|
549 |
"name" => __("Styles example (debug)", "simple-history"),
|
550 |
+
"function" => array($this, "settings_output_styles_example"),
|
551 |
+
),
|
552 |
|
553 |
);
|
554 |
|
555 |
+
$this->arr_settings_tabs = array_merge($this->arr_settings_tabs, $arr_dev_tabs);
|
556 |
|
557 |
}
|
558 |
|
563 |
* and instantiates them
|
564 |
*/
|
565 |
public function loadLoggers() {
|
566 |
+
|
567 |
+
$loggersDir = __DIR__ . "/../loggers/";
|
568 |
|
569 |
/**
|
570 |
* Filter the directory to load loggers from
|
575 |
*/
|
576 |
$loggersDir = apply_filters("simple_history/loggers_dir", $loggersDir);
|
577 |
|
578 |
+
$loggersFiles = glob($loggersDir . "*.php");
|
579 |
|
580 |
// SimpleLogger.php must be loaded first since the other loggers extend it
|
581 |
+
require_once $loggersDir . "SimpleLogger.php";
|
582 |
|
583 |
/**
|
584 |
* Filter the array with absolute paths to files as returned by glob function.
|
588 |
* @since 2.0
|
589 |
*
|
590 |
* @param array $loggersFiles Array with filenames
|
591 |
+
*/
|
592 |
$loggersFiles = apply_filters("simple_history/loggers_files", $loggersFiles);
|
593 |
+
|
594 |
$arrLoggersToInstantiate = array();
|
595 |
+
|
596 |
+
foreach ( $loggersFiles as $oneLoggerFile ) {
|
597 |
+
|
598 |
+
$load_logger = true;
|
599 |
+
|
600 |
+
$basename_no_suffix = basename($oneLoggerFile, ".php");
|
601 |
+
|
602 |
+
/**
|
603 |
+
* Filter to completely skip loading of a logger
|
604 |
+
*
|
605 |
+
* @since 2.0.22
|
606 |
+
*
|
607 |
+
* @param bool if to load the logger. return false to not load it.
|
608 |
+
* @param srting slug of logger
|
609 |
+
*/
|
610 |
+
$load_logger = apply_filters("simple_history/logger/load_logger", $load_logger, $basename_no_suffix );
|
611 |
+
|
612 |
+
if ( ! $load_logger ) {
|
613 |
+
continue;
|
614 |
+
}
|
615 |
+
|
616 |
+
if ( basename( $oneLoggerFile ) == "SimpleLogger.php") {
|
617 |
+
|
618 |
// SimpleLogger is already loaded
|
619 |
|
620 |
} else {
|
621 |
|
622 |
+
include_once $oneLoggerFile;
|
623 |
|
624 |
}
|
625 |
|
626 |
+
$arrLoggersToInstantiate[] = $basename_no_suffix;
|
627 |
+
|
628 |
}
|
629 |
|
630 |
/**
|
633 |
* @since 2.0
|
634 |
*
|
635 |
* @param array $arrLoggersToInstantiate Array with class names
|
636 |
+
*/
|
637 |
$arrLoggersToInstantiate = apply_filters("simple_history/loggers_to_instantiate", $arrLoggersToInstantiate);
|
638 |
+
|
639 |
// Instantiate each logger
|
640 |
+
foreach ($arrLoggersToInstantiate as $oneLoggerName) {
|
641 |
+
|
642 |
+
if (!class_exists($oneLoggerName)) {
|
643 |
continue;
|
644 |
}
|
645 |
|
646 |
$loggerInstance = new $oneLoggerName($this);
|
647 |
|
648 |
+
if (!is_subclass_of($loggerInstance, "SimpleLogger") && !is_a($loggerInstance, "SimpleLogger")) {
|
649 |
continue;
|
650 |
}
|
651 |
|
652 |
$loggerInstance->loaded();
|
653 |
+
|
654 |
// Tell gettext-filter to add untranslated messages
|
655 |
$this->doFilterGettext = true;
|
656 |
$this->doFilterGettext_currentLogger = $loggerInstance;
|
661 |
$this->doFilterGettext = false;
|
662 |
$this->doFilterGettext_currentLogger = null;
|
663 |
|
664 |
+
// LoggerInfo contains all messages, both translated an not, by key.
|
665 |
// Add messages to the loggerInstance
|
666 |
$loopNum = 0;
|
667 |
+
foreach ($loggerInfo["messages"] as $message_key => $message) {
|
668 |
+
|
669 |
+
$loggerInstance->messages[$message_key] = $loggerInstance->messages[$loopNum];
|
670 |
$loopNum++;
|
671 |
|
672 |
}
|
673 |
|
674 |
// Remove index keys, only keeping slug keys
|
675 |
if (is_array($loggerInstance->messages)) {
|
676 |
+
foreach ($loggerInstance->messages as $key => $val) {
|
677 |
+
if (is_int($key)) {
|
678 |
+
unset($loggerInstance->messages[$key]);
|
679 |
}
|
680 |
}
|
681 |
+
}
|
682 |
+
|
683 |
// Add logger to array of loggers
|
684 |
+
$this->instantiatedLoggers[$loggerInstance->slug] = array(
|
685 |
"name" => $loggerInfo["name"],
|
686 |
+
"instance" => $loggerInstance,
|
687 |
);
|
688 |
|
689 |
}
|
690 |
|
691 |
+
do_action("simple_history/loggers_loaded");
|
692 |
|
693 |
#sf_d($this->instantiatedLoggers);exit;
|
694 |
|
699 |
* and instantiates them
|
700 |
*/
|
701 |
public function loadDropins() {
|
702 |
+
|
703 |
+
$dropinsDir = __DIR__ . "/../dropins/";
|
704 |
|
705 |
/**
|
706 |
* Filter the directory to load loggers from
|
711 |
*/
|
712 |
$dropinsDir = apply_filters("simple_history/dropins_dir", $dropinsDir);
|
713 |
|
714 |
+
$dropinsFiles = glob($dropinsDir . "*.php");
|
715 |
|
716 |
/**
|
717 |
* Filter the array with absolute paths to files as returned by glob function.
|
721 |
* @since 2.0
|
722 |
*
|
723 |
* @param array $dropinsFiles Array with filenames
|
724 |
+
*/
|
725 |
$dropinsFiles = apply_filters("simple_history/dropins_files", $dropinsFiles);
|
726 |
+
|
727 |
$arrDropinsToInstantiate = array();
|
728 |
|
729 |
+
foreach ($dropinsFiles as $oneDropinFile) {
|
730 |
+
|
731 |
// path/path/simplehistory/dropins/SimpleHistoryDonateDropin.php => SimpleHistoryDonateDropin
|
732 |
$oneDropinFileBasename = basename($oneDropinFile, ".php");
|
733 |
|
734 |
+
$load_dropin = true;
|
735 |
+
|
736 |
/**
|
737 |
* Filter to completely skip loading of dropin
|
738 |
* complete filer name will be like:
|
742 |
*
|
743 |
* @param bool if to load the dropin. return false to not load it.
|
744 |
*/
|
745 |
+
$load_dropin = apply_filters("simple_history/dropin/load_dropin_{$oneDropinFileBasename}", $load_dropin);
|
746 |
+
|
747 |
+
/**
|
748 |
+
* Filter to completely skip loading of a dropin
|
749 |
+
*
|
750 |
+
* @since 2.0.22
|
751 |
+
*
|
752 |
+
* @param bool if to load the dropin. return false to not load it.
|
753 |
+
* @param string slug of dropin
|
754 |
+
*/
|
755 |
+
$load_dropin = apply_filters("simple_history/dropin/load_dropin", $load_dropin, $oneDropinFileBasename);
|
756 |
|
757 |
if ( ! $load_dropin ) {
|
758 |
continue;
|
759 |
}
|
760 |
|
761 |
+
include_once $oneDropinFile;
|
762 |
|
763 |
$arrDropinsToInstantiate[] = $oneDropinFileBasename;
|
764 |
+
|
765 |
}
|
766 |
|
767 |
/**
|
770 |
* @since 2.0
|
771 |
*
|
772 |
* @param array $arrDropinsToInstantiate Array with class names
|
773 |
+
*/
|
774 |
$arrDropinsToInstantiate = apply_filters("simple_history/dropins_to_instantiate", $arrDropinsToInstantiate);
|
775 |
|
776 |
// Instantiate each dropin
|
777 |
+
foreach ($arrDropinsToInstantiate as $oneDropinName) {
|
778 |
+
|
779 |
+
if (!class_exists($oneDropinName)) {
|
780 |
continue;
|
781 |
}
|
782 |
|
783 |
$this->instantiatedDropins[$oneDropinName] = array(
|
784 |
"name" => $oneDropinName,
|
785 |
+
"instance" => new $oneDropinName($this),
|
786 |
);
|
787 |
}
|
788 |
|
789 |
}
|
790 |
|
791 |
/**
|
792 |
+
* Gets the pager size,
|
793 |
* i.e. the number of items to show on each page in the history
|
794 |
*
|
795 |
* @return int
|
810 |
return $pager_size;
|
811 |
|
812 |
}
|
|
|
813 |
|
814 |
/**
|
815 |
* Show a link to our settings page on the Plugins -> Installed Plugins screen
|
816 |
*/
|
817 |
function plugin_action_links($actions, $b, $c, $d) {
|
818 |
+
|
819 |
// Only add link if user has the right to view the settings page
|
820 |
+
if (!current_user_can($this->view_settings_capability)) {
|
821 |
return $actions;
|
822 |
}
|
823 |
|
824 |
$settings_page_url = menu_page_url(SimpleHistory::SETTINGS_MENU_SLUG, 0);
|
825 |
+
|
826 |
$actions[] = "<a href='$settings_page_url'>" . __("Settings", "simple-history") . "</a>";
|
827 |
|
828 |
return $actions;
|
829 |
+
|
830 |
}
|
831 |
|
832 |
/**
|
835 |
* and a setting to show dashboard to be set
|
836 |
*/
|
837 |
function add_dashboard_widget() {
|
838 |
+
|
839 |
+
if ($this->setting_show_on_dashboard() && current_user_can($this->view_history_capability)) {
|
840 |
+
|
841 |
wp_add_dashboard_widget("simple_history_dashboard_widget", __("Simple History", 'simple-history'), array($this, "dashboard_widget_output"));
|
842 |
+
|
843 |
}
|
844 |
}
|
845 |
|
847 |
* Output html for the dashboard widget
|
848 |
*/
|
849 |
function dashboard_widget_output() {
|
850 |
+
|
851 |
$pager_size = $this->get_pager_size();
|
852 |
|
853 |
/**
|
859 |
*/
|
860 |
$pager_size = apply_filters("simple_history/dashboard_pager_size", $pager_size);
|
861 |
|
862 |
+
do_action("simple_history/dashboard/before_gui", $this);
|
863 |
|
864 |
?>
|
865 |
<div class="SimpleHistoryGui"
|
866 |
+
data-pager-size='<?php echo $pager_size?>'
|
867 |
></div>
|
868 |
<?php
|
869 |
|
870 |
}
|
871 |
+
|
872 |
function is_on_our_own_pages($hook = "") {
|
873 |
|
874 |
$current_screen = get_current_screen();
|
875 |
|
876 |
+
if ($current_screen && $current_screen->base == "settings_page_" . SimpleHistory::SETTINGS_MENU_SLUG) {
|
877 |
+
|
878 |
return true;
|
879 |
|
880 |
+
} else if ($current_screen && $current_screen->base == "dashboard_page_simple_history_page") {
|
881 |
|
882 |
return true;
|
883 |
|
884 |
+
} else if (($hook == "settings_page_" . SimpleHistory::SETTINGS_MENU_SLUG) || ($this->setting_show_on_dashboard() && $hook == "index.php") || ($this->setting_show_as_page() && $hook == "dashboard_page_simple_history_page")) {
|
885 |
|
886 |
return true;
|
887 |
|
888 |
+
} else if ($current_screen && $current_screen->base == "dashboard" && $this->setting_show_on_dashboard()) {
|
889 |
|
890 |
return true;
|
891 |
|
900 |
* Only adds scripts to pages where the log is shown or the settings page.
|
901 |
*/
|
902 |
function enqueue_admin_scripts($hook) {
|
903 |
+
|
904 |
+
if ($this->is_on_our_own_pages()) {
|
905 |
+
|
906 |
add_thickbox();
|
907 |
|
908 |
+
$plugin_url = plugin_dir_url(__DIR__ . "/../index.php");
|
909 |
+
wp_enqueue_style("simple_history_styles", $plugin_url . "css/styles.css", false, SimpleHistory::VERSION);
|
910 |
+
wp_enqueue_script("simple_history_script", $plugin_url . "js/scripts.js", array("jquery", "backbone", "wp-util"), SimpleHistory::VERSION, true);
|
911 |
+
|
912 |
wp_enqueue_script("select2", $plugin_url . "/js/select2/select2.min.js", array("jquery"));
|
913 |
wp_enqueue_style("select2", $plugin_url . "/js/select2/select2.css");
|
914 |
|
915 |
// Translations that we use in JavaScript
|
916 |
+
wp_localize_script('simple_history_script', 'simple_history_script_vars', array(
|
917 |
'settingsConfirmClearLog' => __("Remove all log items?", 'simple-history'),
|
918 |
'pagination' => array(
|
919 |
'goToTheFirstPage' => __("Go to the first page", 'simple-history'),
|
923 |
'currentPage' => __("Current page", 'simple-history'),
|
924 |
),
|
925 |
"loadLogAPIError" => __("Oups, the log could not be loaded right now.", 'simple-history'),
|
926 |
+
"logNoHits" => __("Your search did not match any history events.", "simple-history"),
|
927 |
));
|
928 |
|
929 |
// Call plugins adminCSS-method, so they can add their CSS
|
930 |
+
foreach ($this->instantiatedLoggers as $one_logger) {
|
931 |
+
if (method_exists($one_logger["instance"], "adminCSS")) {
|
932 |
$one_logger["instance"]->adminCSS();
|
933 |
}
|
934 |
}
|
935 |
|
936 |
/**
|
937 |
+
* Fires when the admin scripts have been enqueued.
|
938 |
+
* Only fires on any of the pages where Simple History is used
|
939 |
+
*
|
940 |
+
* @since 2.0
|
941 |
+
*
|
942 |
+
* @param SimpleHistory $SimpleHistory This class.
|
943 |
+
*/
|
944 |
do_action("simple_history/enqueue_admin_scripts", $this);
|
945 |
+
|
946 |
}
|
947 |
|
948 |
}
|
950 |
function filter_option_page_capability($capability) {
|
951 |
return $capability;
|
952 |
}
|
953 |
+
|
954 |
/**
|
955 |
* Check if plugin version have changed, i.e. has been upgraded
|
956 |
* If upgrade is detected then maybe modify database and so on for that version
|
964 |
$table_name_contexts = $wpdb->prefix . SimpleHistory::DBTABLE_CONTEXTS;
|
965 |
$first_install = false;
|
966 |
|
967 |
+
// If no db_version is set then this
|
968 |
// is a version of Simple History < 0.4
|
969 |
// or it's a first install
|
970 |
// Fix database not using UTF-8
|
971 |
+
if (false === $db_version) {
|
972 |
+
|
973 |
+
require_once ABSPATH . 'wp-admin/includes/upgrade.php';
|
974 |
|
975 |
// Table creation, used to be in register_activation_hook
|
976 |
+
/*
|
977 |
$sql = "CREATE TABLE " . $table_name . " (
|
978 |
+
id int(10) NOT NULL AUTO_INCREMENT,
|
979 |
+
date datetime NOT NULL,
|
980 |
+
action varchar(255) NOT NULL COLLATE utf8_general_ci,
|
981 |
+
object_type varchar(255) NOT NULL COLLATE utf8_general_ci,
|
982 |
+
object_subtype VARCHAR(255) NOT NULL COLLATE utf8_general_ci,
|
983 |
+
user_id int(10) NOT NULL,
|
984 |
+
object_id int(10) NOT NULL,
|
985 |
+
object_name varchar(255) NOT NULL COLLATE utf8_general_ci,
|
986 |
+
action_description longtext,
|
987 |
+
PRIMARY KEY (id)
|
988 |
) CHARACTER SET=utf8;";
|
989 |
dbDelta($sql);
|
990 |
+
*/
|
991 |
|
992 |
// We change the varchar size to add one num just to force update of encoding. dbdelta didn't see it otherwise.
|
993 |
// This table is missing action_description, but we add that later on
|
1005 |
|
1006 |
// Upgrade db / fix utf for varchars
|
1007 |
dbDelta($sql);
|
1008 |
+
|
1009 |
// Fix UTF-8 for table
|
1010 |
$sql = sprintf('alter table %1$s charset=utf8;', $table_name);
|
1011 |
$wpdb->query($sql);
|
1012 |
+
|
1013 |
$db_version_prev = $db_version;
|
1014 |
$db_version = 1;
|
1015 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1016 |
update_option("simple_history_db_version", $db_version);
|
1017 |
|
1018 |
+
// We are not 100% sure that this is a first install,
|
1019 |
// but it is at least a very old version that is being updated
|
1020 |
$first_install = true;
|
1021 |
|
1022 |
+
}// done pre db ver 1 things
|
|
|
1023 |
|
1024 |
// If db version is 1 then upgrade to 2
|
1025 |
// Version 2 added the action_description column
|
1026 |
+
if (1 == intval($db_version)) {
|
1027 |
|
1028 |
+
// Add column for action description in non-translatable free text
|
1029 |
$sql = "ALTER TABLE {$table_name} ADD COLUMN action_description longtext";
|
1030 |
$wpdb->query($sql);
|
1031 |
|
1041 |
$arr_options = array(
|
1042 |
array(
|
1043 |
"name" => "simple_history_show_as_page",
|
1044 |
+
"default_value" => 1,
|
1045 |
),
|
1046 |
array(
|
1047 |
"name" => "simple_history_show_on_dashboard",
|
1048 |
+
"default_value" => 1,
|
1049 |
+
),
|
1050 |
);
|
1051 |
|
1052 |
foreach ($arr_options as $one_option) {
|
1053 |
+
|
1054 |
+
if (false === ($option_value = get_option($one_option["name"]))) {
|
1055 |
|
1056 |
// Value is not set in db, so set it to a default
|
1057 |
+
update_option($one_option["name"], $one_option["default_value"]);
|
1058 |
|
1059 |
}
|
1060 |
}
|
1066 |
*
|
1067 |
* @since 2.0
|
1068 |
*/
|
1069 |
+
if (2 == intval($db_version)) {
|
1070 |
|
1071 |
+
require_once ABSPATH . 'wp-admin/includes/upgrade.php';
|
1072 |
|
1073 |
// Update old table
|
1074 |
$sql = "
|
1092 |
KEY date (date),
|
1093 |
KEY loggerdate (logger, date)
|
1094 |
) CHARSET=utf8;";
|
1095 |
+
|
1096 |
dbDelta($sql);
|
1097 |
|
1098 |
// Add context table
|
1117 |
// Update old items to use SimpleLegacyLogger
|
1118 |
$sql = sprintf('
|
1119 |
UPDATE %1$s
|
1120 |
+
SET
|
1121 |
logger = "SimpleLegacyLogger",
|
1122 |
level = "info"
|
1123 |
WHERE logger IS NULL
|
1124 |
+
',
|
1125 |
$table_name
|
1126 |
);
|
1127 |
|
1128 |
+
$wpdb->query($sql);
|
1129 |
|
1130 |
// Say welcome, however loggers are not added this early so we need to
|
1131 |
// use a filter to load it later
|
1132 |
+
add_action("simple_history/loggers_loaded", array($this, "addWelcomeLogMessage"));
|
1133 |
|
1134 |
+
}// db version 2 » 3
|
1135 |
|
1136 |
/**
|
1137 |
+
* If db version = 3
|
1138 |
* then we need to update database to allow null values for some old columns
|
1139 |
* that used to work in pre wp 4.1 beta, but since 4.1 wp uses STRICT_ALL_TABLES
|
1140 |
* WordPress Commit: https://github.com/WordPress/WordPress/commit/f17d168a0f72211a9bfd9d3fa680713069871bb6
|
1141 |
+
*
|
1142 |
* @since 2.0
|
1143 |
*/
|
1144 |
+
if (3 == intval($db_version)) {
|
1145 |
|
1146 |
+
require_once ABSPATH . 'wp-admin/includes/upgrade.php';
|
1147 |
|
1148 |
$sql = sprintf('
|
1149 |
ALTER TABLE %1$s
|
1153 |
MODIFY `user_id` int(10) NULL,
|
1154 |
MODIFY `object_id` int(10) NULL,
|
1155 |
MODIFY `object_name` varchar(255) NULL
|
1156 |
+
',
|
1157 |
$table_name
|
1158 |
);
|
1159 |
+
$wpdb->query($sql);
|
1160 |
|
1161 |
$db_version_prev = $db_version;
|
1162 |
$db_version = 4;
|
1163 |
+
|
1164 |
update_option("simple_history_db_version", $db_version);
|
1165 |
|
1166 |
+
}// end db version 3 » 4
|
1167 |
+
|
1168 |
+
}// end check_for_upgrade
|
1169 |
|
|
|
|
|
|
|
1170 |
/**
|
1171 |
* Greet users to version 2!
|
1172 |
*/
|
1173 |
public function addWelcomeLogMessage() {
|
1174 |
|
1175 |
SimpleLogger()->info(
|
1176 |
+
"Welcome to Simple History 2! Hope you will enjoy this plugin.
|
1177 |
Found bugs? Got great ideas? Send them to the plugin developer at par.thernstrom@gmail.com.",
|
1178 |
array(
|
1179 |
+
"_initiator" => SimpleLoggerLogInitiators::WORDPRESS,
|
1180 |
)
|
1181 |
);
|
1182 |
|
1197 |
/**
|
1198 |
* Output HTML for the settings page
|
1199 |
* Called from add_options_page
|
1200 |
+
*/
|
1201 |
function settings_page_output() {
|
1202 |
+
|
1203 |
$arr_settings_tabs = $this->getSettingsTabs();
|
1204 |
|
1205 |
?>
|
1207 |
|
1208 |
<h2 class="SimpleHistoryPageHeadline">
|
1209 |
<div class="dashicons dashicons-backup SimpleHistoryPageHeadline__icon"></div>
|
1210 |
+
<?php _e("Simple History Settings", "simple-history")?>
|
1211 |
</h2>
|
1212 |
+
|
1213 |
<?php
|
1214 |
+
$active_tab = isset($_GET["selected-tab"]) ? $_GET["selected-tab"] : "settings";
|
1215 |
+
$settings_base_url = menu_page_url(SimpleHistory::SETTINGS_MENU_SLUG, 0);
|
1216 |
+
?>
|
1217 |
|
1218 |
<h3 class="nav-tab-wrapper">
|
1219 |
<?php
|
1220 |
+
foreach ($arr_settings_tabs as $one_tab) {
|
1221 |
|
1222 |
+
$tab_slug = $one_tab["slug"];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1223 |
|
1224 |
+
printf(
|
1225 |
+
'<a href="%3$s" class="nav-tab %4$s">%1$s</a>',
|
1226 |
+
$one_tab["name"], // 1
|
1227 |
+
$tab_slug, // 2
|
1228 |
+
add_query_arg("selected-tab", $tab_slug, $settings_base_url), // 3
|
1229 |
+
$active_tab == $tab_slug ? "nav-tab-active" : ""// 4
|
1230 |
+
);
|
1231 |
+
|
1232 |
+
}
|
1233 |
+
?>
|
1234 |
</h3>
|
1235 |
|
1236 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1237 |
|
1238 |
+
// Output contents for selected tab
|
1239 |
+
$arr_active_tab = wp_filter_object_list($arr_settings_tabs, array("slug" => $active_tab));
|
1240 |
+
$arr_active_tab = current($arr_active_tab);
|
1241 |
|
1242 |
+
// We must have found an active tab and it must have a callable function
|
1243 |
+
if (!$arr_active_tab || !is_callable($arr_active_tab["function"])) {
|
1244 |
+
wp_die(__("No valid callback found", "simple-history"));
|
1245 |
+
}
|
1246 |
|
1247 |
+
$args = array(
|
1248 |
+
"arr_active_tab" => $arr_active_tab,
|
1249 |
+
);
|
1250 |
+
|
1251 |
+
call_user_func_array($arr_active_tab["function"], $args);
|
1252 |
+
|
1253 |
+
?>
|
1254 |
|
1255 |
</div>
|
1256 |
<?php
|
1257 |
+
|
1258 |
}
|
1259 |
|
1260 |
public function settings_output_log() {
|
1261 |
+
|
1262 |
+
include __DIR__ . "/../templates/settings-log.php";
|
1263 |
|
1264 |
}
|
1265 |
|
1266 |
public function settings_output_general() {
|
1267 |
+
|
1268 |
+
include __DIR__ . "/../templates/settings-general.php";
|
1269 |
|
1270 |
}
|
1271 |
|
1272 |
public function settings_output_styles_example() {
|
|
|
|
|
1273 |
|
1274 |
+
include __DIR__ . "/../templates/settings-style-example.php";
|
1275 |
|
1276 |
+
}
|
1277 |
|
1278 |
/**
|
1279 |
* Content for section intro. Leave it be, even if empty.
|
1280 |
* Called from add_sections_setting.
|
1281 |
*/
|
1282 |
function settings_section_output() {
|
|
|
|
|
1283 |
|
1284 |
+
}
|
1285 |
|
1286 |
/**
|
1287 |
* Add pages (history page and settings page)
|
1288 |
*/
|
1289 |
function add_admin_pages() {
|
1290 |
+
|
1291 |
// Add a history page as a sub-page below the Dashboard menu item
|
1292 |
+
if ($this->setting_show_as_page()) {
|
1293 |
+
|
1294 |
add_dashboard_page(
|
1295 |
+
SimpleHistory::NAME,
|
1296 |
+
_x("Simple History", 'dashboard menu name', 'simple-history'),
|
1297 |
+
$this->view_history_capability,
|
1298 |
+
"simple_history_page",
|
1299 |
+
array($this, "history_page_output")
|
1300 |
+
);
|
1301 |
|
1302 |
}
|
1303 |
|
1308 |
if ($show_settings_page) {
|
1309 |
|
1310 |
add_options_page(
|
1311 |
+
__('Simple History Settings', "simple-history"),
|
1312 |
+
SimpleHistory::NAME,
|
1313 |
+
$this->view_settings_capability,
|
1314 |
+
SimpleHistory::SETTINGS_MENU_SLUG,
|
1315 |
+
array($this, 'settings_page_output')
|
1316 |
+
);
|
1317 |
|
1318 |
}
|
1319 |
|
1326 |
function add_settings() {
|
1327 |
|
1328 |
// Clear the log if clear button was clicked in settings
|
1329 |
+
if (isset($_GET["simple_history_clear_log_nonce"]) && wp_verify_nonce($_GET["simple_history_clear_log_nonce"], 'simple_history_clear_log')) {
|
1330 |
+
|
1331 |
$this->clear_log();
|
1332 |
$msg = __("Cleared database", 'simple-history');
|
1333 |
+
add_settings_error("simple_history_rss_feed_regenerate_secret", "simple_history_rss_feed_regenerate_secret", $msg, "updated");
|
1334 |
set_transient('settings_errors', get_settings_errors(), 30);
|
1335 |
|
1336 |
+
$goback = add_query_arg('settings-updated', 'true', wp_get_referer());
|
1337 |
+
wp_redirect($goback);
|
1338 |
exit;
|
1339 |
|
1340 |
}
|
1343 |
// Will contain settings like where to show simple history and number of items
|
1344 |
$settings_section_general_id = self::SETTINGS_SECTION_GENERAL_ID;
|
1345 |
add_settings_section(
|
1346 |
+
$settings_section_general_id,
|
1347 |
+
"", // No title __("General", "simple-history"),
|
1348 |
+
array($this, "settings_section_output"),
|
1349 |
+
SimpleHistory::SETTINGS_MENU_SLUG// same slug as for options menu page
|
1350 |
);
|
1351 |
|
1352 |
// Settings for the general settings section
|
1355 |
|
1356 |
// Checkboxes for where to show simple history
|
1357 |
add_settings_field(
|
1358 |
+
"simple_history_show_where",
|
1359 |
__("Show history", "simple-history"),
|
1360 |
array($this, "settings_field_where_to_show"),
|
1361 |
SimpleHistory::SETTINGS_MENU_SLUG,
|
1368 |
|
1369 |
// Dropdown number if items to show
|
1370 |
add_settings_field(
|
1371 |
+
"simple_history_number_of_items",
|
1372 |
__("Number of items per page", "simple-history"),
|
1373 |
array($this, "settings_field_number_of_items"),
|
1374 |
SimpleHistory::SETTINGS_MENU_SLUG,
|
1389 |
|
1390 |
}
|
1391 |
|
|
|
1392 |
/**
|
1393 |
* Output for page with the history
|
1394 |
*/
|
1414 |
?>
|
1415 |
|
1416 |
<div class="wrap SimpleHistoryWrap">
|
1417 |
+
|
1418 |
<h2 class="SimpleHistoryPageHeadline">
|
1419 |
<div class="dashicons dashicons-backup SimpleHistoryPageHeadline__icon"></div>
|
1420 |
+
<?php echo _x("Simple History", 'history page headline', 'simple-history')?>
|
1421 |
</h2>
|
1422 |
|
1423 |
<?php
|
1424 |
+
/**
|
1425 |
+
* Fires before the gui div
|
1426 |
+
*
|
1427 |
+
* @since 2.0
|
1428 |
+
*
|
1429 |
+
* @param SimpleHistory $SimpleHistory This class.
|
1430 |
+
*/
|
1431 |
+
do_action("simple_history/history_page/before_gui", $this);
|
1432 |
+
?>
|
1433 |
|
1434 |
<div class="SimpleHistoryGuiWrap">
|
1435 |
|
1436 |
<div class="SimpleHistoryGui"
|
1437 |
+
data-pager-size='<?php echo $pager_size?>'
|
1438 |
></div>
|
1439 |
|
1440 |
<?php
|
1441 |
|
1442 |
+
/**
|
1443 |
+
* Fires after the gui div
|
1444 |
+
*
|
1445 |
+
* @since 2.0
|
1446 |
+
*
|
1447 |
+
* @param SimpleHistory $SimpleHistory This class.
|
1448 |
+
*/
|
1449 |
+
do_action("simple_history/history_page/after_gui", $this);
|
1450 |
+
|
1451 |
+
?>
|
1452 |
|
|
|
|
|
1453 |
</div>
|
1454 |
|
1455 |
</div>
|
1459 |
}
|
1460 |
|
1461 |
/**
|
1462 |
+
* Get setting if plugin should be visible on dasboard.
|
1463 |
* Defaults to true
|
1464 |
*
|
1465 |
* @return bool
|
1466 |
*/
|
1467 |
function setting_show_on_dashboard() {
|
1468 |
+
|
1469 |
$show_on_dashboard = get_option("simple_history_show_on_dashboard", 1);
|
1470 |
$show_on_dashboard = apply_filters("simple_history_show_on_dashboard", $show_on_dashboard);
|
1471 |
return (bool) $show_on_dashboard;
|
1490 |
* Settings field for how many rows/items to show in log
|
1491 |
*/
|
1492 |
function settings_field_number_of_items() {
|
1493 |
+
|
1494 |
$current_pager_size = $this->get_pager_size();
|
1495 |
|
1496 |
?>
|
1497 |
<select name="simple_history_pager_size">
|
1498 |
+
<option <?php echo $current_pager_size == 5 ? "selected" : ""?> value="5">5</option>
|
1499 |
+
<option <?php echo $current_pager_size == 10 ? "selected" : ""?> value="10">10</option>
|
1500 |
+
<option <?php echo $current_pager_size == 15 ? "selected" : ""?> value="15">15</option>
|
1501 |
+
<option <?php echo $current_pager_size == 20 ? "selected" : ""?> value="20">20</option>
|
1502 |
+
<option <?php echo $current_pager_size == 25 ? "selected" : ""?> value="25">25</option>
|
1503 |
+
<option <?php echo $current_pager_size == 30 ? "selected" : ""?> value="30">30</option>
|
1504 |
+
<option <?php echo $current_pager_size == 40 ? "selected" : ""?> value="40">40</option>
|
1505 |
+
<option <?php echo $current_pager_size == 50 ? "selected" : ""?> value="50">50</option>
|
1506 |
+
<option <?php echo $current_pager_size == 75 ? "selected" : ""?> value="75">75</option>
|
1507 |
+
<option <?php echo $current_pager_size == 100 ? "selected" : ""?> value="100">100</option>
|
1508 |
</select>
|
1509 |
<?php
|
1510 |
|
1518 |
$show_on_dashboard = $this->setting_show_on_dashboard();
|
1519 |
$show_as_page = $this->setting_show_as_page();
|
1520 |
?>
|
1521 |
+
|
1522 |
+
<input <?php echo $show_on_dashboard ? "checked='checked'" : ""?> type="checkbox" value="1" name="simple_history_show_on_dashboard" id="simple_history_show_on_dashboard" class="simple_history_show_on_dashboard" />
|
1523 |
+
<label for="simple_history_show_on_dashboard"><?php _e("on the dashboard", 'simple-history')?></label>
|
1524 |
|
1525 |
<br />
|
1526 |
+
|
1527 |
+
<input <?php echo $show_as_page ? "checked='checked'" : ""?> type="checkbox" value="1" name="simple_history_show_as_page" id="simple_history_show_as_page" class="simple_history_show_as_page" />
|
1528 |
+
<label for="simple_history_show_as_page"><?php _e("as a page under the dashboard menu", 'simple-history')?></label>
|
1529 |
+
|
1530 |
<?php
|
1531 |
+
}
|
1532 |
|
1533 |
/**
|
1534 |
* Settings section to clear database
|
1535 |
*/
|
1536 |
function settings_field_clear_log() {
|
1537 |
+
|
1538 |
$clear_link = add_query_arg("", "");
|
1539 |
+
$clear_link = wp_nonce_url($clear_link, "simple_history_clear_log", "simple_history_clear_log_nonce");
|
1540 |
$clear_days = $this->get_clear_history_interval();
|
1541 |
|
1542 |
echo "<p>";
|
1543 |
+
if ($clear_days > 0) {
|
1544 |
+
echo sprintf(__('Items in the database are automatically removed after %1$s days.', "simple-history"), $clear_days);
|
1545 |
} else {
|
1546 |
+
_e('Items in the database are kept forever.', 'simple-history');
|
1547 |
}
|
1548 |
echo "</p>";
|
1549 |
|
1551 |
}
|
1552 |
|
1553 |
/**
|
1554 |
+
* How old log entried are allowed to be.
|
1555 |
* 0 = don't delete old entries.
|
1556 |
*
|
1557 |
* @return int Number of days.
|
1573 |
function clear_log() {
|
1574 |
|
1575 |
global $wpdb;
|
1576 |
+
|
1577 |
$tableprefix = $wpdb->prefix;
|
1578 |
+
|
1579 |
$simple_history_table = SimpleHistory::DBTABLE;
|
1580 |
$simple_history_context_table = SimpleHistory::DBTABLE_CONTEXTS;
|
1581 |
+
|
1582 |
+
// Get number of rows before delete
|
1583 |
+
$sql_num_rows = "SELECT count(id) AS num_rows FROM {$tableprefix}{$simple_history_table}";
|
1584 |
+
$num_rows = $wpdb->get_var($sql_num_rows, 0);
|
1585 |
+
|
1586 |
$sql = "DELETE FROM {$tableprefix}{$simple_history_table}";
|
1587 |
$wpdb->query($sql);
|
1588 |
|
1589 |
$sql = "DELETE FROM {$tableprefix}{$simple_history_context_table}";
|
1590 |
$wpdb->query($sql);
|
1591 |
|
1592 |
+
// Zero state sucks
|
1593 |
+
SimpleLogger()->info(
|
1594 |
+
__("The log for Simple History was cleared ({num_rows} rows were removed).", "simple-history"),
|
1595 |
+
array(
|
1596 |
+
"num_rows" => $num_rows,
|
1597 |
+
)
|
1598 |
+
);
|
1599 |
+
|
1600 |
+
$this->get_cache_incrementor(true);
|
1601 |
+
|
1602 |
+
}
|
1603 |
+
|
1604 |
+
/**
|
1605 |
+
* Runs the purge_db() method sometimes
|
1606 |
+
* We don't want to call it each time because it performs SQL queries
|
1607 |
+
*
|
1608 |
+
* @since 2.0.17
|
1609 |
+
*/
|
1610 |
+
function maybe_purge_db() {
|
1611 |
+
|
1612 |
+
/*if ( ! is_admin() ) {
|
1613 |
+
return;
|
1614 |
+
}*/
|
1615 |
+
|
1616 |
+
// How often should we try to do this?
|
1617 |
+
// Once a day = a bit tiresome
|
1618 |
+
// Let's go with sundays; purge the log on sundays
|
1619 |
+
|
1620 |
+
// day of week, 1 = mon, 7 = sun
|
1621 |
+
$day_of_week = date('N');
|
1622 |
+
if ( 7 === (int) $day_of_week ) {
|
1623 |
+
|
1624 |
+
$this->purge_db();
|
1625 |
+
|
1626 |
+
}
|
1627 |
+
|
1628 |
}
|
1629 |
|
1630 |
/**
|
1631 |
* Removes old entries from the db
|
|
|
1632 |
*/
|
1633 |
function purge_db() {
|
1634 |
|
1635 |
+
// SimpleLogger()->debug("Simple History is running purge_db()");
|
1636 |
+
|
1637 |
$do_purge_history = true;
|
1638 |
+
|
1639 |
$do_purge_history = apply_filters("simple_history_allow_db_purge", $do_purge_history);
|
1640 |
$do_purge_history = apply_filters("simple_history/allow_db_purge", $do_purge_history);
|
1641 |
+
|
1642 |
+
if (!$do_purge_history) {
|
1643 |
return;
|
1644 |
}
|
1645 |
|
1651 |
}
|
1652 |
|
1653 |
global $wpdb;
|
|
|
|
|
1654 |
|
1655 |
+
$table_name = $wpdb->prefix . SimpleHistory::DBTABLE;
|
1656 |
+
$table_name_contexts = $wpdb->prefix . SimpleHistory::DBTABLE_CONTEXTS;
|
1657 |
|
1658 |
+
// Get id of rows to delete
|
1659 |
+
$sql = "SELECT id FROM {$table_name} WHERE DATE_ADD(date, INTERVAL $days DAY) < now()";
|
1660 |
+
|
1661 |
+
$ids_to_delete = $wpdb->get_col($sql);
|
1662 |
+
|
1663 |
+
if (empty($ids_to_delete)) {
|
1664 |
+
// Nothing to delete
|
1665 |
+
return;
|
1666 |
+
}
|
1667 |
+
|
1668 |
+
$sql_ids_in = implode(",", $ids_to_delete);
|
1669 |
+
|
1670 |
+
// Add number of deleted rows to total_rows option
|
1671 |
+
$prev_total_rows = (int) get_option("simple_history_total_rows", 0);
|
1672 |
+
$total_rows = $prev_total_rows + sizeof($ids_to_delete);
|
1673 |
+
update_option("simple_history_total_rows", $total_rows);
|
1674 |
+
|
1675 |
+
// Remove rows + contexts
|
1676 |
+
$sql_delete_history = "DELETE FROM {$table_name} WHERE id IN ($sql_ids_in)";
|
1677 |
+
$sql_delete_history_context = "DELETE FROM {$table_name_contexts} WHERE history_id IN ($sql_ids_in)";
|
1678 |
+
|
1679 |
+
$wpdb->query($sql_delete_history);
|
1680 |
+
$wpdb->query($sql_delete_history_context);
|
1681 |
+
|
1682 |
+
$message = _nx(
|
1683 |
+
"Simple History removed one event that were older than {days} days",
|
1684 |
+
"Simple History removed {num_rows} events that were older than {days} days",
|
1685 |
+
"Database is being cleared automagically",
|
1686 |
+
"simple-history"
|
1687 |
+
);
|
1688 |
+
|
1689 |
+
SimpleLogger()->info(
|
1690 |
+
$message,
|
1691 |
+
array(
|
1692 |
+
"days" => $days,
|
1693 |
+
"num_rows" => sizeof($ids_to_delete),
|
1694 |
+
)
|
1695 |
+
);
|
1696 |
+
|
1697 |
+
$this->get_cache_incrementor(true);
|
1698 |
|
1699 |
}
|
1700 |
|
1703 |
* Uses the getLogRowPlainTextOutput of the logger that logged the row
|
1704 |
* with fallback to SimpleLogger if logger is not available
|
1705 |
*
|
1706 |
+
* @param array $row
|
1707 |
* @return string
|
1708 |
*/
|
1709 |
public function getLogRowPlainTextOutput($row) {
|
1710 |
+
|
1711 |
$row_logger = $row->logger;
|
1712 |
$logger = null;
|
1713 |
+
$row->context = isset($row->context) && is_array($row->context) ? $row->context : array();
|
1714 |
|
1715 |
+
if (!isset($row->context["_message_key"])) {
|
1716 |
$row->context["_message_key"] = null;
|
1717 |
}
|
1718 |
+
|
1719 |
// Fallback to SimpleLogger if no logger exists for row
|
1720 |
+
if (!isset($this->instantiatedLoggers[$row_logger])) {
|
1721 |
$row_logger = "SimpleLogger";
|
1722 |
}
|
1723 |
|
1724 |
+
$logger = $this->instantiatedLoggers[$row_logger]["instance"];
|
1725 |
+
|
1726 |
+
return $logger->getLogRowPlainTextOutput($row);
|
1727 |
|
|
|
|
|
1728 |
}
|
1729 |
|
1730 |
/**
|
1732 |
* Uses the getLogRowHeaderOutput of the logger that logged the row
|
1733 |
* with fallback to SimpleLogger if logger is not available
|
1734 |
*
|
1735 |
+
* Loggers are discouraged to override this in the loggers,
|
1736 |
* because the output should be the same for all items in the gui
|
1737 |
+
*
|
1738 |
* @param array $row
|
1739 |
* @return string
|
1740 |
*/
|
1742 |
|
1743 |
$row_logger = $row->logger;
|
1744 |
$logger = null;
|
1745 |
+
$row->context = isset($row->context) && is_array($row->context) ? $row->context : array();
|
1746 |
+
|
1747 |
// Fallback to SimpleLogger if no logger exists for row
|
1748 |
+
if (!isset($this->instantiatedLoggers[$row_logger])) {
|
1749 |
$row_logger = "SimpleLogger";
|
1750 |
}
|
1751 |
|
1752 |
+
$logger = $this->instantiatedLoggers[$row_logger]["instance"];
|
1753 |
|
1754 |
+
return $logger->getLogRowHeaderOutput($row);
|
1755 |
|
1756 |
}
|
1757 |
|
1758 |
/**
|
1759 |
+
*
|
1760 |
+
*
|
1761 |
* @param array $row
|
1762 |
* @return string
|
1763 |
*/
|
1765 |
|
1766 |
$row_logger = $row->logger;
|
1767 |
$logger = null;
|
1768 |
+
$row->context = isset($row->context) && is_array($row->context) ? $row->context : array();
|
1769 |
+
|
1770 |
// Fallback to SimpleLogger if no logger exists for row
|
1771 |
+
if (!isset($this->instantiatedLoggers[$row_logger])) {
|
1772 |
$row_logger = "SimpleLogger";
|
1773 |
}
|
1774 |
|
1775 |
+
$logger = $this->instantiatedLoggers[$row_logger]["instance"];
|
1776 |
|
1777 |
+
return $logger->getLogRowSenderImageOutput($row);
|
1778 |
|
1779 |
}
|
1780 |
|
1782 |
|
1783 |
$row_logger = $row->logger;
|
1784 |
$logger = null;
|
1785 |
+
$row->context = isset($row->context) && is_array($row->context) ? $row->context : array();
|
1786 |
+
|
1787 |
// Fallback to SimpleLogger if no logger exists for row
|
1788 |
+
if (!isset($this->instantiatedLoggers[$row_logger])) {
|
1789 |
$row_logger = "SimpleLogger";
|
1790 |
}
|
1791 |
|
1792 |
+
$logger = $this->instantiatedLoggers[$row_logger]["instance"];
|
1793 |
|
1794 |
+
return $logger->getLogRowDetailsOutput($row);
|
1795 |
|
1796 |
}
|
1797 |
|
1798 |
/**
|
1799 |
* Works like json_encode, but adds JSON_PRETTY_PRINT if the current php version supports it
|
1800 |
* i.e. PHP is 5.4.0 or greated
|
1801 |
+
*
|
1802 |
* @param $value array|object|string|whatever that is json_encode'able
|
1803 |
*/
|
1804 |
public static function json_encode($value) {
|
1805 |
+
|
1806 |
+
return version_compare(PHP_VERSION, '5.4.0') >= 0 ? json_encode($value, JSON_PRETTY_PRINT) : json_encode($value);
|
1807 |
|
1808 |
}
|
1809 |
|
1812 |
* @param string $haystack
|
1813 |
* @param string $needle
|
1814 |
*/
|
1815 |
+
public static function ends_with($haystack, $needle) {
|
1816 |
+
return $needle === substr($haystack, -strlen($needle));
|
1817 |
}
|
1818 |
|
1819 |
/**
|
1825 |
public function getLogRowHTMLOutput($oneLogRow, $args) {
|
1826 |
|
1827 |
$defaults = array(
|
1828 |
+
"type" => "overview", // or "single" to include more stuff
|
1829 |
);
|
1830 |
|
1831 |
+
$args = wp_parse_args($args, $defaults);
|
1832 |
|
1833 |
+
$header_html = $this->getLogRowHeaderOutput($oneLogRow);
|
1834 |
$plain_text_html = $this->getLogRowPlainTextOutput($oneLogRow);
|
1835 |
$sender_image_html = $this->getLogRowSenderImageOutput($oneLogRow);
|
1836 |
+
|
1837 |
// Details = for example thumbnail of media
|
1838 |
+
$details_html = trim($this->getLogRowDetailsOutput($oneLogRow));
|
1839 |
if ($details_html) {
|
1840 |
|
1841 |
$details_html = sprintf(
|
1848 |
// subsequentOccasions = including the current one
|
1849 |
$occasions_count = $oneLogRow->subsequentOccasions - 1;
|
1850 |
$occasions_html = "";
|
1851 |
+
|
1852 |
if ($occasions_count > 0) {
|
1853 |
|
1854 |
$occasions_html = '<div class="SimpleHistoryLogitem__occasions">';
|
1855 |
+
|
1856 |
$occasions_html .= '<a href="#" class="SimpleHistoryLogitem__occasionsLink">';
|
1857 |
$occasions_html .= sprintf(
|
1858 |
+
_n('+%1$s similar event', '+%1$s similar events', $occasions_count, "simple-history"),
|
1859 |
$occasions_count
|
1860 |
);
|
1861 |
$occasions_html .= '</a>';
|
1873 |
$occasions_count
|
1874 |
);
|
1875 |
$occasions_html .= '</span>';
|
1876 |
+
|
1877 |
$occasions_html .= '</div>';
|
1878 |
|
1879 |
}
|
1880 |
|
1881 |
$data_attrs = "";
|
1882 |
+
$data_attrs .= sprintf(' data-row-id="%1$d" ', $oneLogRow->id);
|
1883 |
+
$data_attrs .= sprintf(' data-occasions-count="%1$d" ', $occasions_count);
|
1884 |
+
$data_attrs .= sprintf(' data-occasions-id="%1$s" ', $oneLogRow->occasionsID);
|
1885 |
+
$data_attrs .= sprintf(' data-ip-address="%1$s" ', esc_attr($oneLogRow->context["_server_remote_addr"]));
|
1886 |
|
1887 |
// If type is single then include more details
|
1888 |
$more_details_html = "";
|
1889 |
+
if ($args["type"] == "single") {
|
1890 |
|
1891 |
$more_details_html .= sprintf('<h2 class="SimpleHistoryLogitem__moreDetailsHeadline">%1$s</h2>', __("Context data", "simple-history"));
|
1892 |
+
$more_details_html .= "<p>" . __("This is potentially useful meta data that a logger has saved.", "simple-history") . "</p>";
|
1893 |
$more_details_html .= "<table class='SimpleHistoryLogitem__moreDetailsContext'>";
|
1894 |
$more_details_html .= sprintf(
|
1895 |
'<tr>
|
1903 |
foreach ($oneLogRow as $rowKey => $rowVal) {
|
1904 |
|
1905 |
// skip arrays and objects and such
|
1906 |
+
if (is_array($rowVal) || is_object($rowVal)) {
|
1907 |
continue;
|
1908 |
}
|
1909 |
|
1912 |
<td>%1$s</td>
|
1913 |
<td>%2$s</td>
|
1914 |
</tr>',
|
1915 |
+
esc_html($rowKey),
|
1916 |
+
esc_html($rowVal)
|
1917 |
);
|
1918 |
|
1919 |
}
|
1925 |
<td>%1$s</td>
|
1926 |
<td>%2$s</td>
|
1927 |
</tr>',
|
1928 |
+
esc_html($contextKey),
|
1929 |
+
esc_html($contextVal)
|
1930 |
);
|
1931 |
|
1932 |
}
|
1940 |
|
1941 |
}
|
1942 |
|
1943 |
+
// Classes to add to log item li element
|
1944 |
+
$classes = array(
|
1945 |
+
"SimpleHistoryLogitem",
|
1946 |
+
"SimpleHistoryLogitem--loglevel-{$oneLogRow->level}",
|
1947 |
+
"SimpleHistoryLogitem--logger-{$oneLogRow->logger}",
|
1948 |
+
);
|
1949 |
+
|
1950 |
if (isset($oneLogRow->initiator) && !empty($oneLogRow->initiator)) {
|
1951 |
+
$classes[] = "SimpleHistoryLogitem--initiator-" . esc_attr($oneLogRow->initiator);
|
1952 |
}
|
1953 |
|
|
|
|
|
|
|
|
|
|
|
1954 |
// Always append the log level tag
|
1955 |
$log_level_tag_html = sprintf(
|
1956 |
+
' <span class="SimpleHistoryLogitem--logleveltag SimpleHistoryLogitem--logleveltag-%1$s">%2$s</span>',
|
1957 |
+
$oneLogRow->level,
|
1958 |
+
$this->getLogLevelTranslated($oneLogRow->level)
|
1959 |
);
|
1960 |
|
1961 |
$plain_text_html .= $log_level_tag_html;
|
1962 |
|
1963 |
+
/**
|
1964 |
+
* Filter to modify classes added to item li element
|
1965 |
+
*
|
1966 |
+
* @since 2.0.7
|
1967 |
+
*
|
1968 |
+
* @param $classes Array with classes
|
1969 |
+
*/
|
1970 |
+
$classes = apply_filters("simple_history/logrowhtmloutput/classes", $classes);
|
1971 |
+
|
1972 |
// Generate the HTML output for a row
|
1973 |
$output = sprintf(
|
1974 |
'
|
1975 |
+
<li %8$s class="%10$s">
|
1976 |
<div class="SimpleHistoryLogitem__firstcol">
|
1977 |
<div class="SimpleHistoryLogitem__senderImage">%3$s</div>
|
1978 |
</div>
|
1994 |
$oneLogRow->logger, // 7
|
1995 |
$data_attrs, // 8 data attributes
|
1996 |
$more_details_html, // 9
|
1997 |
+
join(" ", $classes) // 10
|
1998 |
);
|
1999 |
|
2000 |
// Get the main message row.
|
2001 |
+
// Should be as plain as possible, like plain text
|
2002 |
// but with links to for example users and posts
|
2003 |
#SimpleLoggerFormatter::getRowTextOutput($oneLogRow);
|
2004 |
|
2010 |
|
2011 |
}
|
2012 |
|
2013 |
+
/**
|
2014 |
+
* Return translated loglevel
|
2015 |
+
*
|
2016 |
+
* @since 2.0.14
|
2017 |
+
* @param string $loglevel
|
2018 |
+
* @return string translated loglevel
|
2019 |
+
*/
|
2020 |
+
function getLogLevelTranslated($loglevel) {
|
2021 |
+
|
2022 |
+
$str_translated = "";
|
2023 |
+
|
2024 |
+
switch ($loglevel) {
|
2025 |
+
|
2026 |
+
// Lowercase
|
2027 |
+
case "emergency":
|
2028 |
+
$str_translated = _x("emergency", "Log level in gui", "simple-history");
|
2029 |
+
break;
|
2030 |
+
|
2031 |
+
case "alert":
|
2032 |
+
$str_translated = _x("alert", "Log level in gui", "simple-history");
|
2033 |
+
break;
|
2034 |
+
|
2035 |
+
case "critical":
|
2036 |
+
$str_translated = _x("critical", "Log level in gui", "simple-history");
|
2037 |
+
break;
|
2038 |
+
|
2039 |
+
case "error":
|
2040 |
+
$str_translated = _x("error", "Log level in gui", "simple-history");
|
2041 |
+
break;
|
2042 |
+
|
2043 |
+
case "warning":
|
2044 |
+
$str_translated = _x("warning", "Log level in gui", "simple-history");
|
2045 |
+
break;
|
2046 |
+
|
2047 |
+
case "notice":
|
2048 |
+
$str_translated = _x("notice", "Log level in gui", "simple-history");
|
2049 |
+
break;
|
2050 |
+
|
2051 |
+
case "info":
|
2052 |
+
$str_translated = _x("info", "Log level in gui", "simple-history");
|
2053 |
+
break;
|
2054 |
+
|
2055 |
+
case "debug":
|
2056 |
+
$str_translated = _x("debug", "Log level in gui", "simple-history");
|
2057 |
+
break;
|
2058 |
+
|
2059 |
+
// Uppercase
|
2060 |
+
case "Emergency":
|
2061 |
+
$str_translated = _x("Emergency", "Log level in gui", "simple-history");
|
2062 |
+
break;
|
2063 |
+
|
2064 |
+
case "Alert":
|
2065 |
+
$str_translated = _x("Alert", "Log level in gui", "simple-history");
|
2066 |
+
break;
|
2067 |
+
|
2068 |
+
case "Critical":
|
2069 |
+
$str_translated = _x("Critical", "Log level in gui", "simple-history");
|
2070 |
+
break;
|
2071 |
+
|
2072 |
+
case "Error":
|
2073 |
+
$str_translated = _x("Error", "Log level in gui", "simple-history");
|
2074 |
+
break;
|
2075 |
+
|
2076 |
+
case "Warning":
|
2077 |
+
$str_translated = _x("Warning", "Log level in gui", "simple-history");
|
2078 |
+
break;
|
2079 |
+
|
2080 |
+
case "Notice":
|
2081 |
+
$str_translated = _x("Notice", "Log level in gui", "simple-history");
|
2082 |
+
break;
|
2083 |
+
|
2084 |
+
case "Info":
|
2085 |
+
$str_translated = _x("Info", "Log level in gui", "simple-history");
|
2086 |
+
break;
|
2087 |
+
|
2088 |
+
case "Debug":
|
2089 |
+
$str_translated = _x("Debug", "Log level in gui", "simple-history");
|
2090 |
+
break;
|
2091 |
+
|
2092 |
+
default:
|
2093 |
+
$str_translated = $loglevel;
|
2094 |
+
|
2095 |
+
}
|
2096 |
+
|
2097 |
+
return $str_translated;
|
2098 |
+
|
2099 |
+
}
|
2100 |
+
|
2101 |
public function getInstantiatedLoggers() {
|
2102 |
|
2103 |
return $this->instantiatedLoggers;
|
2105 |
}
|
2106 |
|
2107 |
public function getInstantiatedLoggerBySlug($slug = "") {
|
2108 |
+
|
2109 |
+
if (empty($slug)) {
|
2110 |
return false;
|
2111 |
}
|
2112 |
+
|
2113 |
foreach ($this->getInstantiatedLoggers() as $one_logger) {
|
2114 |
+
|
2115 |
+
if ($slug == $one_logger["instance"]->slug) {
|
2116 |
return $one_logger["instance"];
|
2117 |
}
|
2118 |
|
2134 |
|
2135 |
$arr_loggers_user_can_view = array();
|
2136 |
|
2137 |
+
if (!is_numeric($user_id)) {
|
2138 |
$user_id = get_current_user_id();
|
2139 |
}
|
2140 |
|
2144 |
$logger_capability = $one_logger["instance"]->getCapability();
|
2145 |
|
2146 |
//$arr_loggers_user_can_view = apply_filters("simple_history/loggers_user_can_read", $user_id, $arr_loggers_user_can_view);
|
2147 |
+
$user_can_read_logger = user_can($user_id, $logger_capability);
|
2148 |
$user_can_read_logger = apply_filters("simple_history/loggers_user_can_read/can_read_single_logger", $user_can_read_logger, $one_logger["instance"], $user_id);
|
2149 |
|
2150 |
+
if ($user_can_read_logger) {
|
2151 |
$arr_loggers_user_can_view[] = $one_logger;
|
2152 |
}
|
2153 |
|
2154 |
}
|
2155 |
|
2156 |
/**
|
2157 |
+
* Fires before Simple History does it's init stuff
|
2158 |
+
*
|
2159 |
+
* @since 2.0
|
2160 |
+
*
|
2161 |
+
* @param array $arr_loggers_user_can_view Array with loggers that user $user_id can read
|
2162 |
+
* @param int user_id ID of user to check read capability for
|
2163 |
+
*/
|
2164 |
$arr_loggers_user_can_view = apply_filters("simple_history/loggers_user_can_read", $arr_loggers_user_can_view, $user_id);
|
2165 |
|
2166 |
// just return array with slugs in parenthesis suitable for sql-where
|
2167 |
+
if ("sql" == $format) {
|
2168 |
|
2169 |
$str_return = "(";
|
2170 |
+
|
2171 |
foreach ($arr_loggers_user_can_view as $one_logger) {
|
2172 |
+
|
2173 |
$str_return .= sprintf(
|
2174 |
'"%1$s", ',
|
2175 |
$one_logger["instance"]->slug
|
2176 |
);
|
2177 |
|
2178 |
}
|
2179 |
+
|
2180 |
$str_return = rtrim($str_return, " ,");
|
2181 |
$str_return .= ")";
|
2182 |
|
2184 |
|
2185 |
}
|
2186 |
|
|
|
2187 |
return $arr_loggers_user_can_view;
|
2188 |
|
2189 |
}
|
2190 |
|
2191 |
/**
|
2192 |
* Retrieve the avatar for a user who provided a user ID or email address.
|
2193 |
+
* A modified version of the function that comes with WordPress, but we
|
2194 |
* want to allow/show gravatars even if they are disabled in discussion settings
|
2195 |
*
|
2196 |
* @since 2.0
|
2200 |
* @param string $default URL to a default image to use if no avatar is available
|
2201 |
* @param string $alt Alternative text to use in image tag. Defaults to blank
|
2202 |
* @return string <img> tag for the user's avatar
|
2203 |
+
*/
|
2204 |
+
function get_avatar($email, $size = '96', $default = '', $alt = false) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2205 |
|
2206 |
+
// WP setting for avatars is to show, so just use the built in function
|
2207 |
+
if ( get_option('show_avatars') ) {
|
2208 |
|
2209 |
+
$avatar = get_avatar($email, $size, $default, $alt);
|
2210 |
+
|
2211 |
+
return $avatar;
|
|
|
|
|
|
|
|
|
|
|
2212 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2213 |
} else {
|
|
|
|
|
|
|
2214 |
|
2215 |
+
// WP setting for avatar was to not show, but we do it anyway, using the same code as get_avatar() would have used
|
2216 |
+
|
2217 |
+
if (false === $alt) {
|
2218 |
+
$safe_alt = '';
|
2219 |
+
} else {
|
2220 |
+
$safe_alt = esc_attr($alt);
|
2221 |
+
}
|
2222 |
+
|
2223 |
+
if (!is_numeric($size)) {
|
2224 |
+
$size = '96';
|
2225 |
+
}
|
2226 |
+
|
2227 |
+
if (empty($default)) {
|
2228 |
+
$avatar_default = get_option('avatar_default');
|
2229 |
+
if (empty($avatar_default)) {
|
2230 |
+
$default = 'mystery';
|
2231 |
+
} else {
|
2232 |
+
$default = $avatar_default;
|
2233 |
+
}
|
2234 |
+
|
2235 |
+
}
|
2236 |
+
|
2237 |
+
if (!empty($email)) {
|
2238 |
+
$email_hash = md5(strtolower(trim($email)));
|
2239 |
+
}
|
2240 |
+
|
2241 |
+
if (is_ssl()) {
|
2242 |
+
$host = 'https://secure.gravatar.com';
|
2243 |
+
} else {
|
2244 |
+
if (!empty($email)) {
|
2245 |
+
$host = sprintf("http://%d.gravatar.com", (hexdec($email_hash[0]) % 2));
|
2246 |
+
} else {
|
2247 |
+
$host = 'http://0.gravatar.com';
|
2248 |
+
}
|
2249 |
+
|
2250 |
+
}
|
2251 |
+
|
2252 |
+
if ('mystery' == $default) {
|
2253 |
+
$default = "$host/avatar/ad516503a11cd5ca435acc9bb6523536?s={$size}";
|
2254 |
+
}
|
2255 |
+
// ad516503a11cd5ca435acc9bb6523536 == md5('unknown@gravatar.com')
|
2256 |
+
elseif ('blank' == $default) {
|
2257 |
+
$default = $email ? 'blank' : includes_url('images/blank.gif');
|
2258 |
+
} elseif (!empty($email) && 'gravatar_default' == $default) {
|
2259 |
+
$default = '';
|
2260 |
+
} elseif ('gravatar_default' == $default) {
|
2261 |
+
$default = "$host/avatar/?s={$size}";
|
2262 |
+
} elseif (empty($email)) {
|
2263 |
+
$default = "$host/avatar/?d=$default&s={$size}";
|
2264 |
+
} elseif (strpos($default, 'http://') === 0) {
|
2265 |
+
$default = add_query_arg('s', $size, $default);
|
2266 |
+
}
|
2267 |
+
|
2268 |
+
if (!empty($email)) {
|
2269 |
+
$out = "$host/avatar/";
|
2270 |
+
$out .= $email_hash;
|
2271 |
+
$out .= '?s=' . $size;
|
2272 |
+
$out .= '&d=' . urlencode($default);
|
2273 |
+
|
2274 |
+
$rating = get_option('avatar_rating');
|
2275 |
+
if (!empty($rating)) {
|
2276 |
+
$out .= "&r={$rating}";
|
2277 |
+
}
|
2278 |
+
|
2279 |
+
$out = str_replace('&', '&', esc_url($out));
|
2280 |
+
$avatar = "<img alt='{$safe_alt}' src='{$out}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
|
2281 |
+
} else {
|
2282 |
+
$out = esc_url($default);
|
2283 |
+
$avatar = "<img alt='{$safe_alt}' src='{$out}' class='avatar avatar-{$size} photo avatar-default' height='{$size}' width='{$size}' />";
|
2284 |
+
}
|
2285 |
+
|
2286 |
+
/**
|
2287 |
+
* Filter the avatar to retrieve.
|
2288 |
+
* Same filter WordPress uses
|
2289 |
+
*
|
2290 |
+
* @since 2.0.19
|
2291 |
+
*
|
2292 |
+
* @param string $avatar Image tag for the user's avatar.
|
2293 |
+
* @param int|object|string $id_or_email A user ID, email address, or comment object.
|
2294 |
+
* @param int $size Square avatar width and height in pixels to retrieve.
|
2295 |
+
* @param string $alt Alternative text to use in the avatar image tag.
|
2296 |
+
* Default empty.
|
2297 |
+
*/
|
2298 |
+
$avatar = apply_filters( 'get_avatar', $avatar, $id_or_email, $size, $default, $alt );
|
2299 |
+
|
2300 |
+
return $avatar;
|
2301 |
+
|
2302 |
+
} // else
|
2303 |
+
|
2304 |
}
|
2305 |
|
2306 |
/**
|
2308 |
* Uses filter "simple_history/history_page/before_gui" to output its contents
|
2309 |
*/
|
2310 |
public function output_quick_stats() {
|
2311 |
+
|
2312 |
global $wpdb;
|
2313 |
|
2314 |
// Get number of events today
|
2315 |
$logQuery = new SimpleHistoryLogQuery();
|
2316 |
$logResults = $logQuery->query(array(
|
2317 |
"posts_per_page" => 1,
|
2318 |
+
"date_from" => strtotime("today"),
|
2319 |
));
|
2320 |
|
2321 |
+
$total_row_count = (int) $logResults["total_row_count"];
|
2322 |
+
|
2323 |
+
// Get sql query for where to read only loggers current user is allowed to read/view
|
2324 |
$sql_loggers_in = $this->getLoggersThatUserCanRead(get_current_user_id(), "sql");
|
2325 |
+
|
2326 |
+
// Get number of users today, i.e. events with wp_user as initiator
|
2327 |
$sql_users_today = sprintf('
|
2328 |
+
SELECT
|
2329 |
DISTINCT(c.value) AS user_id
|
2330 |
#h.id, h.logger, h.level, h.initiator, h.date
|
2331 |
FROM %3$s AS h
|
2332 |
+
INNER JOIN %4$s AS c
|
2333 |
ON c.history_id = h.id AND c.key = "_user_id"
|
2334 |
+
WHERE
|
2335 |
initiator = "wp_user"
|
2336 |
AND logger IN %1$s
|
2337 |
AND date > "%2$s"
|
2338 |
+
',
|
2339 |
$sql_loggers_in,
|
2340 |
date("Y-m-d H:i", strtotime("today")),
|
2341 |
$wpdb->prefix . SimpleHistory::DBTABLE,
|
2342 |
$wpdb->prefix . SimpleHistory::DBTABLE_CONTEXTS
|
2343 |
);
|
2344 |
|
2345 |
+
$cache_key = "quick_stats_users_today_" . md5( serialize( $sql_loggers_in ) );
|
2346 |
+
$cache_group = "simple-history-" . $this->get_cache_incrementor();
|
2347 |
+
$results_users_today = wp_cache_get($cache_key, $cache_group );
|
2348 |
+
|
2349 |
+
if ( false === $results_users_today ) {
|
2350 |
+
$results_users_today = $wpdb->get_results($sql_users_today);
|
2351 |
+
wp_cache_set($cache_key, $results_users_today, $cache_group );
|
2352 |
+
}
|
2353 |
+
|
2354 |
+
$count_users_today = sizeof( $results_users_today );
|
2355 |
+
|
2356 |
+
// Get number of other sources (not wp_user)
|
2357 |
+
$sql_other_sources_where = sprintf(
|
2358 |
+
'
|
2359 |
+
initiator <> "wp_user"
|
2360 |
+
AND logger IN %1$s
|
2361 |
+
AND date > "%2$s"
|
2362 |
+
',
|
2363 |
+
$sql_loggers_in,
|
2364 |
+
date("Y-m-d H:i", strtotime("today")),
|
2365 |
+
$wpdb->prefix . SimpleHistory::DBTABLE,
|
2366 |
+
$wpdb->prefix . SimpleHistory::DBTABLE_CONTEXTS
|
2367 |
+
);
|
2368 |
+
|
2369 |
+
$sql_other_sources_where = apply_filters("simple_history/quick_stats_where", $sql_other_sources_where);
|
2370 |
+
|
2371 |
+
$sql_other_sources = sprintf('
|
2372 |
+
SELECT
|
2373 |
+
DISTINCT(h.initiator) AS initiator
|
2374 |
+
FROM %3$s AS h
|
2375 |
+
WHERE
|
2376 |
+
%5$s
|
2377 |
+
',
|
2378 |
+
$sql_loggers_in,
|
2379 |
+
date("Y-m-d H:i", strtotime("today")),
|
2380 |
+
$wpdb->prefix . SimpleHistory::DBTABLE,
|
2381 |
+
$wpdb->prefix . SimpleHistory::DBTABLE_CONTEXTS,
|
2382 |
+
$sql_other_sources_where // 5
|
2383 |
+
);
|
2384 |
+
// sf_d($sql_other_sources, '$sql_other_sources');
|
2385 |
+
|
2386 |
+
$cache_key = "quick_stats_results_other_sources_today_" . md5( serialize($sql_other_sources) );
|
2387 |
+
$results_other_sources_today = wp_cache_get($cache_key, $cache_group);
|
2388 |
+
|
2389 |
+
if ( false === $results_other_sources_today ) {
|
2390 |
+
|
2391 |
+
$results_other_sources_today = $wpdb->get_results($sql_other_sources);
|
2392 |
+
wp_cache_set($cache_key, $results_other_sources_today, $cache_group);
|
2393 |
+
|
2394 |
+
}
|
2395 |
+
|
2396 |
+
$count_other_sources = sizeof($results_other_sources_today);
|
2397 |
+
|
2398 |
+
#sf_d($logResults, '$logResults');
|
2399 |
+
#sf_d($results_users_today, '$sql_users_today');
|
2400 |
+
#sf_d($results_other_sources_today, '$results_other_sources_today');
|
2401 |
+
|
2402 |
?>
|
2403 |
<div class="SimpleHistoryQuickStats">
|
2404 |
<p>
|
2405 |
<?php
|
2406 |
+
|
2407 |
$msg_tmpl = "";
|
2408 |
|
2409 |
+
// No results today at all
|
2410 |
+
if ( $total_row_count == 0 ) {
|
2411 |
+
|
2412 |
$msg_tmpl = __("No events today so far.", "simple-history");
|
2413 |
|
2414 |
+
} else {
|
2415 |
|
2416 |
+
/*
|
2417 |
+
Type of results
|
2418 |
+
x1 event today from 1 user.
|
2419 |
+
x1 event today from 1 source.
|
2420 |
+
3 events today from 1 user.
|
2421 |
+
x2 events today from 2 users.
|
2422 |
+
x2 events today from 1 user and 1 other source.
|
2423 |
+
x3 events today from 2 users and 1 other source.
|
2424 |
+
x3 events today from 1 user and 2 other sources.
|
2425 |
+
x4 events today from 2 users and 2 other sources.
|
2426 |
+
*/
|
2427 |
+
|
2428 |
+
// A single event existed and was from a user
|
2429 |
+
// 1 event today from 1 user.
|
2430 |
+
if ( $total_row_count == 1 && $count_users_today == 1 ) {
|
2431 |
+
$msg_tmpl .= __('One event today from one user.', "simple-history");
|
2432 |
+
}
|
2433 |
|
2434 |
+
// A single event existed and was from another source
|
2435 |
+
// 1 event today from 1 source.
|
2436 |
+
if ( $total_row_count == 1 && !$count_users_today ) {
|
2437 |
+
$msg_tmpl .= __('One event today from one source.', "simple-history");
|
2438 |
+
}
|
2439 |
|
2440 |
+
// Multiple events from a single user
|
2441 |
+
// 3 events today from one user.
|
2442 |
+
if ( $total_row_count > 1 && $count_users_today == 1 && !$count_other_sources ) {
|
2443 |
+
$msg_tmpl .= __('%1$d events today from one user.', "simple-history");
|
2444 |
+
}
|
2445 |
|
2446 |
+
// Multiple events from only users
|
2447 |
+
// 2 events today from 2 users.
|
2448 |
+
if ( $total_row_count > 1 && $count_users_today == $total_row_count ) {
|
2449 |
+
$msg_tmpl .= __('%1$d events today from %2$d users.', "simple-history");
|
2450 |
+
}
|
2451 |
+
|
2452 |
+
// Multiple events from 1 single user and 1 single other source
|
2453 |
+
// 2 events today from 1 user and 1 other source.
|
2454 |
+
if ( $total_row_count && 1 == $count_users_today && 1 == $count_other_sources ) {
|
2455 |
+
$msg_tmpl .= __('%1$d events today from one user and one other source.', "simple-history");
|
2456 |
+
}
|
2457 |
+
|
2458 |
+
// Multiple events from multple users but from only 1 single other source
|
2459 |
+
// 3 events today from 2 users and 1 other source.
|
2460 |
+
if ( $total_row_count > 1 && $count_users_today > 1 && $count_other_sources == 1 ) {
|
2461 |
+
$msg_tmpl .= __('%1$d events today from one user and one other source.', "simple-history");
|
2462 |
+
}
|
2463 |
+
|
2464 |
+
// Multiple events from 1 user but from multiple other source
|
2465 |
+
// 3 events today from 1 user and 2 other sources.
|
2466 |
+
if ( $total_row_count > 1 && 1 == $count_users_today && $count_other_sources > 1 ) {
|
2467 |
+
$msg_tmpl .= __('%1$d events today from one user and %3$d other sources.', "simple-history");
|
2468 |
+
}
|
2469 |
+
|
2470 |
+
// Multiple events from multiple user and from multiple other sources
|
2471 |
+
// 4 events today from 2 users and 2 other sources.
|
2472 |
+
if ( $total_row_count > 1 && $count_users_today > 1 && $count_other_sources > 1 ) {
|
2473 |
+
$msg_tmpl .= __('%1$s events today from %2$d users and %3$d other sources.', "simple-history");
|
2474 |
+
}
|
2475 |
|
2476 |
}
|
2477 |
|
2480 |
|
2481 |
printf(
|
2482 |
$msg_tmpl,
|
2483 |
+
$logResults["total_row_count"], // 1
|
2484 |
+
$count_users_today, // 2
|
2485 |
+
$count_other_sources // 3
|
2486 |
);
|
2487 |
|
2488 |
// Space between texts
|
2489 |
/*
|
2490 |
+
echo " ";
|
2491 |
|
2492 |
+
// http://playground-root.ep/wp-admin/options-general.php?page=simple_history_settings_menu_slug&selected-tab=stats
|
2493 |
+
printf(
|
2494 |
+
'<a href="%1$s">View more stats</a>.',
|
2495 |
+
add_query_arg("selected-tab", "stats", menu_page_url(SimpleHistory::SETTINGS_MENU_SLUG, 0))
|
2496 |
+
);
|
2497 |
+
*/
|
2498 |
|
2499 |
}
|
2500 |
+
|
2501 |
?>
|
2502 |
</p>
|
2503 |
+
</div>
|
2504 |
<?php
|
2505 |
|
2506 |
+
} // output_quick_stats
|
2507 |
+
|
2508 |
+
/**
|
2509 |
+
* https://www.tollmanz.com/invalidation-schemes/
|
2510 |
+
*
|
2511 |
+
* @param $refresh bool
|
2512 |
+
* @return string
|
2513 |
+
*/
|
2514 |
+
public static function get_cache_incrementor( $refresh = false ) {
|
2515 |
+
|
2516 |
+
$incrementor_key = 'simple_history_incrementor';
|
2517 |
+
$incrementor_value = wp_cache_get( $incrementor_key );
|
2518 |
+
|
2519 |
+
if ( false === $incrementor_value || true === $refresh ) {
|
2520 |
+
$incrementor_value = time();
|
2521 |
+
wp_cache_set( $incrementor_key, $incrementor_value );
|
2522 |
+
}
|
2523 |
+
|
2524 |
+
//echo "<br>incrementor_value: $incrementor_value";
|
2525 |
+
return $incrementor_value;
|
2526 |
+
|
2527 |
}
|
2528 |
|
2529 |
} // class
|
2530 |
|
2531 |
+
|
2532 |
+
/**
|
2533 |
+
* Helper function with same name as the SimpleLogger-class
|
2534 |
+
*
|
2535 |
+
* Makes call like this possible:
|
2536 |
+
* SimpleLogger()->info("This is a message sent to the log");
|
2537 |
+
*/
|
2538 |
+
function SimpleLogger() {
|
2539 |
+
return new SimpleLogger( SimpleHistory::get_instance() );
|
2540 |
+
}
|
2541 |
+
|
2542 |
+
|
2543 |
+
/**
|
2544 |
+
* Add event to history table
|
2545 |
+
* This is here for backwards compatibility
|
2546 |
+
* If you use this please consider using
|
2547 |
+
* SimpleHistory()->info();
|
2548 |
+
* instead
|
2549 |
+
*/
|
2550 |
+
function simple_history_add($args) {
|
2551 |
+
|
2552 |
+
$defaults = array(
|
2553 |
+
"action" => null,
|
2554 |
+
"object_type" => null,
|
2555 |
+
"object_subtype" => null,
|
2556 |
+
"object_id" => null,
|
2557 |
+
"object_name" => null,
|
2558 |
+
"user_id" => null,
|
2559 |
+
"description" => null
|
2560 |
+
);
|
2561 |
+
|
2562 |
+
$context = wp_parse_args( $args, $defaults );
|
2563 |
+
|
2564 |
+
$message = "{$context["object_type"]} {$context["object_name"]} {$context["action"]}";
|
2565 |
+
|
2566 |
+
SimpleLogger()->info($message, $context);
|
2567 |
+
|
2568 |
+
} // simple_history_add
|
SimpleHistoryLogQuery.php → inc/SimpleHistoryLogQuery.php
RENAMED
@@ -70,6 +70,14 @@ class SimpleHistoryLogQuery {
|
|
70 |
$args = wp_parse_args( $args, $defaults );
|
71 |
// sf_d($args, "Run log query with args");
|
72 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
/*
|
74 |
Subequent occasions query thanks to this Stack Overflow thread:
|
75 |
http://stackoverflow.com/questions/13566303/how-to-group-subsequent-rows-based-on-a-criteria-and-then-count-them-mysql/13567320#13567320
|
@@ -150,7 +158,7 @@ class SimpleHistoryLogQuery {
|
|
150 |
%2$s
|
151 |
';
|
152 |
|
153 |
-
$sh =
|
154 |
|
155 |
// Only include loggers that the current user can view
|
156 |
$sql_loggers_user_can_view = $sh->getLoggersThatUserCanRead(get_current_user_id(), "sql");
|
@@ -734,6 +742,8 @@ class SimpleHistoryLogQuery {
|
|
734 |
|
735 |
#sf_d($arr_return, '$arr_return');exit;
|
736 |
|
|
|
|
|
737 |
return $arr_return;
|
738 |
|
739 |
} // query
|
70 |
$args = wp_parse_args( $args, $defaults );
|
71 |
// sf_d($args, "Run log query with args");
|
72 |
|
73 |
+
$cache_key = "SimpleHistoryLogQuery_" . md5(serialize( $args )) . "_get_" . md5(serialize( $_GET )) . "_userid_" . get_current_user_id();
|
74 |
+
$cache_group = "simple-history-" . SimpleHistory::get_cache_incrementor();
|
75 |
+
$arr_return = wp_cache_get($cache_key, $cache_group);
|
76 |
+
|
77 |
+
if ( false !== $arr_return ) {
|
78 |
+
return $arr_return;
|
79 |
+
}
|
80 |
+
|
81 |
/*
|
82 |
Subequent occasions query thanks to this Stack Overflow thread:
|
83 |
http://stackoverflow.com/questions/13566303/how-to-group-subsequent-rows-based-on-a-criteria-and-then-count-them-mysql/13567320#13567320
|
158 |
%2$s
|
159 |
';
|
160 |
|
161 |
+
$sh = SimpleHistory::get_instance();
|
162 |
|
163 |
// Only include loggers that the current user can view
|
164 |
$sql_loggers_user_can_view = $sh->getLoggersThatUserCanRead(get_current_user_id(), "sql");
|
742 |
|
743 |
#sf_d($arr_return, '$arr_return');exit;
|
744 |
|
745 |
+
wp_cache_set($cache_key, $arr_return, $cache_group);
|
746 |
+
|
747 |
return $arr_return;
|
748 |
|
749 |
} // query
|
index.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Simple History
|
4 |
Plugin URI: http://simple-history.com
|
5 |
Description: Plugin that logs various things that occur in WordPress and then presents those events in a very nice GUI.
|
6 |
-
Version: 2.0.
|
7 |
Author: Pär Thernström
|
8 |
Author URI: http://simple-history.com/
|
9 |
License: GPL2
|
@@ -12,7 +12,7 @@ License: GPL2
|
|
12 |
/* Copyright 2014 Pär Thernström (email: par.thernstrom@gmail.com)
|
13 |
|
14 |
This program is free software; you can redistribute it and/or modify
|
15 |
-
it under the terms of the GNU General Public License, version 2, as
|
16 |
published by the Free Software Foundation.
|
17 |
|
18 |
This program is distributed in the hope that it will be useful,
|
@@ -25,13 +25,15 @@ License: GPL2
|
|
25 |
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
26 |
*/
|
27 |
|
|
|
|
|
|
|
28 |
|
29 |
if ( version_compare( phpversion(), "5.3", ">=") ) {
|
30 |
-
|
31 |
/** Load required files */
|
32 |
-
require_once(__DIR__ . "/SimpleHistory.php");
|
33 |
-
require_once(__DIR__ . "/SimpleHistoryLogQuery.php");
|
34 |
-
require_once(__DIR__ . "/SimpleHistoryFunctions.php");
|
35 |
|
36 |
/**
|
37 |
* Register function that is called when plugin is installed
|
@@ -41,70 +43,26 @@ if ( version_compare( phpversion(), "5.3", ">=") ) {
|
|
41 |
// register_activation_hook( trailingslashit(WP_PLUGIN_DIR) . trailingslashit( plugin_basename(__DIR__) ) . "index.php" , array("SimpleHistory", "on_plugin_activate" ) );
|
42 |
|
43 |
/** Boot up */
|
44 |
-
|
45 |
|
46 |
} else {
|
47 |
-
|
48 |
// user is running to old version of php, add admin notice about that
|
49 |
-
add_action( 'admin_notices', 'simple_history_old_version_admin_notice' );
|
50 |
|
51 |
function simple_history_old_version_admin_notice() {
|
52 |
?>
|
53 |
<div class="updated error">
|
54 |
-
<p><?php
|
55 |
-
printf(
|
56 |
-
__( 'Simple History is a great plugin, but to use it your server must have at least PHP 5.3 installed (you have version %s).', 'simple-history' ),
|
57 |
-
phpversion()
|
58 |
-
);
|
59 |
?></p>
|
60 |
</div>
|
61 |
-
<?php
|
62 |
-
}
|
63 |
-
|
64 |
-
}
|
65 |
-
|
66 |
-
// Test log cron things
|
67 |
-
/*
|
68 |
-
wp_schedule_event( time(), "hourly", "simple_history_cron_testhook");
|
69 |
-
*/
|
70 |
-
/*
|
71 |
-
wp_clear_scheduled_hook("simple_history_cron_testhook");
|
72 |
-
add_action( 'simple_history_cron_testhook', 'simple_history_cron_testhook_function' );
|
73 |
-
function simple_history_cron_testhook_function() {
|
74 |
-
SimpleLogger()->info("This is a message inside a cron function");
|
75 |
-
}
|
76 |
-
*/
|
77 |
-
|
78 |
-
/*
|
79 |
-
add_action("init", function() {
|
80 |
-
|
81 |
-
global $wp_current_filter;
|
82 |
-
|
83 |
-
$doing_cron = get_transient( 'doing_cron' );
|
84 |
-
$const_doing_cron = defined('DOING_CRON') && DOING_CRON;
|
85 |
-
|
86 |
-
if ($const_doing_cron) {
|
87 |
-
|
88 |
-
$current_filter = current_filter();
|
89 |
-
|
90 |
-
SimpleLogger()->info("This is a message inside init, trying to log crons", array(
|
91 |
-
"doing_cron" => simpleHistory::json_encode($doing_cron),
|
92 |
-
"current_filter" => $current_filter,
|
93 |
-
"wp_current_filter" => $wp_current_filter,
|
94 |
-
"wp_current_filter" => simpleHistory::json_encode( $wp_current_filter ),
|
95 |
-
"const_doing_cron" => simpleHistory::json_encode($const_doing_cron)
|
96 |
-
));
|
97 |
|
98 |
}
|
99 |
|
100 |
-
}
|
101 |
-
*/
|
102 |
-
|
103 |
-
|
104 |
-
/*
|
105 |
-
add_action("init", function() {
|
106 |
-
|
107 |
-
#SimpleLogger()->info("This is a regular info message" . time());
|
108 |
|
109 |
-
}, 100);
|
110 |
-
// */
|
3 |
Plugin Name: Simple History
|
4 |
Plugin URI: http://simple-history.com
|
5 |
Description: Plugin that logs various things that occur in WordPress and then presents those events in a very nice GUI.
|
6 |
+
Version: 2.0.22
|
7 |
Author: Pär Thernström
|
8 |
Author URI: http://simple-history.com/
|
9 |
License: GPL2
|
12 |
/* Copyright 2014 Pär Thernström (email: par.thernstrom@gmail.com)
|
13 |
|
14 |
This program is free software; you can redistribute it and/or modify
|
15 |
+
it under the terms of the GNU General Public License, version 2, as
|
16 |
published by the Free Software Foundation.
|
17 |
|
18 |
This program is distributed in the hope that it will be useful,
|
25 |
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
26 |
*/
|
27 |
|
28 |
+
if ( ! defined( 'WPINC' ) ) {
|
29 |
+
die;
|
30 |
+
}
|
31 |
|
32 |
if ( version_compare( phpversion(), "5.3", ">=") ) {
|
33 |
+
|
34 |
/** Load required files */
|
35 |
+
require_once(__DIR__ . "/inc/SimpleHistory.php");
|
36 |
+
require_once(__DIR__ . "/inc/SimpleHistoryLogQuery.php");
|
|
|
37 |
|
38 |
/**
|
39 |
* Register function that is called when plugin is installed
|
43 |
// register_activation_hook( trailingslashit(WP_PLUGIN_DIR) . trailingslashit( plugin_basename(__DIR__) ) . "index.php" , array("SimpleHistory", "on_plugin_activate" ) );
|
44 |
|
45 |
/** Boot up */
|
46 |
+
SimpleHistory::get_instance();
|
47 |
|
48 |
} else {
|
49 |
+
|
50 |
// user is running to old version of php, add admin notice about that
|
51 |
+
add_action( 'admin_notices', 'simple_history_old_version_admin_notice' );
|
52 |
|
53 |
function simple_history_old_version_admin_notice() {
|
54 |
?>
|
55 |
<div class="updated error">
|
56 |
+
<p><?php
|
57 |
+
printf(
|
58 |
+
__( 'Simple History is a great plugin, but to use it your server must have at least PHP 5.3 installed (you have version %s).', 'simple-history' ),
|
59 |
+
phpversion()
|
60 |
+
);
|
61 |
?></p>
|
62 |
</div>
|
63 |
+
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
|
65 |
}
|
66 |
|
67 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
|
|
|
|
js/scripts.js
CHANGED
@@ -7,15 +7,15 @@ var simple_history = (function($) {
|
|
7 |
var debug = function(what) {
|
8 |
|
9 |
if (typeof what == "object") {
|
10 |
-
|
11 |
var newWhat = "";
|
12 |
-
|
13 |
_.each(what, function(val, key) {
|
14 |
newWhat += key + ": " + val + "\n";
|
15 |
});
|
16 |
-
|
17 |
what = newWhat;
|
18 |
-
|
19 |
}
|
20 |
|
21 |
$(".SimpleHistoryLogitems__debug").append("<br>" + what);
|
@@ -168,9 +168,9 @@ var simple_history = (function($) {
|
|
168 |
var logRowID = this.attributes.logRow.data("rowId");
|
169 |
var occasionsCount = this.attributes.logRow.data("occasionsCount");
|
170 |
var occasionsID = this.attributes.logRow.data("occasionsId");
|
171 |
-
|
172 |
this.attributes.logRow.addClass("SimpleHistoryLogitem--occasionsOpening");
|
173 |
-
|
174 |
this.logRows = new OccasionsLogRowsCollection([], {
|
175 |
logRow: this.attributes.logRow,
|
176 |
logRowID: logRowID,
|
@@ -188,9 +188,9 @@ var simple_history = (function($) {
|
|
188 |
},
|
189 |
|
190 |
render: function() {
|
191 |
-
|
192 |
var $html = $([]);
|
193 |
-
|
194 |
this.logRows.each(function(model) {
|
195 |
var $li = $(model.get("html"));
|
196 |
$li.addClass("SimpleHistoryLogitem--occasion");
|
@@ -198,7 +198,7 @@ var simple_history = (function($) {
|
|
198 |
});
|
199 |
|
200 |
this.$el.html($html);
|
201 |
-
|
202 |
this.attributes.logRow.removeClass("SimpleHistoryLogitem--occasionsOpening").addClass("SimpleHistoryLogitem--occasionsOpened");
|
203 |
|
204 |
this.$el.addClass("haveOccasionsAdded");
|
@@ -226,7 +226,7 @@ var simple_history = (function($) {
|
|
226 |
|
227 |
this.template = $("#tmpl-simple-history-logitems-modal").html();
|
228 |
this.show();
|
229 |
-
|
230 |
this.listenTo(this.model, "change", this.render);
|
231 |
|
232 |
// also close on esc
|
@@ -247,14 +247,14 @@ var simple_history = (function($) {
|
|
247 |
show: function() {
|
248 |
|
249 |
var $modalEl = $(".SimpleHistory-modal");
|
250 |
-
|
251 |
if (!$modalEl.length) {
|
252 |
$modalEl = $(this.template);
|
253 |
$modalEl.appendTo("body");
|
254 |
}
|
255 |
|
256 |
this.setElement($modalEl);
|
257 |
-
|
258 |
var $modalContentEl = $modalEl.find(".SimpleHistory-modal__content");
|
259 |
$modalContentEl.addClass("SimpleHistory-modal__content--enter");
|
260 |
|
@@ -265,13 +265,13 @@ var simple_history = (function($) {
|
|
265 |
},
|
266 |
|
267 |
close: function() {
|
268 |
-
|
269 |
var $modalContentEl = this.$el.find(".SimpleHistory-modal__content");
|
270 |
$modalContentEl.addClass("SimpleHistory-modal__content--leave");
|
271 |
-
|
272 |
// Force repaint before adding active class
|
273 |
var offsetHeight = $modalContentEl.get(0).offsetHeight;
|
274 |
-
|
275 |
$modalContentEl.addClass("SimpleHistory-modal__content--leave-active");
|
276 |
this.$el.addClass("SimpleHistory-modal__leave-active");
|
277 |
|
@@ -287,7 +287,7 @@ var simple_history = (function($) {
|
|
287 |
},
|
288 |
|
289 |
render: function() {
|
290 |
-
|
291 |
var $modalContentInnerEl = this.$el.find(".SimpleHistory-modal__contentInner");
|
292 |
var logRowLI = this.model.get("data").log_rows[0];
|
293 |
$modalContentInnerEl.html(logRowLI);
|
@@ -297,9 +297,9 @@ var simple_history = (function($) {
|
|
297 |
});
|
298 |
|
299 |
var RowsView = Backbone.View.extend({
|
300 |
-
|
301 |
initialize: function() {
|
302 |
-
|
303 |
this.collection.on("reset", this.render, this);
|
304 |
this.collection.on("reload", this.onReload, this);
|
305 |
this.collection.on("reloadDone", this.onReloadDone, this);
|
@@ -313,6 +313,8 @@ var simple_history = (function($) {
|
|
313 |
|
314 |
onReload: function() {
|
315 |
|
|
|
|
|
316 |
$("html").addClass("SimpleHistory-isLoadingPage");
|
317 |
|
318 |
},
|
@@ -326,7 +328,7 @@ var simple_history = (function($) {
|
|
326 |
// Add message if no hits
|
327 |
$mainViewElm.removeClass("SimpleHistory--hasNoHits");
|
328 |
if (! this.collection.length ) {
|
329 |
-
|
330 |
$mainViewElm.addClass("SimpleHistory--hasNoHits");
|
331 |
|
332 |
var noHitsClass = "SimpleHistoryLogitems__noHits";
|
@@ -342,7 +344,7 @@ var simple_history = (function($) {
|
|
342 |
;
|
343 |
|
344 |
} // add msg
|
345 |
-
|
346 |
},
|
347 |
|
348 |
events: {
|
@@ -363,7 +365,7 @@ var simple_history = (function($) {
|
|
363 |
var $target = $(e.target);
|
364 |
var $logRow = $target.closest(".SimpleHistoryLogitem");
|
365 |
var logRowID = $logRow.data("rowId");
|
366 |
-
|
367 |
Backbone.history.navigate("item/" + logRowID, { trigger: true });
|
368 |
|
369 |
},
|
@@ -375,7 +377,7 @@ var simple_history = (function($) {
|
|
375 |
var $target = $(e.target);
|
376 |
var $logRow = $target.closest(".SimpleHistoryLogitem");
|
377 |
var $occasionsElm = $("<li class='SimpleHistoryLogitem__occasionsItemsWrap'><ul class='SimpleHistoryLogitem__occasionsItems'/></li>");
|
378 |
-
|
379 |
$logRow.after($occasionsElm);
|
380 |
|
381 |
this.occasionsView = new OccasionsView({
|
@@ -393,7 +395,7 @@ var simple_history = (function($) {
|
|
393 |
this.collection.each(function(model) {
|
394 |
html += model.get("html");
|
395 |
});
|
396 |
-
|
397 |
this.$el.html( html );
|
398 |
|
399 |
// Rendering of log rows items is done
|
@@ -406,8 +408,6 @@ var simple_history = (function($) {
|
|
406 |
var PaginationView = Backbone.View.extend({
|
407 |
|
408 |
initialize: function() {
|
409 |
-
|
410 |
-
this.template = $("#tmpl-simple-history-logitems-pagination").html();
|
411 |
|
412 |
$(document).keydown({ view: this }, this.keyboardNav);
|
413 |
|
@@ -433,6 +433,12 @@ var simple_history = (function($) {
|
|
433 |
return;
|
434 |
}
|
435 |
|
|
|
|
|
|
|
|
|
|
|
|
|
436 |
var paged;
|
437 |
|
438 |
if (e.keyCode == 37) {
|
@@ -453,7 +459,7 @@ var simple_history = (function($) {
|
|
453 |
|
454 |
// keycode 13 = enter
|
455 |
if (e.keyCode == 13) {
|
456 |
-
|
457 |
var $target = $(e.target);
|
458 |
var paged = parseInt( $target.val() );
|
459 |
|
@@ -473,7 +479,7 @@ var simple_history = (function($) {
|
|
473 |
},
|
474 |
|
475 |
navigateArrow: function(e) {
|
476 |
-
|
477 |
e.preventDefault();
|
478 |
var $target = $(e.target);
|
479 |
|
@@ -507,7 +513,7 @@ var simple_history = (function($) {
|
|
507 |
}
|
508 |
|
509 |
this.fetchPage(paged);
|
510 |
-
|
511 |
},
|
512 |
|
513 |
/**
|
@@ -516,6 +522,8 @@ var simple_history = (function($) {
|
|
516 |
*/
|
517 |
fetchPage: function(paged) {
|
518 |
|
|
|
|
|
519 |
$("html").addClass("SimpleHistory-isLoadingPage");
|
520 |
|
521 |
var url_data = {
|
@@ -543,8 +551,8 @@ var simple_history = (function($) {
|
|
543 |
|
544 |
render: function() {
|
545 |
|
546 |
-
var compiled =
|
547 |
-
|
548 |
this.$el.html( compiled({
|
549 |
min_id: this.collection.min_id,
|
550 |
max_id: this.collection.max_id,
|
@@ -561,7 +569,7 @@ var simple_history = (function($) {
|
|
561 |
});
|
562 |
|
563 |
var MainView = Backbone.View.extend({
|
564 |
-
|
565 |
el: ".SimpleHistoryGui",
|
566 |
|
567 |
initialize: function() {
|
@@ -583,7 +591,7 @@ var simple_history = (function($) {
|
|
583 |
this.logRowsCollection = new LogRowsCollection([], {
|
584 |
mainView: this,
|
585 |
});
|
586 |
-
|
587 |
this.rowsView = new RowsView({
|
588 |
el: this.$el.find(".SimpleHistoryLogitems"),
|
589 |
collection: this.logRowsCollection
|
@@ -629,7 +637,7 @@ var simple_history = (function($) {
|
|
629 |
},
|
630 |
|
631 |
item: function(logRowID) {
|
632 |
-
|
633 |
var detailsModel = new DetailsModel({
|
634 |
id: logRowID
|
635 |
});
|
@@ -653,9 +661,9 @@ var simple_history = (function($) {
|
|
653 |
// Init MainView on domReady
|
654 |
// This is to make sure dropins and plugins have been loaded
|
655 |
$(document).ready(function() {
|
656 |
-
|
657 |
mainView.manualInitialize();
|
658 |
-
|
659 |
});
|
660 |
|
661 |
return mainView;
|
@@ -663,7 +671,7 @@ var simple_history = (function($) {
|
|
663 |
})(jQuery);
|
664 |
|
665 |
jQuery(".js-SimpleHistory-Settings-ClearLog").on("click", function(e) {
|
666 |
-
|
667 |
if (confirm(simple_history_script_vars.settingsConfirmClearLog)) {
|
668 |
return;
|
669 |
} else {
|
@@ -671,4 +679,3 @@ jQuery(".js-SimpleHistory-Settings-ClearLog").on("click", function(e) {
|
|
671 |
}
|
672 |
|
673 |
});
|
674 |
-
|
7 |
var debug = function(what) {
|
8 |
|
9 |
if (typeof what == "object") {
|
10 |
+
|
11 |
var newWhat = "";
|
12 |
+
|
13 |
_.each(what, function(val, key) {
|
14 |
newWhat += key + ": " + val + "\n";
|
15 |
});
|
16 |
+
|
17 |
what = newWhat;
|
18 |
+
|
19 |
}
|
20 |
|
21 |
$(".SimpleHistoryLogitems__debug").append("<br>" + what);
|
168 |
var logRowID = this.attributes.logRow.data("rowId");
|
169 |
var occasionsCount = this.attributes.logRow.data("occasionsCount");
|
170 |
var occasionsID = this.attributes.logRow.data("occasionsId");
|
171 |
+
|
172 |
this.attributes.logRow.addClass("SimpleHistoryLogitem--occasionsOpening");
|
173 |
+
|
174 |
this.logRows = new OccasionsLogRowsCollection([], {
|
175 |
logRow: this.attributes.logRow,
|
176 |
logRowID: logRowID,
|
188 |
},
|
189 |
|
190 |
render: function() {
|
191 |
+
|
192 |
var $html = $([]);
|
193 |
+
|
194 |
this.logRows.each(function(model) {
|
195 |
var $li = $(model.get("html"));
|
196 |
$li.addClass("SimpleHistoryLogitem--occasion");
|
198 |
});
|
199 |
|
200 |
this.$el.html($html);
|
201 |
+
|
202 |
this.attributes.logRow.removeClass("SimpleHistoryLogitem--occasionsOpening").addClass("SimpleHistoryLogitem--occasionsOpened");
|
203 |
|
204 |
this.$el.addClass("haveOccasionsAdded");
|
226 |
|
227 |
this.template = $("#tmpl-simple-history-logitems-modal").html();
|
228 |
this.show();
|
229 |
+
|
230 |
this.listenTo(this.model, "change", this.render);
|
231 |
|
232 |
// also close on esc
|
247 |
show: function() {
|
248 |
|
249 |
var $modalEl = $(".SimpleHistory-modal");
|
250 |
+
|
251 |
if (!$modalEl.length) {
|
252 |
$modalEl = $(this.template);
|
253 |
$modalEl.appendTo("body");
|
254 |
}
|
255 |
|
256 |
this.setElement($modalEl);
|
257 |
+
|
258 |
var $modalContentEl = $modalEl.find(".SimpleHistory-modal__content");
|
259 |
$modalContentEl.addClass("SimpleHistory-modal__content--enter");
|
260 |
|
265 |
},
|
266 |
|
267 |
close: function() {
|
268 |
+
|
269 |
var $modalContentEl = this.$el.find(".SimpleHistory-modal__content");
|
270 |
$modalContentEl.addClass("SimpleHistory-modal__content--leave");
|
271 |
+
|
272 |
// Force repaint before adding active class
|
273 |
var offsetHeight = $modalContentEl.get(0).offsetHeight;
|
274 |
+
|
275 |
$modalContentEl.addClass("SimpleHistory-modal__content--leave-active");
|
276 |
this.$el.addClass("SimpleHistory-modal__leave-active");
|
277 |
|
287 |
},
|
288 |
|
289 |
render: function() {
|
290 |
+
|
291 |
var $modalContentInnerEl = this.$el.find(".SimpleHistory-modal__contentInner");
|
292 |
var logRowLI = this.model.get("data").log_rows[0];
|
293 |
$modalContentInnerEl.html(logRowLI);
|
297 |
});
|
298 |
|
299 |
var RowsView = Backbone.View.extend({
|
300 |
+
|
301 |
initialize: function() {
|
302 |
+
|
303 |
this.collection.on("reset", this.render, this);
|
304 |
this.collection.on("reload", this.onReload, this);
|
305 |
this.collection.on("reloadDone", this.onReloadDone, this);
|
313 |
|
314 |
onReload: function() {
|
315 |
|
316 |
+
$(document).trigger("SimpleHistory:logReloadStart");
|
317 |
+
|
318 |
$("html").addClass("SimpleHistory-isLoadingPage");
|
319 |
|
320 |
},
|
328 |
// Add message if no hits
|
329 |
$mainViewElm.removeClass("SimpleHistory--hasNoHits");
|
330 |
if (! this.collection.length ) {
|
331 |
+
|
332 |
$mainViewElm.addClass("SimpleHistory--hasNoHits");
|
333 |
|
334 |
var noHitsClass = "SimpleHistoryLogitems__noHits";
|
344 |
;
|
345 |
|
346 |
} // add msg
|
347 |
+
|
348 |
},
|
349 |
|
350 |
events: {
|
365 |
var $target = $(e.target);
|
366 |
var $logRow = $target.closest(".SimpleHistoryLogitem");
|
367 |
var logRowID = $logRow.data("rowId");
|
368 |
+
|
369 |
Backbone.history.navigate("item/" + logRowID, { trigger: true });
|
370 |
|
371 |
},
|
377 |
var $target = $(e.target);
|
378 |
var $logRow = $target.closest(".SimpleHistoryLogitem");
|
379 |
var $occasionsElm = $("<li class='SimpleHistoryLogitem__occasionsItemsWrap'><ul class='SimpleHistoryLogitem__occasionsItems'/></li>");
|
380 |
+
|
381 |
$logRow.after($occasionsElm);
|
382 |
|
383 |
this.occasionsView = new OccasionsView({
|
395 |
this.collection.each(function(model) {
|
396 |
html += model.get("html");
|
397 |
});
|
398 |
+
|
399 |
this.$el.html( html );
|
400 |
|
401 |
// Rendering of log rows items is done
|
408 |
var PaginationView = Backbone.View.extend({
|
409 |
|
410 |
initialize: function() {
|
|
|
|
|
411 |
|
412 |
$(document).keydown({ view: this }, this.keyboardNav);
|
413 |
|
433 |
return;
|
434 |
}
|
435 |
|
436 |
+
// Don't nav away if a text input (like the search box) is selected
|
437 |
+
var $target = $(e.target);
|
438 |
+
if ($target.is("input")) {
|
439 |
+
return;
|
440 |
+
}
|
441 |
+
|
442 |
var paged;
|
443 |
|
444 |
if (e.keyCode == 37) {
|
459 |
|
460 |
// keycode 13 = enter
|
461 |
if (e.keyCode == 13) {
|
462 |
+
|
463 |
var $target = $(e.target);
|
464 |
var paged = parseInt( $target.val() );
|
465 |
|
479 |
},
|
480 |
|
481 |
navigateArrow: function(e) {
|
482 |
+
|
483 |
e.preventDefault();
|
484 |
var $target = $(e.target);
|
485 |
|
513 |
}
|
514 |
|
515 |
this.fetchPage(paged);
|
516 |
+
|
517 |
},
|
518 |
|
519 |
/**
|
522 |
*/
|
523 |
fetchPage: function(paged) {
|
524 |
|
525 |
+
$(document).trigger("SimpleHistory:logReloadStart");
|
526 |
+
|
527 |
$("html").addClass("SimpleHistory-isLoadingPage");
|
528 |
|
529 |
var url_data = {
|
551 |
|
552 |
render: function() {
|
553 |
|
554 |
+
var compiled = wp.template("simple-history-logitems-pagination");
|
555 |
+
|
556 |
this.$el.html( compiled({
|
557 |
min_id: this.collection.min_id,
|
558 |
max_id: this.collection.max_id,
|
569 |
});
|
570 |
|
571 |
var MainView = Backbone.View.extend({
|
572 |
+
|
573 |
el: ".SimpleHistoryGui",
|
574 |
|
575 |
initialize: function() {
|
591 |
this.logRowsCollection = new LogRowsCollection([], {
|
592 |
mainView: this,
|
593 |
});
|
594 |
+
|
595 |
this.rowsView = new RowsView({
|
596 |
el: this.$el.find(".SimpleHistoryLogitems"),
|
597 |
collection: this.logRowsCollection
|
637 |
},
|
638 |
|
639 |
item: function(logRowID) {
|
640 |
+
|
641 |
var detailsModel = new DetailsModel({
|
642 |
id: logRowID
|
643 |
});
|
661 |
// Init MainView on domReady
|
662 |
// This is to make sure dropins and plugins have been loaded
|
663 |
$(document).ready(function() {
|
664 |
+
|
665 |
mainView.manualInitialize();
|
666 |
+
|
667 |
});
|
668 |
|
669 |
return mainView;
|
671 |
})(jQuery);
|
672 |
|
673 |
jQuery(".js-SimpleHistory-Settings-ClearLog").on("click", function(e) {
|
674 |
+
|
675 |
if (confirm(simple_history_script_vars.settingsConfirmClearLog)) {
|
676 |
return;
|
677 |
} else {
|
679 |
}
|
680 |
|
681 |
});
|
|
languages/simple-history-da_DK.mo
ADDED
Binary file
|
languages/simple-history-da_DK.po
ADDED
@@ -0,0 +1,1790 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: Simple History v2.0.12\n"
|
4 |
+
"Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/Simple-History\n"
|
5 |
+
"POT-Creation-Date: 2015-01-26 15:41:57+00:00\n"
|
6 |
+
"PO-Revision-Date: 2015-02-03 08:47+0100\n"
|
7 |
+
"Last-Translator: Thomas Blomberg Hansen <thomas@blomberg.it>\n"
|
8 |
+
"Language-Team: \n"
|
9 |
+
"Language: da_DK\n"
|
10 |
+
"MIME-Version: 1.0\n"
|
11 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
12 |
+
"Content-Transfer-Encoding: 8bit\n"
|
13 |
+
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
14 |
+
"X-Generator: Poedit 1.7.1\n"
|
15 |
+
"X-Poedit-SourceCharset: utf-8\n"
|
16 |
+
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
|
17 |
+
"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
|
18 |
+
"X-Poedit-Basepath: ../\n"
|
19 |
+
"X-Textdomain-Support: yes\n"
|
20 |
+
"X-Poedit-SearchPath-0: .\n"
|
21 |
+
|
22 |
+
# @ simple-history
|
23 |
+
#: SimpleHistory.php:504 SimpleHistory.php:765
|
24 |
+
msgid "Settings"
|
25 |
+
msgstr "Indstillinger"
|
26 |
+
|
27 |
+
# @ simple-history
|
28 |
+
#: SimpleHistory.php:515
|
29 |
+
msgid "Log (debug)"
|
30 |
+
msgstr "Log (debug)"
|
31 |
+
|
32 |
+
# @ simple-history
|
33 |
+
#: SimpleHistory.php:520
|
34 |
+
msgid "Styles example (debug)"
|
35 |
+
msgstr "Styles eksempel (debug)"
|
36 |
+
|
37 |
+
# @ simple-history
|
38 |
+
#. Plugin Name of the plugin/theme
|
39 |
+
#: SimpleHistory.php:780
|
40 |
+
msgid "Simple History"
|
41 |
+
msgstr "Simpel historik"
|
42 |
+
|
43 |
+
# @ simple-history
|
44 |
+
#: SimpleHistory.php:856
|
45 |
+
msgid "Remove all log items?"
|
46 |
+
msgstr "Fjern alle log elementer?"
|
47 |
+
|
48 |
+
# @ simple-history
|
49 |
+
#: SimpleHistory.php:858
|
50 |
+
msgid "Go to the first page"
|
51 |
+
msgstr "Gå til den første side"
|
52 |
+
|
53 |
+
# @ simple-history
|
54 |
+
#: SimpleHistory.php:859
|
55 |
+
msgid "Go to the previous page"
|
56 |
+
msgstr "Gå til den forrige side"
|
57 |
+
|
58 |
+
# @ simple-history
|
59 |
+
#: SimpleHistory.php:860
|
60 |
+
msgid "Go to the next page"
|
61 |
+
msgstr "Gå til den næste side"
|
62 |
+
|
63 |
+
# @ simple-history
|
64 |
+
#: SimpleHistory.php:861
|
65 |
+
msgid "Go to the last page"
|
66 |
+
msgstr "Gå til den sidste side"
|
67 |
+
|
68 |
+
# @ simple-history
|
69 |
+
#: SimpleHistory.php:862
|
70 |
+
msgid "Current page"
|
71 |
+
msgstr "Nuværende side"
|
72 |
+
|
73 |
+
# @ simple-history
|
74 |
+
#: SimpleHistory.php:864
|
75 |
+
msgid "Oups, the log could not be loaded right now."
|
76 |
+
msgstr "Ups, loggen kunne ikke indlæses lige nu."
|
77 |
+
|
78 |
+
# @ simple-history
|
79 |
+
#: SimpleHistory.php:865
|
80 |
+
msgid "Your search did not match any history events."
|
81 |
+
msgstr "Din søgning gav ingen resultater."
|
82 |
+
|
83 |
+
# @ simple-history
|
84 |
+
#: SimpleHistory.php:1149 SimpleHistory.php:1250
|
85 |
+
msgid "Simple History Settings"
|
86 |
+
msgstr "Simpel Historik opsætning"
|
87 |
+
|
88 |
+
# @ simple-history
|
89 |
+
#: SimpleHistory.php:1183
|
90 |
+
msgid "No valid callback found"
|
91 |
+
msgstr "Ingen gyldig callback fundet "
|
92 |
+
|
93 |
+
# @ simple-history
|
94 |
+
#: SimpleHistory.php:1271
|
95 |
+
msgid "Cleared database"
|
96 |
+
msgstr "Nulstillet database"
|
97 |
+
|
98 |
+
# @ simple-history
|
99 |
+
#: SimpleHistory.php:1298
|
100 |
+
msgid "Show history"
|
101 |
+
msgstr "Vis historik"
|
102 |
+
|
103 |
+
# @ simple-history
|
104 |
+
#: SimpleHistory.php:1311
|
105 |
+
msgid "Number of items per page"
|
106 |
+
msgstr "Antal elementer pr. side"
|
107 |
+
|
108 |
+
# @ simple-history
|
109 |
+
#: SimpleHistory.php:1323
|
110 |
+
msgid "Clear log"
|
111 |
+
msgstr "Nulstil log"
|
112 |
+
|
113 |
+
# @ simple-history
|
114 |
+
#: SimpleHistory.php:1462
|
115 |
+
msgid "on the dashboard"
|
116 |
+
msgstr "på kontrolpanelet"
|
117 |
+
|
118 |
+
# @ simple-history
|
119 |
+
#: SimpleHistory.php:1467
|
120 |
+
msgid "as a page under the dashboard menu"
|
121 |
+
msgstr "som et undermenupunkt til Kontrolpanelet "
|
122 |
+
|
123 |
+
# @ simple-history
|
124 |
+
#: SimpleHistory.php:1483
|
125 |
+
msgid "Items in the database are automatically removed after %1$s days."
|
126 |
+
msgstr "Elementer i databasen fjernes automatisk efter %1$s dage."
|
127 |
+
|
128 |
+
# @ simple-history
|
129 |
+
#: SimpleHistory.php:1485
|
130 |
+
msgid "Items in the database are kept forever."
|
131 |
+
msgstr "Elementer i databasen gemmes for evigt."
|
132 |
+
|
133 |
+
# @ simple-history
|
134 |
+
#: SimpleHistory.php:1489
|
135 |
+
msgid "Clear log now"
|
136 |
+
msgstr "Nulstil log nu"
|
137 |
+
|
138 |
+
#: SimpleHistory.php:1533
|
139 |
+
msgid "The log for Simple History was cleared ({num_rows} rows were removed)."
|
140 |
+
msgstr ""
|
141 |
+
"Loggen for Simple Historik blev nulstillet ({num_rows} rækker blev fjernet)."
|
142 |
+
|
143 |
+
#: SimpleHistory.php:1793
|
144 |
+
msgid "+%1$s similar event"
|
145 |
+
msgid_plural "+%1$s similar events"
|
146 |
+
msgstr[0] "+%1$s tilsvarende event"
|
147 |
+
msgstr[1] "+%1$s tilsvarende events"
|
148 |
+
|
149 |
+
# @ simple-history
|
150 |
+
#: SimpleHistory.php:1800
|
151 |
+
msgid "Loading…"
|
152 |
+
msgstr "Indlæser..."
|
153 |
+
|
154 |
+
# @ simple-history
|
155 |
+
#: SimpleHistory.php:1807
|
156 |
+
msgid "Showing %1$s more"
|
157 |
+
msgstr "%1$s flere vises"
|
158 |
+
|
159 |
+
# @ simple-history
|
160 |
+
#: SimpleHistory.php:1826
|
161 |
+
msgid "Context data"
|
162 |
+
msgstr "Kontekst data"
|
163 |
+
|
164 |
+
# @ simple-history
|
165 |
+
#: SimpleHistory.php:1827
|
166 |
+
msgid "This is potentially useful meta data that a logger has saved."
|
167 |
+
msgstr "Dette er potentielt brugbar meta data, som en logger har gemt."
|
168 |
+
|
169 |
+
# @ simple-history
|
170 |
+
#: SimpleHistory.php:2302
|
171 |
+
msgid "No events today so far."
|
172 |
+
msgstr "Endnu ingen events i dag."
|
173 |
+
|
174 |
+
#: SimpleHistory.php:2321
|
175 |
+
msgid "One event today from one user."
|
176 |
+
msgstr "Et event i dag, fra én bruger."
|
177 |
+
|
178 |
+
#: SimpleHistory.php:2327
|
179 |
+
msgid "One event today from one source."
|
180 |
+
msgstr "Et event i dag, fra én kilde"
|
181 |
+
|
182 |
+
# @ simple-history
|
183 |
+
#: SimpleHistory.php:2333
|
184 |
+
msgid "%1$d events today from one user."
|
185 |
+
msgstr "%1$d events i dag fra én bruger."
|
186 |
+
|
187 |
+
# @ simple-history
|
188 |
+
#: SimpleHistory.php:2339
|
189 |
+
msgid "%1$d events today from %2$d users."
|
190 |
+
msgstr "%1$d events i dag fra %2$d brugere."
|
191 |
+
|
192 |
+
#: SimpleHistory.php:2345 SimpleHistory.php:2351
|
193 |
+
msgid "%1$d events today from one user and one other source."
|
194 |
+
msgstr "%1$d events i dag, fra én bruger og én kilde"
|
195 |
+
|
196 |
+
#: SimpleHistory.php:2357
|
197 |
+
msgid "%1$d events today from one user and %3$d other sources."
|
198 |
+
msgstr "%1$d events i dag, fra én bruger og %3$d kilder."
|
199 |
+
|
200 |
+
#: SimpleHistory.php:2363
|
201 |
+
msgid "%1$s events today from %2$d users and %3$d other sources."
|
202 |
+
msgstr "%1$s events i dag, fra %2$d brugere og %3$d kilder."
|
203 |
+
|
204 |
+
# @ simple-history
|
205 |
+
#: dropins/SimpleHistoryDonateDropin.php:36
|
206 |
+
msgid "Donate"
|
207 |
+
msgstr "Donér"
|
208 |
+
|
209 |
+
# @ simple-history
|
210 |
+
#: dropins/SimpleHistoryDonateDropin.php:72
|
211 |
+
msgid ""
|
212 |
+
"If you find Simple History useful please <a href=\"%1$s\">donate</a> or <a "
|
213 |
+
"href=\"%2$s\">buy me something from my Amazon wish list</a>."
|
214 |
+
msgstr ""
|
215 |
+
"Hvis du synes Simpel Historik er brugbar, så kan du <a href=\"%1$s\">donére</"
|
216 |
+
"a> eller <a href=\"%2$s\">købe noget til mig på min Amazon wish list</a>."
|
217 |
+
|
218 |
+
# @ simple-history
|
219 |
+
#: dropins/SimpleHistoryFilterDropin.php:44
|
220 |
+
msgid "Filter history"
|
221 |
+
msgstr "Filtrer historik"
|
222 |
+
|
223 |
+
#: dropins/SimpleHistoryFilterDropin.php:48
|
224 |
+
#: dropins/SimpleHistoryFilterDropin.php:159
|
225 |
+
msgid "Search events"
|
226 |
+
msgstr "Søg i events"
|
227 |
+
|
228 |
+
# @ simple-history
|
229 |
+
#: dropins/SimpleHistoryFilterDropin.php:56
|
230 |
+
msgid "All log levels"
|
231 |
+
msgstr "Alle log niveauer"
|
232 |
+
|
233 |
+
# @ simple-history
|
234 |
+
#: dropins/SimpleHistoryFilterDropin.php:70
|
235 |
+
msgid "All messages"
|
236 |
+
msgstr "Alle beskeder"
|
237 |
+
|
238 |
+
# @ simple-history
|
239 |
+
#: dropins/SimpleHistoryFilterDropin.php:124
|
240 |
+
msgid "All users"
|
241 |
+
msgstr "Alle brugere"
|
242 |
+
|
243 |
+
# @ simple-history
|
244 |
+
#: dropins/SimpleHistoryFilterDropin.php:145
|
245 |
+
msgid "All dates"
|
246 |
+
msgstr "Alle datoer"
|
247 |
+
|
248 |
+
#: dropins/SimpleHistoryFilterDropin.php:168
|
249 |
+
msgid "Search"
|
250 |
+
msgstr "Søg"
|
251 |
+
|
252 |
+
# @ simple-history
|
253 |
+
#: dropins/SimpleHistoryNewRowsNotifier.php:80
|
254 |
+
msgid "1 new row"
|
255 |
+
msgid_plural "%d new rows"
|
256 |
+
msgstr[0] "1 ny række"
|
257 |
+
msgstr[1] "%d nye rækker"
|
258 |
+
|
259 |
+
# @ simple-history
|
260 |
+
#: dropins/SimpleHistoryRSSDropin.php:55
|
261 |
+
msgid "Address"
|
262 |
+
msgstr "Adresse"
|
263 |
+
|
264 |
+
# @ simple-history
|
265 |
+
#: dropins/SimpleHistoryRSSDropin.php:64
|
266 |
+
msgid "Regenerate"
|
267 |
+
msgstr "Regenerere"
|
268 |
+
|
269 |
+
# @ simple-history
|
270 |
+
#: dropins/SimpleHistoryRSSDropin.php:81
|
271 |
+
msgid "Created new secret RSS address"
|
272 |
+
msgstr "Oprettet ny RSS url"
|
273 |
+
|
274 |
+
# @ simple-history
|
275 |
+
#: dropins/SimpleHistoryRSSDropin.php:148
|
276 |
+
#: dropins/SimpleHistoryRSSDropin.php:259
|
277 |
+
msgid "History for %s"
|
278 |
+
msgstr "Historik fra %s"
|
279 |
+
|
280 |
+
# @ simple-history
|
281 |
+
#: dropins/SimpleHistoryRSSDropin.php:149
|
282 |
+
#: dropins/SimpleHistoryRSSDropin.php:260
|
283 |
+
msgid "WordPress History for %s"
|
284 |
+
msgstr "WordPress historik fra %s"
|
285 |
+
|
286 |
+
# begivenhed er måske ikke det rigtige ord.
|
287 |
+
#: dropins/SimpleHistoryRSSDropin.php:196
|
288 |
+
msgid "+%1$s occasion"
|
289 |
+
msgid_plural "+%1$s occasions"
|
290 |
+
msgstr[0] "+%1$s begivenhed"
|
291 |
+
msgstr[1] "+%1$s begivenheder"
|
292 |
+
|
293 |
+
# @ simple-history
|
294 |
+
#: dropins/SimpleHistoryRSSDropin.php:263
|
295 |
+
msgid "Wrong RSS secret"
|
296 |
+
msgstr "Forkert RSS nøgle"
|
297 |
+
|
298 |
+
# @ simple-history
|
299 |
+
#: dropins/SimpleHistoryRSSDropin.php:264
|
300 |
+
msgid ""
|
301 |
+
"Your RSS secret for Simple History RSS feed is wrong. Please see WordPress "
|
302 |
+
"settings for current link to the RSS feed."
|
303 |
+
msgstr ""
|
304 |
+
"Din RSS nøgle i Simpel Historik RSS feed'et er forkert. Du kan finde den "
|
305 |
+
"rigtige url under Indstillinger -> Simpel Historik."
|
306 |
+
|
307 |
+
# @ simple-history
|
308 |
+
#: dropins/SimpleHistoryRSSDropin.php:315
|
309 |
+
msgid ""
|
310 |
+
"You can generate a new address for the RSS feed. This is useful if you think "
|
311 |
+
"that the address has fallen into the wrong hands."
|
312 |
+
msgstr ""
|
313 |
+
"Du kan generere en ny RSS feed url. Dette kan være nyttigt, hvis du "
|
314 |
+
"mistænker at url'en er faldet i de forkerte hænder."
|
315 |
+
|
316 |
+
# @ simple-history
|
317 |
+
#: dropins/SimpleHistoryRSSDropin.php:318
|
318 |
+
msgid "Generate new address"
|
319 |
+
msgstr "Generere ny url"
|
320 |
+
|
321 |
+
# @ simple-history
|
322 |
+
#: dropins/SimpleHistoryRSSDropin.php:346
|
323 |
+
msgid ""
|
324 |
+
"Simple History has a RSS feed which you can subscribe to and receive log "
|
325 |
+
"updates. Make sure you only share the feed with people you trust, since it "
|
326 |
+
"can contain sensitive or confidential information."
|
327 |
+
msgstr ""
|
328 |
+
"Simpel Historik har et RSS feed, som du kan abonnere på og modtage log "
|
329 |
+
"opdateringer. Del kun dette feed med personer du stoler på, da det kan "
|
330 |
+
"indeholde følsomme eller fortrolige informationer."
|
331 |
+
|
332 |
+
# @ simple-history
|
333 |
+
#: dropins/SimpleHistorySettingsLogtestDropin.php:20
|
334 |
+
msgid "Test data (debug)"
|
335 |
+
msgstr "Test data (debug)"
|
336 |
+
|
337 |
+
# @ simple-history
|
338 |
+
#: dropins/SimpleHistorySettingsStatsDropin.php:27
|
339 |
+
msgid "Stats"
|
340 |
+
msgstr "Statistik"
|
341 |
+
|
342 |
+
# @ simple-history
|
343 |
+
#: dropins/SimpleHistorySidebarDropin.php:159 loggers/SimpleLogger.php:296
|
344 |
+
msgid "Just now"
|
345 |
+
msgstr "Lige nu"
|
346 |
+
|
347 |
+
# @ simple-history
|
348 |
+
#: index.php:59
|
349 |
+
msgid ""
|
350 |
+
"Simple History is a great plugin, but to use it your server must have at "
|
351 |
+
"least PHP 5.3 installed (you have version %s)."
|
352 |
+
msgstr ""
|
353 |
+
"Simpel Historik er et fantastisk plugin, men for at bruge det, skal din "
|
354 |
+
"server have PHP 5.3 eller nyere installeret (din server har version %s "
|
355 |
+
"installeret)."
|
356 |
+
|
357 |
+
# @ simple-history
|
358 |
+
#: loggers/SimpleCommentsLogger.php:685
|
359 |
+
msgid "Spam"
|
360 |
+
msgstr "Spam"
|
361 |
+
|
362 |
+
# @ simple-history
|
363 |
+
#: loggers/SimpleCommentsLogger.php:687
|
364 |
+
msgid "Approved"
|
365 |
+
msgstr "Godkendt"
|
366 |
+
|
367 |
+
# @ simple-history
|
368 |
+
#: loggers/SimpleCommentsLogger.php:689
|
369 |
+
msgid "Pending"
|
370 |
+
msgstr "Afventer"
|
371 |
+
|
372 |
+
# @ simple-history
|
373 |
+
#: loggers/SimpleCommentsLogger.php:703
|
374 |
+
msgid "Trackback"
|
375 |
+
msgstr "Trackback"
|
376 |
+
|
377 |
+
# @ simple-history
|
378 |
+
#: loggers/SimpleCommentsLogger.php:705
|
379 |
+
msgid "Pingback"
|
380 |
+
msgstr "Pingback"
|
381 |
+
|
382 |
+
# @ simple-history
|
383 |
+
#: loggers/SimpleCommentsLogger.php:707
|
384 |
+
msgid "Comment"
|
385 |
+
msgstr "Kommentar"
|
386 |
+
|
387 |
+
# @ simple-history
|
388 |
+
#: loggers/SimpleCoreUpdatesLogger.php:29
|
389 |
+
msgid "Updated WordPress from {prev_version} to {new_version}"
|
390 |
+
msgstr "Opdaterede WordPress fra {prev_version} til {new_version}"
|
391 |
+
|
392 |
+
# @ simple-history
|
393 |
+
#: loggers/SimpleCoreUpdatesLogger.php:30
|
394 |
+
msgid "WordPress auto-updated from {prev_version} to {new_version}"
|
395 |
+
msgstr "WordPress auto-opdaterede fra {prev_version} til {new_version}"
|
396 |
+
|
397 |
+
# @ simple-history
|
398 |
+
#: loggers/SimpleExportLogger.php:23
|
399 |
+
msgid "Created XML export"
|
400 |
+
msgstr "Genereret XML eksport"
|
401 |
+
|
402 |
+
# @ simple-history
|
403 |
+
#: loggers/SimpleLegacyLogger.php:88
|
404 |
+
msgid "By %s"
|
405 |
+
msgstr "af %s"
|
406 |
+
|
407 |
+
# @ simple-history
|
408 |
+
#: loggers/SimpleLegacyLogger.php:93
|
409 |
+
msgid "%d occasions"
|
410 |
+
msgstr "%d begivenheder"
|
411 |
+
|
412 |
+
# @ simple-history
|
413 |
+
#: loggers/SimpleLogger.php:203
|
414 |
+
msgid "Deleted user (had id %1$s, email %2$s, login %3$s)"
|
415 |
+
msgstr "Slettet bruger (havde ID %1$s, E-mail %2$s, brugernavn %3$s)"
|
416 |
+
|
417 |
+
# @ simple-history
|
418 |
+
#: loggers/SimpleLogger.php:218
|
419 |
+
msgid "Anonymous web user"
|
420 |
+
msgstr "Anonym besøgende"
|
421 |
+
|
422 |
+
# @ simple-history
|
423 |
+
#: loggers/SimpleLogger.php:226
|
424 |
+
msgid "Anonymous user from %1$s"
|
425 |
+
msgstr "Anonym bruger fra %1$s"
|
426 |
+
|
427 |
+
# @ simple-history
|
428 |
+
#. translators: Date format for log row header, see http:php.net/date
|
429 |
+
#: loggers/SimpleLogger.php:301
|
430 |
+
msgid "M j, Y \\a\\t G:i"
|
431 |
+
msgstr "j. F Y \\k\\l\\. H:i"
|
432 |
+
|
433 |
+
# @ simple-history
|
434 |
+
#. translators: 1: last modified date and time in human time diff-format
|
435 |
+
#: loggers/SimpleLogger.php:309
|
436 |
+
msgid "%1$s ago"
|
437 |
+
msgstr "%1$s siden"
|
438 |
+
|
439 |
+
# @ simple-history
|
440 |
+
#: loggers/SimpleMediaLogger.php:23
|
441 |
+
msgid "Created {post_type} \"{attachment_title}\""
|
442 |
+
msgstr "Tilføjet {post_type} \"{attachment_title}\""
|
443 |
+
|
444 |
+
# @ simple-history
|
445 |
+
#: loggers/SimpleMediaLogger.php:24
|
446 |
+
msgid "Edited {post_type} \"{attachment_title}\""
|
447 |
+
msgstr "Redigeret {post_type} \"{attachment_title}\""
|
448 |
+
|
449 |
+
# @ simple-history
|
450 |
+
#: loggers/SimpleMediaLogger.php:25
|
451 |
+
msgid "Deleted {post_type} \"{attachment_title}\" (\"{attachment_filename}\")"
|
452 |
+
msgstr "Slettet {post_type} \"{attachment_title}\" (\"{attachment_filename}\")"
|
453 |
+
|
454 |
+
# @ simple-history
|
455 |
+
#: loggers/SimpleMediaLogger.php:81
|
456 |
+
msgid "Edited {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
|
457 |
+
msgstr ""
|
458 |
+
"Redigeret {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
|
459 |
+
|
460 |
+
# @ simple-history
|
461 |
+
#: loggers/SimpleMediaLogger.php:85
|
462 |
+
msgid "Uploaded {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
|
463 |
+
msgstr ""
|
464 |
+
"Uploadet {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
|
465 |
+
|
466 |
+
# @ simple-history
|
467 |
+
#: loggers/SimpleMediaLogger.php:197
|
468 |
+
msgid "{attachment_thumb}"
|
469 |
+
msgstr "{attachment_thumb}"
|
470 |
+
|
471 |
+
# @ simple-history
|
472 |
+
#: loggers/SimpleMediaLogger.php:206
|
473 |
+
msgid "{attachment_size_format}"
|
474 |
+
msgstr "{attachment_size_format}"
|
475 |
+
|
476 |
+
# @ simple-history
|
477 |
+
#: loggers/SimpleMediaLogger.php:207
|
478 |
+
msgid "{attachment_filetype_extension}"
|
479 |
+
msgstr "{attachment_filetype_extension}"
|
480 |
+
|
481 |
+
# @ simple-history
|
482 |
+
#: loggers/SimpleMediaLogger.php:209
|
483 |
+
msgid "{full_image_width} × {full_image_height}"
|
484 |
+
msgstr "{full_image_width} × {full_image_height}"
|
485 |
+
|
486 |
+
# @ simple-history
|
487 |
+
#: loggers/SimpleMenuLogger.php:23
|
488 |
+
msgid "Created menu \"{menu_name}\""
|
489 |
+
msgstr "Tilføjet menu \"{menu_name}\""
|
490 |
+
|
491 |
+
# @ simple-history
|
492 |
+
#: loggers/SimpleMenuLogger.php:24
|
493 |
+
msgid "Edited menu \"{menu_name}\""
|
494 |
+
msgstr "Redigeret menu \"{menu_name}\""
|
495 |
+
|
496 |
+
# @ simple-history
|
497 |
+
#: loggers/SimpleMenuLogger.php:25
|
498 |
+
msgid "Deleted menu \"{menu_name}\""
|
499 |
+
msgstr "Slettet menu \"{menu_name}\""
|
500 |
+
|
501 |
+
# @ simple-history
|
502 |
+
#: loggers/SimpleMenuLogger.php:26
|
503 |
+
msgid "Edited a menu item"
|
504 |
+
msgstr "Redigerede et menupunkt "
|
505 |
+
|
506 |
+
# @ simple-history
|
507 |
+
#: loggers/SimpleMenuLogger.php:27
|
508 |
+
msgid "Updated menu locations"
|
509 |
+
msgstr "Opdateret menu områder"
|
510 |
+
|
511 |
+
# @ simple-history
|
512 |
+
#: loggers/SimpleOptionsLogger.php:140
|
513 |
+
msgid "Updated option \"{option}\""
|
514 |
+
msgstr "Opdateret indstlling \"{option}\""
|
515 |
+
|
516 |
+
# @ simple-history
|
517 |
+
#: loggers/SimpleOptionsLogger.php:242 loggers/SimpleThemeLogger.php:570
|
518 |
+
msgid "New value"
|
519 |
+
msgstr "Ny værdi"
|
520 |
+
|
521 |
+
# @ simple-history
|
522 |
+
#: loggers/SimpleOptionsLogger.php:253 loggers/SimpleThemeLogger.php:582
|
523 |
+
msgid "Old value"
|
524 |
+
msgstr "Gammel værdi"
|
525 |
+
|
526 |
+
# @ simple-history
|
527 |
+
#: loggers/SimpleOptionsLogger.php:268 loggers/SimpleOptionsLogger.php:285
|
528 |
+
msgid "Settings page"
|
529 |
+
msgstr "Indstillinger side"
|
530 |
+
|
531 |
+
# @ simple-history
|
532 |
+
#: loggers/SimplePostLogger.php:30
|
533 |
+
msgid "Created {post_type} \"{post_title}\""
|
534 |
+
msgstr "Tilføjet {post_type} \"{post_title}\""
|
535 |
+
|
536 |
+
# @ simple-history
|
537 |
+
#: loggers/SimplePostLogger.php:31
|
538 |
+
msgid "Updated {post_type} \"{post_title}\""
|
539 |
+
msgstr "Opdaterede {post_type} \"{post_title}\""
|
540 |
+
|
541 |
+
# @ simple-history
|
542 |
+
#: loggers/SimplePostLogger.php:32
|
543 |
+
msgid "Restored {post_type} \"{post_title}\" from trash"
|
544 |
+
msgstr "Gendannede {post_type} \"{post_title}\" fra papirkurven"
|
545 |
+
|
546 |
+
# @ simple-history
|
547 |
+
#: loggers/SimplePostLogger.php:33 loggers/SimplePostLogger.php:236
|
548 |
+
msgid "Deleted {post_type} \"{post_title}\""
|
549 |
+
msgstr "Slettede {post_type} \"{post_title}\""
|
550 |
+
|
551 |
+
# @ simple-history
|
552 |
+
#: loggers/SimplePostLogger.php:34
|
553 |
+
msgid "Moved {post_type} \"{post_title}\" to the trash"
|
554 |
+
msgstr "Flyttede {post_type} \"{post_title}\" til papirkurven"
|
555 |
+
|
556 |
+
# @ simple-history
|
557 |
+
#: loggers/SimplePostLogger.php:232
|
558 |
+
msgid "Updated {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a>"
|
559 |
+
msgstr "Opdaterede {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a>"
|
560 |
+
|
561 |
+
# @ simple-history
|
562 |
+
#: loggers/SimplePostLogger.php:240
|
563 |
+
msgid "Created {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a>"
|
564 |
+
msgstr "Tilføjede {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a>"
|
565 |
+
|
566 |
+
# @ simple-history
|
567 |
+
#: loggers/SimplePostLogger.php:245
|
568 |
+
msgid ""
|
569 |
+
"Moved {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a> to the trash"
|
570 |
+
msgstr ""
|
571 |
+
"Flyttede {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a> til "
|
572 |
+
"papirkurven"
|
573 |
+
|
574 |
+
# @ simple-history
|
575 |
+
#: loggers/SimpleThemeLogger.php:26
|
576 |
+
msgid "Switched theme to \"{theme_name}\" from \"{prev_theme_name}\""
|
577 |
+
msgstr "Skiftede tema til \"{theme_name}\" from \"{prev_theme_name}\""
|
578 |
+
|
579 |
+
# @ simple-history
|
580 |
+
#: loggers/SimpleThemeLogger.php:27
|
581 |
+
msgid "Customized theme appearance \"{setting_id}\""
|
582 |
+
msgstr "Tilpassede tema udseende \"{setting_id}\""
|
583 |
+
|
584 |
+
# @ simple-history
|
585 |
+
#: loggers/SimpleThemeLogger.php:28
|
586 |
+
msgid "Removed widget \"{widget_id_base}\" from sidebar \"{sidebar_id}\""
|
587 |
+
msgstr "Fjernede widget \"{widget_id_base}\" fra sidebar \"{sidebar_id}\""
|
588 |
+
|
589 |
+
# @ simple-history
|
590 |
+
#: loggers/SimpleThemeLogger.php:29
|
591 |
+
msgid "Added widget \"{widget_id_base}\" to sidebar \"{sidebar_id}\""
|
592 |
+
msgstr "Tilføjede widget \"{widget_id_base}\" to sidebar \"{sidebar_id}\""
|
593 |
+
|
594 |
+
# @ simple-history
|
595 |
+
#: loggers/SimpleThemeLogger.php:30
|
596 |
+
msgid "Changed widget order \"{widget_id_base}\" in sidebar \"{sidebar_id}\""
|
597 |
+
msgstr ""
|
598 |
+
"Ændrede widget rækkefølge \"{widget_id_base}\" i sidebar \"{sidebar_id}\""
|
599 |
+
|
600 |
+
# @ simple-history
|
601 |
+
#: loggers/SimpleThemeLogger.php:31
|
602 |
+
msgid "Changed widget \"{widget_id_base}\" in sidebar \"{sidebar_id}\""
|
603 |
+
msgstr "Ændrede widget \"{widget_id_base}\" i sidebar \"{sidebar_id}\""
|
604 |
+
|
605 |
+
# @ simple-history
|
606 |
+
#: loggers/SimpleThemeLogger.php:32
|
607 |
+
msgid "Changed settings for the theme custom background"
|
608 |
+
msgstr "Ændrede tema baggrund"
|
609 |
+
|
610 |
+
# @ simple-history
|
611 |
+
#: loggers/SimpleThemeLogger.php:532
|
612 |
+
msgid "Section"
|
613 |
+
msgstr "Sektion"
|
614 |
+
|
615 |
+
# @ simple-history
|
616 |
+
#: loggers/SimpleUserLogger.php:22
|
617 |
+
msgid ""
|
618 |
+
"Failed to login to account with username \"{login_user_login}\" because an "
|
619 |
+
"incorrect password was entered"
|
620 |
+
msgstr ""
|
621 |
+
"Mislykkes at logge ind med brugernavn \"{login_user_login}\" fordi det "
|
622 |
+
"forkerte kodeord blev brugt"
|
623 |
+
|
624 |
+
# @ simple-history
|
625 |
+
#: loggers/SimpleUserLogger.php:23
|
626 |
+
msgid ""
|
627 |
+
"Failed to login with username \"{failed_login_username}\" because no user "
|
628 |
+
"with that username exists"
|
629 |
+
msgstr ""
|
630 |
+
"Mislykkes at logge ind med brugernavn \"{failed_login_username}\" fordi "
|
631 |
+
"brugernavnet ikke findes"
|
632 |
+
|
633 |
+
# @ simple-history
|
634 |
+
#: loggers/SimpleUserLogger.php:24
|
635 |
+
msgid "Logged in"
|
636 |
+
msgstr "Loggede ind"
|
637 |
+
|
638 |
+
# @ simple-history
|
639 |
+
#: loggers/SimpleUserLogger.php:25
|
640 |
+
msgid "Unknown user logged in"
|
641 |
+
msgstr "Ukendt bruger loggede ind"
|
642 |
+
|
643 |
+
# @ simple-history
|
644 |
+
#: loggers/SimpleUserLogger.php:26
|
645 |
+
msgid "Logged out"
|
646 |
+
msgstr "Loggede ud"
|
647 |
+
|
648 |
+
# @ simple-history
|
649 |
+
#: loggers/SimpleUserLogger.php:27
|
650 |
+
msgid "Edited the profile for user {edited_user_login} ({edited_user_email})"
|
651 |
+
msgstr ""
|
652 |
+
"Redigerede brugerprofilen for {edited_user_login} ({edited_user_email})"
|
653 |
+
|
654 |
+
# @ simple-history
|
655 |
+
#: loggers/SimpleUserLogger.php:28
|
656 |
+
msgid ""
|
657 |
+
"Created user {created_user_login} ({created_user_email}) with role "
|
658 |
+
"{created_user_role}"
|
659 |
+
msgstr ""
|
660 |
+
"Tilføjede bruger {created_user_login} ({created_user_email}) med rollen "
|
661 |
+
"{created_user_role}"
|
662 |
+
|
663 |
+
# @ simple-history
|
664 |
+
#: loggers/SimpleUserLogger.php:29
|
665 |
+
msgid "Deleted user {deleted_user_login} ({deleted_user_email})"
|
666 |
+
msgstr "Slettede bruger {deleted_user_login} ({deleted_user_email})"
|
667 |
+
|
668 |
+
# @ simple-history
|
669 |
+
#: loggers/SimpleUserLogger.php:227
|
670 |
+
msgid "Edited <a href=\"{edit_profile_link}\">your profile</a>"
|
671 |
+
msgstr "Redigerede <a href=\"{edit_profile_link}\">din profil</a>"
|
672 |
+
|
673 |
+
# @ simple-history
|
674 |
+
#: loggers/SimpleUserLogger.php:231
|
675 |
+
msgid "Edited <a href=\"{edit_profile_link}\">their profile</a>"
|
676 |
+
msgstr "Redigerede <a href=\"{edit_profile_link}\">deres profil</a>"
|
677 |
+
|
678 |
+
# @ simple-history
|
679 |
+
#: loggers/SimpleUserLogger.php:240
|
680 |
+
msgid "Edited your profile"
|
681 |
+
msgstr "Redigerede din profil"
|
682 |
+
|
683 |
+
# @ simple-history
|
684 |
+
#: loggers/SimpleUserLogger.php:251
|
685 |
+
msgid ""
|
686 |
+
"Edited the profile for user <a href="
|
687 |
+
"\"{edit_profile_link}\">{edited_user_login} ({edited_user_email})</a>"
|
688 |
+
msgstr ""
|
689 |
+
"Redigerede profilen for <a href=\"{edit_profile_link}\">{edited_user_login} "
|
690 |
+
"({edited_user_email})</a>"
|
691 |
+
|
692 |
+
#: node_modules/grunt-wp-i18n/test/fixtures/basic-theme/exclude/file.php:3
|
693 |
+
#: node_modules/grunt-wp-i18n/test/fixtures/plugin-include/plugin-include.php:6
|
694 |
+
msgid "Exclude"
|
695 |
+
msgstr "Ekskludere"
|
696 |
+
|
697 |
+
#: node_modules/grunt-wp-i18n/test/fixtures/plugin-include/include/file.php:2
|
698 |
+
msgid "Include"
|
699 |
+
msgstr "Inkludere"
|
700 |
+
|
701 |
+
#: node_modules/grunt-wp-i18n/test/fixtures/text-domains/add-domain.php:2
|
702 |
+
#: node_modules/grunt-wp-i18n/test/fixtures/text-domains/update-domains.php:2
|
703 |
+
#: node_modules/grunt-wp-i18n/test/fixtures/text-domains/update-domains.php:3
|
704 |
+
msgid "String"
|
705 |
+
msgstr "Streng"
|
706 |
+
|
707 |
+
# @ simple-history
|
708 |
+
#: templates/settings-statsIntro.php:19
|
709 |
+
msgid "<b>%1$s rows</b> have been logged the last <b>%2$s days</b>"
|
710 |
+
msgstr "<b>%1$s rows</b> er logget de sidste <b>%2$s dage</b>"
|
711 |
+
|
712 |
+
# @ simple-history
|
713 |
+
#: templates/settings-statsLogLevels.php:4
|
714 |
+
msgid "Log levels"
|
715 |
+
msgstr "Log niveauer"
|
716 |
+
|
717 |
+
# @ simple-history
|
718 |
+
#: templates/settings-statsLogLevels.php:6
|
719 |
+
msgid "Number of rows logged for each log level."
|
720 |
+
msgstr "Antal rækker logget for hver log niveau."
|
721 |
+
|
722 |
+
# @ simple-history
|
723 |
+
#: templates/settings-statsLoggers.php:4
|
724 |
+
msgid "Loggers"
|
725 |
+
msgstr "Log metoder"
|
726 |
+
|
727 |
+
# @ simple-history
|
728 |
+
#: templates/settings-statsRowsPerDay.php:4
|
729 |
+
msgid "Rows per day"
|
730 |
+
msgstr "Rækker pr. dag"
|
731 |
+
|
732 |
+
# @ simple-history
|
733 |
+
#: templates/settings-statsUsers.php:4
|
734 |
+
msgid "Users"
|
735 |
+
msgstr "Brugere"
|
736 |
+
|
737 |
+
# @ simple-history
|
738 |
+
#: templates/settings-statsUsers.php:6
|
739 |
+
msgid "Number of logged items for the 5 users with most logged rows."
|
740 |
+
msgstr "Antal logget events for de 5 brugere, med flest antal logget rækker."
|
741 |
+
|
742 |
+
# @ simple-history
|
743 |
+
#: templates/settings-statsUsers.php:7
|
744 |
+
msgid "Deleted users are also included."
|
745 |
+
msgstr "Slettet brugere er også inkluderet."
|
746 |
+
|
747 |
+
#. Plugin URI of the plugin/theme
|
748 |
+
msgid "http://simple-history.com"
|
749 |
+
msgstr "http://simple-history.com"
|
750 |
+
|
751 |
+
#. Description of the plugin/theme
|
752 |
+
msgid ""
|
753 |
+
"Plugin that logs various things that occur in WordPress and then presents "
|
754 |
+
"those events in a very nice GUI."
|
755 |
+
msgstr ""
|
756 |
+
"Plugin der logger forskellige ting der sker i WordPress og præsentere dem i "
|
757 |
+
"et lækkert GUI."
|
758 |
+
|
759 |
+
#. Author of the plugin/theme
|
760 |
+
msgid "Pär Thernström"
|
761 |
+
msgstr "Pär Thernström"
|
762 |
+
|
763 |
+
#. Author URI of the plugin/theme
|
764 |
+
msgid "http://simple-history.com/"
|
765 |
+
msgstr "http://simple-history.com/"
|
766 |
+
|
767 |
+
# @ simple-history
|
768 |
+
#: SimpleHistory.php:249
|
769 |
+
msgctxt ""
|
770 |
+
"Message visible while waiting for log to load from server the first time"
|
771 |
+
msgid "Loading history..."
|
772 |
+
msgstr "Indlæser historik..."
|
773 |
+
|
774 |
+
# @ simple-history
|
775 |
+
#: SimpleHistory.php:286
|
776 |
+
msgctxt "page n of n"
|
777 |
+
msgid "of"
|
778 |
+
msgstr "af"
|
779 |
+
|
780 |
+
# @ simple-history
|
781 |
+
#: SimpleHistory.php:357
|
782 |
+
msgctxt "API: not enought arguments passed"
|
783 |
+
msgid "Not enough args specified"
|
784 |
+
msgstr "Der er ikke specificeret argumenter nok"
|
785 |
+
|
786 |
+
# @ simple-history
|
787 |
+
#: SimpleHistory.php:1235
|
788 |
+
msgctxt "dashboard menu name"
|
789 |
+
msgid "Simple History"
|
790 |
+
msgstr "Simpel Historik"
|
791 |
+
|
792 |
+
# @ simple-history
|
793 |
+
#: SimpleHistory.php:1359
|
794 |
+
msgctxt "history page headline"
|
795 |
+
msgid "Simple History"
|
796 |
+
msgstr "Simpel Historik"
|
797 |
+
|
798 |
+
#: SimpleHistory.php:1619
|
799 |
+
msgctxt "simple-history"
|
800 |
+
msgid "Simple History removed one event that were older than {days} days"
|
801 |
+
msgid_plural ""
|
802 |
+
"Simple History removed {num_rows} events that were older than {days} days"
|
803 |
+
msgstr[0] "Simpel Historik fjernede et event, der var ældre end {days} dage"
|
804 |
+
msgstr[1] ""
|
805 |
+
"Simpel Historik fjernede {num_events} events, der var ældre end {days} dage"
|
806 |
+
|
807 |
+
#: SimpleHistory.php:1963
|
808 |
+
msgctxt "Log level in gui"
|
809 |
+
msgid "emergency"
|
810 |
+
msgstr "Nødstilfælde"
|
811 |
+
|
812 |
+
#: SimpleHistory.php:1967
|
813 |
+
msgctxt "Log level in gui"
|
814 |
+
msgid "alert"
|
815 |
+
msgstr "alarm"
|
816 |
+
|
817 |
+
#: SimpleHistory.php:1971
|
818 |
+
msgctxt "Log level in gui"
|
819 |
+
msgid "critical"
|
820 |
+
msgstr "kritisk"
|
821 |
+
|
822 |
+
#: SimpleHistory.php:1975
|
823 |
+
msgctxt "Log level in gui"
|
824 |
+
msgid "error"
|
825 |
+
msgstr "fejl"
|
826 |
+
|
827 |
+
#: SimpleHistory.php:1979
|
828 |
+
msgctxt "Log level in gui"
|
829 |
+
msgid "warning"
|
830 |
+
msgstr "advarsel"
|
831 |
+
|
832 |
+
#: SimpleHistory.php:1983
|
833 |
+
msgctxt "Log level in gui"
|
834 |
+
msgid "notice"
|
835 |
+
msgstr "meddelelse"
|
836 |
+
|
837 |
+
#: SimpleHistory.php:1987
|
838 |
+
msgctxt "Log level in gui"
|
839 |
+
msgid "info"
|
840 |
+
msgstr "info"
|
841 |
+
|
842 |
+
#: SimpleHistory.php:1991
|
843 |
+
msgctxt "Log level in gui"
|
844 |
+
msgid "debug"
|
845 |
+
msgstr "debug"
|
846 |
+
|
847 |
+
#: SimpleHistory.php:1996
|
848 |
+
msgctxt "Log level in gui"
|
849 |
+
msgid "Emergency"
|
850 |
+
msgstr "Nødstilfælde"
|
851 |
+
|
852 |
+
#: SimpleHistory.php:2000
|
853 |
+
msgctxt "Log level in gui"
|
854 |
+
msgid "Alert"
|
855 |
+
msgstr "Alarm"
|
856 |
+
|
857 |
+
#: SimpleHistory.php:2004
|
858 |
+
msgctxt "Log level in gui"
|
859 |
+
msgid "Critical"
|
860 |
+
msgstr "Kritisk"
|
861 |
+
|
862 |
+
#: SimpleHistory.php:2008
|
863 |
+
msgctxt "Log level in gui"
|
864 |
+
msgid "Error"
|
865 |
+
msgstr "Fejl"
|
866 |
+
|
867 |
+
#: SimpleHistory.php:2012
|
868 |
+
msgctxt "Log level in gui"
|
869 |
+
msgid "Warning"
|
870 |
+
msgstr "Advarsel"
|
871 |
+
|
872 |
+
#: SimpleHistory.php:2016
|
873 |
+
msgctxt "Log level in gui"
|
874 |
+
msgid "Notice"
|
875 |
+
msgstr "Meddelse"
|
876 |
+
|
877 |
+
#: SimpleHistory.php:2020
|
878 |
+
msgctxt "Log level in gui"
|
879 |
+
msgid "Info"
|
880 |
+
msgstr "Info"
|
881 |
+
|
882 |
+
#: SimpleHistory.php:2024
|
883 |
+
msgctxt "Log level in gui"
|
884 |
+
msgid "Debug"
|
885 |
+
msgstr "Debug"
|
886 |
+
|
887 |
+
# @ simple-history
|
888 |
+
#: dropins/SimpleHistoryDonateDropin.php:51
|
889 |
+
msgctxt "donate settings headline"
|
890 |
+
msgid "Donate"
|
891 |
+
msgstr "Donér"
|
892 |
+
|
893 |
+
#: dropins/SimpleHistoryFilterDropin.php:50
|
894 |
+
msgctxt "Filter dropin: button to show more search options"
|
895 |
+
msgid "Show options"
|
896 |
+
msgstr "Vis flere muligheder"
|
897 |
+
|
898 |
+
#: dropins/SimpleHistoryFilterDropin.php:160
|
899 |
+
msgctxt "Filter dropin: button to hide more search options"
|
900 |
+
msgid "Hide options"
|
901 |
+
msgstr "Skjul muligheder"
|
902 |
+
|
903 |
+
# @ simple-history
|
904 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:66
|
905 |
+
msgctxt "IP Info Dropin"
|
906 |
+
msgid "That IP address does not seem like a public one."
|
907 |
+
msgstr "IP adressen lader ikke til, at være en offentlig(public) IP."
|
908 |
+
|
909 |
+
# @ simple-history
|
910 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:85
|
911 |
+
msgctxt "IP Info Dropin"
|
912 |
+
msgid "IP address"
|
913 |
+
msgstr "IP adresse"
|
914 |
+
|
915 |
+
# @ simple-history
|
916 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:96
|
917 |
+
msgctxt "IP Info Dropin"
|
918 |
+
msgid "Hostname"
|
919 |
+
msgstr "Værtsnavn(Hostname)"
|
920 |
+
|
921 |
+
# @ simple-history
|
922 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:107
|
923 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:118
|
924 |
+
msgctxt "IP Info Dropin"
|
925 |
+
msgid "Network"
|
926 |
+
msgstr "Netværk"
|
927 |
+
|
928 |
+
# @ simple-history
|
929 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:129
|
930 |
+
msgctxt "IP Info Dropin"
|
931 |
+
msgid "City"
|
932 |
+
msgstr "By"
|
933 |
+
|
934 |
+
# @ simple-history
|
935 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:140
|
936 |
+
msgctxt "IP Info Dropin"
|
937 |
+
msgid "Region"
|
938 |
+
msgstr "Region"
|
939 |
+
|
940 |
+
# @ simple-history
|
941 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:151
|
942 |
+
msgctxt "IP Info Dropin"
|
943 |
+
msgid "Country"
|
944 |
+
msgstr "Område/Land"
|
945 |
+
|
946 |
+
# @ simple-history
|
947 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:162
|
948 |
+
msgctxt "IP Info Dropin"
|
949 |
+
msgid "IP info provided by %1$s ipinfo.io %2$s"
|
950 |
+
msgstr "IP info leveret af %1$s ipinfo.io %2$s"
|
951 |
+
|
952 |
+
# @ simple-history
|
953 |
+
#: dropins/SimpleHistoryNewRowsNotifier.php:38
|
954 |
+
msgctxt "New rows notifier: error while checking for new rows"
|
955 |
+
msgid "An error occured while checking for new log rows"
|
956 |
+
msgstr "Der forekom en fejl, mens der blev tjekket efter nye log rækker"
|
957 |
+
|
958 |
+
# @ simple-history
|
959 |
+
#: dropins/SimpleHistoryRSSDropin.php:47
|
960 |
+
msgctxt "rss settings headline"
|
961 |
+
msgid "RSS feed"
|
962 |
+
msgstr "RSS feed"
|
963 |
+
|
964 |
+
#: dropins/SimpleHistorySidebarDropin.php:31
|
965 |
+
msgctxt "Sidebar box"
|
966 |
+
msgid "Simple History is on GitHub"
|
967 |
+
msgstr "Simpel Historik er på GitHub"
|
968 |
+
|
969 |
+
#: dropins/SimpleHistorySidebarDropin.php:34
|
970 |
+
msgctxt "Sidebar box"
|
971 |
+
msgid ""
|
972 |
+
"You can star, fork, or report issues with this plugin over at the <a href="
|
973 |
+
"\"%1$s\">GitHub page</a>."
|
974 |
+
msgstr ""
|
975 |
+
"Du kan star, fork eller rapportere issues på pluginets <a href=\"%1$s"
|
976 |
+
"\">GitHub side</a>."
|
977 |
+
|
978 |
+
#: dropins/SimpleHistorySidebarDropin.php:48
|
979 |
+
msgctxt "Sidebar box"
|
980 |
+
msgid "Donate to support development"
|
981 |
+
msgstr "Donér for at støtte udviklingen"
|
982 |
+
|
983 |
+
#: dropins/SimpleHistorySidebarDropin.php:51
|
984 |
+
msgctxt "Sidebar box"
|
985 |
+
msgid ""
|
986 |
+
"If you like and use Simple History you should <a href=\"%1$s\">donate to "
|
987 |
+
"keep this plugin free</a>."
|
988 |
+
msgstr ""
|
989 |
+
"Hvis du synes om og bruger Simpel Historik, burde du <a href=\"%1$s"
|
990 |
+
"\">donére</a>, for at bibeholde dette plugin gratis."
|
991 |
+
|
992 |
+
#: dropins/SimpleHistorySidebarDropin.php:65
|
993 |
+
msgctxt "Sidebar box"
|
994 |
+
msgid "Review this plugin if you like it"
|
995 |
+
msgstr "Bedøm gerne dette plugin"
|
996 |
+
|
997 |
+
#: dropins/SimpleHistorySidebarDropin.php:68
|
998 |
+
msgctxt "Sidebar box"
|
999 |
+
msgid ""
|
1000 |
+
"If you like Simple History then please <a href=\"%1$s\">give it a nice "
|
1001 |
+
"review over at wordpress.org</a>."
|
1002 |
+
msgstr ""
|
1003 |
+
"Hvis du synes om Simpel Historik, så <a href=\"%1$s\">kan du anmelde det på "
|
1004 |
+
"wordpress.org</a>."
|
1005 |
+
|
1006 |
+
#: dropins/SimpleHistorySidebarDropin.php:72
|
1007 |
+
msgctxt "Sidebar box"
|
1008 |
+
msgid ""
|
1009 |
+
"A good review will help new users find this plugin. And it will make the "
|
1010 |
+
"plugin author very happy :)"
|
1011 |
+
msgstr ""
|
1012 |
+
"En god anmeldelse, vil hjælpe nye brugere til at finde dette plugin. Det vil "
|
1013 |
+
"også gøre plugin forfatteren meget glad :)"
|
1014 |
+
|
1015 |
+
# @ simple-history
|
1016 |
+
#: loggers/SimpleCommentsLogger.php:95
|
1017 |
+
msgctxt "A comment was added to the database by a non-logged in internet user"
|
1018 |
+
msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
|
1019 |
+
msgstr ""
|
1020 |
+
"Tilføjede en kommentar til {comment_post_type} \"{comment_post_title}\""
|
1021 |
+
|
1022 |
+
# @ simple-history
|
1023 |
+
#: loggers/SimpleCommentsLogger.php:101
|
1024 |
+
msgctxt "A comment was added to the database by a logged in user"
|
1025 |
+
msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
|
1026 |
+
msgstr ""
|
1027 |
+
"Tilføjede en kommentar til {comment_post_type} \"{comment_post_title}\""
|
1028 |
+
|
1029 |
+
# @ simple-history
|
1030 |
+
#: loggers/SimpleCommentsLogger.php:107
|
1031 |
+
msgctxt "A comment was approved"
|
1032 |
+
msgid ""
|
1033 |
+
"Approved a comment to \"{comment_post_title}\" by {comment_author} "
|
1034 |
+
"({comment_author_email})"
|
1035 |
+
msgstr ""
|
1036 |
+
"Godkendte en kommentar til \"{comment_post_title}\" af {comment_author} "
|
1037 |
+
"({comment_author_email})"
|
1038 |
+
|
1039 |
+
# @ simple-history
|
1040 |
+
#: loggers/SimpleCommentsLogger.php:113
|
1041 |
+
msgctxt "A comment was was unapproved"
|
1042 |
+
msgid ""
|
1043 |
+
"Unapproved a comment to \"{comment_post_title}\" by {comment_author} "
|
1044 |
+
"({comment_author_email})"
|
1045 |
+
msgstr ""
|
1046 |
+
"Afviste en kommentar til \"{comment_post_title}\" af {comment_author} "
|
1047 |
+
"({comment_author_email})"
|
1048 |
+
|
1049 |
+
# @ simple-history
|
1050 |
+
#: loggers/SimpleCommentsLogger.php:119
|
1051 |
+
msgctxt "A comment was marked as spam"
|
1052 |
+
msgid "Marked a comment to post \"{comment_post_title}\" as spam"
|
1053 |
+
msgstr "Markerede en kommentar til indlægget \"{comment_post_title}\" som spam"
|
1054 |
+
|
1055 |
+
# @ simple-history
|
1056 |
+
#: loggers/SimpleCommentsLogger.php:125
|
1057 |
+
msgctxt "A comment was marked moved to the trash"
|
1058 |
+
msgid ""
|
1059 |
+
"Trashed a comment to \"{comment_post_title}\" by {comment_author} "
|
1060 |
+
"({comment_author_email})"
|
1061 |
+
msgstr ""
|
1062 |
+
"Flyttede en kommentar til \"{comment_post_title}\" af {comment_author} "
|
1063 |
+
"({comment_author_email}) i papirkurven"
|
1064 |
+
|
1065 |
+
# @ simple-history
|
1066 |
+
#: loggers/SimpleCommentsLogger.php:131
|
1067 |
+
msgctxt "A comment was restored from the trash"
|
1068 |
+
msgid ""
|
1069 |
+
"Restored a comment to \"{comment_post_title}\" by {comment_author} "
|
1070 |
+
"({comment_author_email}) from the trash"
|
1071 |
+
msgstr ""
|
1072 |
+
"Gendannede en kommentar til \"{comment_post_title}\" af {comment_author} "
|
1073 |
+
"({comment_author_email}) fra papirkurven"
|
1074 |
+
|
1075 |
+
# @ simple-history
|
1076 |
+
#: loggers/SimpleCommentsLogger.php:137
|
1077 |
+
msgctxt "A comment was deleted"
|
1078 |
+
msgid ""
|
1079 |
+
"Deleted a comment to \"{comment_post_title}\" by {comment_author} "
|
1080 |
+
"({comment_author_email})"
|
1081 |
+
msgstr ""
|
1082 |
+
"Slettede en kommentar til \"{comment_post_title}\" af {comment_author} "
|
1083 |
+
"({comment_author_email})"
|
1084 |
+
|
1085 |
+
# @ simple-history
|
1086 |
+
#: loggers/SimpleCommentsLogger.php:143
|
1087 |
+
msgctxt "A comment was edited"
|
1088 |
+
msgid ""
|
1089 |
+
"Edited a comment to \"{comment_post_title}\" by {comment_author} "
|
1090 |
+
"({comment_author_email})"
|
1091 |
+
msgstr ""
|
1092 |
+
"Redigerede en kommentar til \"{comment_post_title}\" af {comment_author} "
|
1093 |
+
"({comment_author_email})"
|
1094 |
+
|
1095 |
+
# @ simple-history
|
1096 |
+
#: loggers/SimpleCommentsLogger.php:150
|
1097 |
+
msgctxt ""
|
1098 |
+
"A trackback was added to the database by a non-logged in internet user"
|
1099 |
+
msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
|
1100 |
+
msgstr ""
|
1101 |
+
"Tilføjede en trackback til {comment_post_type} \"{comment_post_title}\""
|
1102 |
+
|
1103 |
+
# @ simple-history
|
1104 |
+
#: loggers/SimpleCommentsLogger.php:205
|
1105 |
+
msgctxt ""
|
1106 |
+
"A trackback was added to the database by a non-logged in internet user"
|
1107 |
+
msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
|
1108 |
+
msgstr "Tilføjede en pingback til {comment_post_type} \"{comment_post_title}\""
|
1109 |
+
|
1110 |
+
# @ simple-history
|
1111 |
+
#: loggers/SimpleCommentsLogger.php:156
|
1112 |
+
msgctxt "A trackback was added to the database by a logged in user"
|
1113 |
+
msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
|
1114 |
+
msgstr ""
|
1115 |
+
"Tilføjede en trackback til {comment_post_type} \"{comment_post_title}\""
|
1116 |
+
|
1117 |
+
# @ simple-history
|
1118 |
+
#: loggers/SimpleCommentsLogger.php:162
|
1119 |
+
msgctxt "A trackback was approved"
|
1120 |
+
msgid ""
|
1121 |
+
"Approved a trackback to \"{comment_post_title}\" by {comment_author} "
|
1122 |
+
"({comment_author_email})"
|
1123 |
+
msgstr ""
|
1124 |
+
"Godkendte en trackback til \"{comment_post_title}\" af {comment_author} "
|
1125 |
+
"({comment_author_email})"
|
1126 |
+
|
1127 |
+
# @ simple-history
|
1128 |
+
#: loggers/SimpleCommentsLogger.php:168
|
1129 |
+
msgctxt "A trackback was was unapproved"
|
1130 |
+
msgid ""
|
1131 |
+
"Unapproved a trackback to \"{comment_post_title}\" by {comment_author} "
|
1132 |
+
"({comment_author_email})"
|
1133 |
+
msgstr ""
|
1134 |
+
"Afviste en trackback til \"{comment_post_title}\" af {comment_author} "
|
1135 |
+
"({comment_author_email})"
|
1136 |
+
|
1137 |
+
# @ simple-history
|
1138 |
+
#: loggers/SimpleCommentsLogger.php:174
|
1139 |
+
msgctxt "A trackback was marked as spam"
|
1140 |
+
msgid "Marked a trackback to post \"{comment_post_title}\" as spam"
|
1141 |
+
msgstr "Markerede en trackback til indlægget \"{comment_post_title}\" som spam"
|
1142 |
+
|
1143 |
+
# @ simple-history
|
1144 |
+
#: loggers/SimpleCommentsLogger.php:180
|
1145 |
+
msgctxt "A trackback was marked moved to the trash"
|
1146 |
+
msgid ""
|
1147 |
+
"Trashed a trackback to \"{comment_post_title}\" by {comment_author} "
|
1148 |
+
"({comment_author_email})"
|
1149 |
+
msgstr ""
|
1150 |
+
"Flyttede en trackback til \"{comment_post_title}\" af {comment_author} "
|
1151 |
+
"({comment_author_email}) til papirkurven"
|
1152 |
+
|
1153 |
+
# @ simple-history
|
1154 |
+
#: loggers/SimpleCommentsLogger.php:186
|
1155 |
+
msgctxt "A trackback was restored from the trash"
|
1156 |
+
msgid ""
|
1157 |
+
"Restored a trackback to \"{comment_post_title}\" by {comment_author} "
|
1158 |
+
"({comment_author_email}) from the trash"
|
1159 |
+
msgstr ""
|
1160 |
+
"Gendannede en trackback til \"{comment_post_title}\" af {comment_author} "
|
1161 |
+
"({comment_author_email}) fra papirkurven"
|
1162 |
+
|
1163 |
+
# @ simple-history
|
1164 |
+
#: loggers/SimpleCommentsLogger.php:192
|
1165 |
+
msgctxt "A trackback was deleted"
|
1166 |
+
msgid ""
|
1167 |
+
"Deleted a trackback to \"{comment_post_title}\" by {comment_author} "
|
1168 |
+
"({comment_author_email})"
|
1169 |
+
msgstr ""
|
1170 |
+
"Slettede en trackback til \"{comment_post_title}\" af {comment_author} "
|
1171 |
+
"({comment_author_email})"
|
1172 |
+
|
1173 |
+
# @ simple-history
|
1174 |
+
#: loggers/SimpleCommentsLogger.php:198
|
1175 |
+
msgctxt "A trackback was edited"
|
1176 |
+
msgid ""
|
1177 |
+
"Edited a trackback to \"{comment_post_title}\" by {comment_author} "
|
1178 |
+
"({comment_author_email})"
|
1179 |
+
msgstr ""
|
1180 |
+
"Redigerede en trackback til \"{comment_post_title}\" af {comment_author} "
|
1181 |
+
"({comment_author_email})"
|
1182 |
+
|
1183 |
+
# @ simple-history
|
1184 |
+
#: loggers/SimpleCommentsLogger.php:211
|
1185 |
+
msgctxt "A pingback was added to the database by a logged in user"
|
1186 |
+
msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
|
1187 |
+
msgstr "Tilføjede en pingback til {comment_post_type} \"{comment_post_title}\""
|
1188 |
+
|
1189 |
+
# @ simple-history
|
1190 |
+
#: loggers/SimpleCommentsLogger.php:217
|
1191 |
+
msgctxt "A pingback was approved"
|
1192 |
+
msgid ""
|
1193 |
+
"Approved a pingback to \"{comment_post_title}\" by "
|
1194 |
+
"\"{comment_author}\"\" ({comment_author_email})"
|
1195 |
+
msgstr ""
|
1196 |
+
"Godkendte en pingback til \"{comment_post_title}\" af "
|
1197 |
+
"\"{comment_author}\"\" ({comment_author_email})"
|
1198 |
+
|
1199 |
+
# @ simple-history
|
1200 |
+
#: loggers/SimpleCommentsLogger.php:223
|
1201 |
+
msgctxt "A pingback was was unapproved"
|
1202 |
+
msgid ""
|
1203 |
+
"Unapproved a pingback to \"{comment_post_title}\" by "
|
1204 |
+
"\"{comment_author}\" ({comment_author_email})"
|
1205 |
+
msgstr ""
|
1206 |
+
"Afviste en pingback til \"{comment_post_title}\" af "
|
1207 |
+
"\"{comment_author}\" ({comment_author_email})"
|
1208 |
+
|
1209 |
+
# @ simple-history
|
1210 |
+
#: loggers/SimpleCommentsLogger.php:229
|
1211 |
+
msgctxt "A pingback was marked as spam"
|
1212 |
+
msgid "Marked a pingback to post \"{comment_post_title}\" as spam"
|
1213 |
+
msgstr "Markerede en pingback til indlægget \"{comment_post_title}\" som spam"
|
1214 |
+
|
1215 |
+
# @ simple-history
|
1216 |
+
#: loggers/SimpleCommentsLogger.php:235
|
1217 |
+
msgctxt "A pingback was marked moved to the trash"
|
1218 |
+
msgid ""
|
1219 |
+
"Trashed a pingback to \"{comment_post_title}\" by {comment_author} "
|
1220 |
+
"({comment_author_email})"
|
1221 |
+
msgstr ""
|
1222 |
+
"Flyttede en pingback til \"{comment_post_title}\" af {comment_author} "
|
1223 |
+
"({comment_author_email}) til papirkurven"
|
1224 |
+
|
1225 |
+
# @ simple-history
|
1226 |
+
#: loggers/SimpleCommentsLogger.php:241
|
1227 |
+
msgctxt "A pingback was restored from the trash"
|
1228 |
+
msgid ""
|
1229 |
+
"Restored a pingback to \"{comment_post_title}\" by {comment_author} "
|
1230 |
+
"({comment_author_email}) from the trash"
|
1231 |
+
msgstr ""
|
1232 |
+
"Gendannede en pingback til \"{comment_post_title}\" af {comment_author} "
|
1233 |
+
"({comment_author_email}) fra papirkurven"
|
1234 |
+
|
1235 |
+
# @ simple-history
|
1236 |
+
#: loggers/SimpleCommentsLogger.php:247
|
1237 |
+
msgctxt "A pingback was deleted"
|
1238 |
+
msgid ""
|
1239 |
+
"Deleted a pingback to \"{comment_post_title}\" by {comment_author} "
|
1240 |
+
"({comment_author_email})"
|
1241 |
+
msgstr ""
|
1242 |
+
"Slettede en pingback til \"{comment_post_title}\" af {comment_author} "
|
1243 |
+
"({comment_author_email})"
|
1244 |
+
|
1245 |
+
# @ simple-history
|
1246 |
+
#: loggers/SimpleCommentsLogger.php:253
|
1247 |
+
msgctxt "A pingback was edited"
|
1248 |
+
msgid ""
|
1249 |
+
"Edited a pingback to \"{comment_post_title}\" by {comment_author} "
|
1250 |
+
"({comment_author_email})"
|
1251 |
+
msgstr ""
|
1252 |
+
"Redigerede en pingback til \"{comment_post_title}\" af {comment_author} "
|
1253 |
+
"({comment_author_email})"
|
1254 |
+
|
1255 |
+
# @ simple-history
|
1256 |
+
#: loggers/SimpleCommentsLogger.php:264
|
1257 |
+
msgctxt "Comments logger: search"
|
1258 |
+
msgid "Comments"
|
1259 |
+
msgstr "Kommentarer"
|
1260 |
+
|
1261 |
+
# @ simple-history
|
1262 |
+
#: loggers/SimpleCommentsLogger.php:265
|
1263 |
+
msgctxt "Comments logger: search"
|
1264 |
+
msgid "All comments activity"
|
1265 |
+
msgstr "Alt kommentar aktivitet"
|
1266 |
+
|
1267 |
+
# @ simple-history
|
1268 |
+
#: loggers/SimpleCommentsLogger.php:267
|
1269 |
+
msgctxt "Comments logger: search"
|
1270 |
+
msgid "Added comments"
|
1271 |
+
msgstr "Tilføjet kommentarer"
|
1272 |
+
|
1273 |
+
# @ simple-history
|
1274 |
+
#: loggers/SimpleCommentsLogger.php:275
|
1275 |
+
msgctxt "Comments logger: search"
|
1276 |
+
msgid "Edited comments"
|
1277 |
+
msgstr "Redigeret kommentarer"
|
1278 |
+
|
1279 |
+
# @ simple-history
|
1280 |
+
#: loggers/SimpleCommentsLogger.php:280
|
1281 |
+
msgctxt "Comments logger: search"
|
1282 |
+
msgid "Approved comments"
|
1283 |
+
msgstr "Godkendte kommentarer"
|
1284 |
+
|
1285 |
+
# @ simple-history
|
1286 |
+
#: loggers/SimpleCommentsLogger.php:285
|
1287 |
+
msgctxt "Comments logger: search"
|
1288 |
+
msgid "Held comments"
|
1289 |
+
msgstr "Afventer kommentarer"
|
1290 |
+
|
1291 |
+
# @ simple-history
|
1292 |
+
#: loggers/SimpleCommentsLogger.php:290
|
1293 |
+
msgctxt "Comments logger: search"
|
1294 |
+
msgid "Comments status changed to spam"
|
1295 |
+
msgstr "Kommentarer status ændre til spam"
|
1296 |
+
|
1297 |
+
# @ simple-history
|
1298 |
+
#: loggers/SimpleCommentsLogger.php:295
|
1299 |
+
msgctxt "Comments logger: search"
|
1300 |
+
msgid "Trashed comments"
|
1301 |
+
msgstr "Kommentarer flyttet til papirkurven"
|
1302 |
+
|
1303 |
+
# @ simple-history
|
1304 |
+
#: loggers/SimpleCommentsLogger.php:300
|
1305 |
+
msgctxt "Comments logger: search"
|
1306 |
+
msgid "Untrashed comments"
|
1307 |
+
msgstr "Gendannet kommentarer"
|
1308 |
+
|
1309 |
+
# @ simple-history
|
1310 |
+
#: loggers/SimpleCommentsLogger.php:305
|
1311 |
+
msgctxt "Comments logger: search"
|
1312 |
+
msgid "Deleted comments"
|
1313 |
+
msgstr "Slettet kommentarer"
|
1314 |
+
|
1315 |
+
# @ simple-history
|
1316 |
+
#: loggers/SimpleCommentsLogger.php:602 loggers/SimpleCommentsLogger.php:615
|
1317 |
+
#: loggers/SimpleCommentsLogger.php:629
|
1318 |
+
msgctxt "comments logger - detailed output comment status"
|
1319 |
+
msgid "Status"
|
1320 |
+
msgstr "Status"
|
1321 |
+
|
1322 |
+
# @ simple-history
|
1323 |
+
#: loggers/SimpleCommentsLogger.php:604 loggers/SimpleCommentsLogger.php:617
|
1324 |
+
#: loggers/SimpleCommentsLogger.php:631
|
1325 |
+
msgctxt "comments logger - detailed output author"
|
1326 |
+
msgid "Name"
|
1327 |
+
msgstr "Navn"
|
1328 |
+
|
1329 |
+
# @ simple-history
|
1330 |
+
#: loggers/SimpleCommentsLogger.php:605 loggers/SimpleCommentsLogger.php:618
|
1331 |
+
#: loggers/SimpleCommentsLogger.php:632
|
1332 |
+
msgctxt "comments logger - detailed output email"
|
1333 |
+
msgid "Email"
|
1334 |
+
msgstr "E-mail"
|
1335 |
+
|
1336 |
+
# @ simple-history
|
1337 |
+
#: loggers/SimpleCommentsLogger.php:606 loggers/SimpleCommentsLogger.php:619
|
1338 |
+
msgctxt "comments logger - detailed output content"
|
1339 |
+
msgid "Content"
|
1340 |
+
msgstr "Indhold"
|
1341 |
+
|
1342 |
+
# @ simple-history
|
1343 |
+
#: loggers/SimpleCommentsLogger.php:633
|
1344 |
+
msgctxt "comments logger - detailed output content"
|
1345 |
+
msgid "Comment"
|
1346 |
+
msgstr "Kommentar"
|
1347 |
+
|
1348 |
+
# @ simple-history
|
1349 |
+
#: loggers/SimpleCommentsLogger.php:759
|
1350 |
+
msgctxt "comments logger - edit comment"
|
1351 |
+
msgid "View/Edit"
|
1352 |
+
msgstr "Vis/Rediger"
|
1353 |
+
|
1354 |
+
# @ simple-history
|
1355 |
+
#: loggers/SimpleCoreUpdatesLogger.php:34
|
1356 |
+
msgctxt "User logger: search"
|
1357 |
+
msgid "WordPress Core"
|
1358 |
+
msgstr "WordPress Core"
|
1359 |
+
|
1360 |
+
# @ simple-history
|
1361 |
+
#: loggers/SimpleCoreUpdatesLogger.php:36
|
1362 |
+
msgctxt "User logger: search"
|
1363 |
+
msgid "WordPress core updates"
|
1364 |
+
msgstr "WordPress Core opdateringer"
|
1365 |
+
|
1366 |
+
# @ simple-history
|
1367 |
+
#: loggers/SimpleUserLogger.php:54
|
1368 |
+
msgctxt "User logger: search"
|
1369 |
+
msgid "Users"
|
1370 |
+
msgstr "Brugere"
|
1371 |
+
|
1372 |
+
# @ simple-history
|
1373 |
+
#: loggers/SimpleUserLogger.php:55
|
1374 |
+
msgctxt "User logger: search"
|
1375 |
+
msgid "All user activity"
|
1376 |
+
msgstr "Alt bruger aktivitet"
|
1377 |
+
|
1378 |
+
# @ simple-history
|
1379 |
+
#: loggers/SimpleUserLogger.php:57
|
1380 |
+
msgctxt "User logger: search"
|
1381 |
+
msgid "Successful user logins"
|
1382 |
+
msgstr "Succesfulde bruger log ind"
|
1383 |
+
|
1384 |
+
# @ simple-history
|
1385 |
+
#: loggers/SimpleUserLogger.php:61
|
1386 |
+
msgctxt "User logger: search"
|
1387 |
+
msgid "Failed user logins"
|
1388 |
+
msgstr "Mislykket bruger log ind"
|
1389 |
+
|
1390 |
+
# @ simple-history
|
1391 |
+
#: loggers/SimpleUserLogger.php:65
|
1392 |
+
msgctxt "User logger: search"
|
1393 |
+
msgid "User logouts"
|
1394 |
+
msgstr "Bruger log ud"
|
1395 |
+
|
1396 |
+
# @ simple-history
|
1397 |
+
#: loggers/SimpleUserLogger.php:68
|
1398 |
+
msgctxt "User logger: search"
|
1399 |
+
msgid "Created users"
|
1400 |
+
msgstr "Tilføjet brugere"
|
1401 |
+
|
1402 |
+
# @ simple-history
|
1403 |
+
#: loggers/SimpleUserLogger.php:71
|
1404 |
+
msgctxt "User logger: search"
|
1405 |
+
msgid "User profile updates"
|
1406 |
+
msgstr "Brugerprofil opdateringer"
|
1407 |
+
|
1408 |
+
# @ simple-history
|
1409 |
+
#: loggers/SimpleUserLogger.php:74
|
1410 |
+
msgctxt "User logger: search"
|
1411 |
+
msgid "User deletions"
|
1412 |
+
msgstr "Slettet brugere"
|
1413 |
+
|
1414 |
+
# @ simple-history
|
1415 |
+
#: loggers/SimpleExportLogger.php:27
|
1416 |
+
msgctxt "Export logger: search"
|
1417 |
+
msgid "Export"
|
1418 |
+
msgstr "Eksport"
|
1419 |
+
|
1420 |
+
# @ simple-history
|
1421 |
+
#: loggers/SimpleExportLogger.php:29
|
1422 |
+
msgctxt "Export logger: search"
|
1423 |
+
msgid "Created exports"
|
1424 |
+
msgstr "Genereret eksporteringer"
|
1425 |
+
|
1426 |
+
# @ simple-history
|
1427 |
+
#: loggers/SimpleLogger.php:190
|
1428 |
+
msgctxt "header output when initiator is the currently logged in user"
|
1429 |
+
msgid "You"
|
1430 |
+
msgstr "Dig"
|
1431 |
+
|
1432 |
+
# @ simple-history
|
1433 |
+
#: loggers/SimpleMediaLogger.php:29
|
1434 |
+
msgctxt "Media logger: search"
|
1435 |
+
msgid "Media"
|
1436 |
+
msgstr "Medier"
|
1437 |
+
|
1438 |
+
# @ simple-history
|
1439 |
+
#: loggers/SimpleMediaLogger.php:31
|
1440 |
+
msgctxt "Media logger: search"
|
1441 |
+
msgid "Added media"
|
1442 |
+
msgstr "Tilføjet medier"
|
1443 |
+
|
1444 |
+
# @ simple-history
|
1445 |
+
#: loggers/SimpleMediaLogger.php:34
|
1446 |
+
msgctxt "Media logger: search"
|
1447 |
+
msgid "Updated media"
|
1448 |
+
msgstr "Opdateret medier"
|
1449 |
+
|
1450 |
+
# @ simple-history
|
1451 |
+
#: loggers/SimpleMediaLogger.php:37
|
1452 |
+
msgctxt "Media logger: search"
|
1453 |
+
msgid "Deleted media"
|
1454 |
+
msgstr "Slettet medier"
|
1455 |
+
|
1456 |
+
# @ simple-history
|
1457 |
+
#: loggers/SimpleMenuLogger.php:31
|
1458 |
+
msgctxt "Menu logger: search"
|
1459 |
+
msgid "Menus"
|
1460 |
+
msgstr "Menuer"
|
1461 |
+
|
1462 |
+
# @ simple-history
|
1463 |
+
#: loggers/SimpleMenuLogger.php:33
|
1464 |
+
msgctxt "Menu updates logger: search"
|
1465 |
+
msgid "Created menus"
|
1466 |
+
msgstr "Tilføjet menuer"
|
1467 |
+
|
1468 |
+
# @ simple-history
|
1469 |
+
#: loggers/SimpleMenuLogger.php:36
|
1470 |
+
msgctxt "Menu updates logger: search"
|
1471 |
+
msgid "Edited menus"
|
1472 |
+
msgstr "Redigeret menuer"
|
1473 |
+
|
1474 |
+
# @ simple-history
|
1475 |
+
#: loggers/SimpleMenuLogger.php:41
|
1476 |
+
msgctxt "Menu updates logger: search"
|
1477 |
+
msgid "Deleted menus"
|
1478 |
+
msgstr "Slettet menuer"
|
1479 |
+
|
1480 |
+
# @ simple-history
|
1481 |
+
#: loggers/SimpleMenuLogger.php:326
|
1482 |
+
msgctxt "menu logger"
|
1483 |
+
msgid "%1$s menu item added"
|
1484 |
+
msgid_plural "%1$s menu items added"
|
1485 |
+
msgstr[0] "%1$s menupunkt tilføjet"
|
1486 |
+
msgstr[1] "%1$s menupunkter tilføjet"
|
1487 |
+
|
1488 |
+
# @ simple-history
|
1489 |
+
#: loggers/SimpleMenuLogger.php:333
|
1490 |
+
msgctxt "menu logger"
|
1491 |
+
msgid "%1$s menu item removed"
|
1492 |
+
msgid_plural "%1$s menu items removed"
|
1493 |
+
msgstr[0] "%1$s menupunkt fjernet"
|
1494 |
+
msgstr[1] "%1$s menupunkter fjernet"
|
1495 |
+
|
1496 |
+
# @ simple-history
|
1497 |
+
#: loggers/SimpleOptionsLogger.php:153
|
1498 |
+
msgctxt "Options logger: search"
|
1499 |
+
msgid "Options"
|
1500 |
+
msgstr "Indstillinger"
|
1501 |
+
|
1502 |
+
# @ simple-history
|
1503 |
+
#: loggers/SimpleOptionsLogger.php:155
|
1504 |
+
msgctxt "Options logger: search"
|
1505 |
+
msgid "Changed options"
|
1506 |
+
msgstr "Ændret indstillinger"
|
1507 |
+
|
1508 |
+
# @ simple-history
|
1509 |
+
#: loggers/SimplePluginLogger.php:51
|
1510 |
+
msgctxt "Plugin was non-silently activated by a user"
|
1511 |
+
msgid "Activated plugin \"{plugin_name}\""
|
1512 |
+
msgstr "Aktiverede pluginet \"{plugin_name}\""
|
1513 |
+
|
1514 |
+
# @ simple-history
|
1515 |
+
#: loggers/SimplePluginLogger.php:57
|
1516 |
+
msgctxt "Plugin was non-silently deactivated by a user"
|
1517 |
+
msgid "Deactivated plugin \"{plugin_name}\""
|
1518 |
+
msgstr "Deaktiverede pluginet \"{plugin_name}\""
|
1519 |
+
|
1520 |
+
# @ simple-history
|
1521 |
+
#: loggers/SimplePluginLogger.php:63
|
1522 |
+
msgctxt "Plugin was installed"
|
1523 |
+
msgid "Installed plugin \"{plugin_name}\""
|
1524 |
+
msgstr "Installerede pluginet \"{plugin_name}\""
|
1525 |
+
|
1526 |
+
# @ simple-history
|
1527 |
+
#: loggers/SimplePluginLogger.php:69
|
1528 |
+
msgctxt "Plugin failed to install"
|
1529 |
+
msgid "Failed to install plugin \"{plugin_name}\""
|
1530 |
+
msgstr "Mislykkede i at installere pluginet \"{plugin_name}\""
|
1531 |
+
|
1532 |
+
# @ simple-history
|
1533 |
+
#: loggers/SimplePluginLogger.php:75
|
1534 |
+
msgctxt "Plugin was updated"
|
1535 |
+
msgid ""
|
1536 |
+
"Updated plugin \"{plugin_name}\" to version {plugin_version} from "
|
1537 |
+
"{plugin_prev_version}"
|
1538 |
+
msgstr ""
|
1539 |
+
"Opdaterede pluginet \"{plugin_name}\" til version {plugin_version} fra "
|
1540 |
+
"{plugin_prev_version}"
|
1541 |
+
|
1542 |
+
# @ simple-history
|
1543 |
+
#: loggers/SimplePluginLogger.php:81
|
1544 |
+
msgctxt "Plugin update failed"
|
1545 |
+
msgid "Updated plugin \"{plugin_name}\""
|
1546 |
+
msgstr "Opdaterede pluginet \"{plugin_name}\""
|
1547 |
+
|
1548 |
+
# @ simple-history
|
1549 |
+
#: loggers/SimplePluginLogger.php:87
|
1550 |
+
msgctxt "Plugin file edited"
|
1551 |
+
msgid "Edited plugin file \"{plugin_edited_file}\""
|
1552 |
+
msgstr "Redigerede plugin filen \"{plugin_edited_file}\""
|
1553 |
+
|
1554 |
+
# @ simple-history
|
1555 |
+
#: loggers/SimplePluginLogger.php:93
|
1556 |
+
msgctxt "Plugin files was deleted"
|
1557 |
+
msgid "Deleted plugin \"{plugin_name}\""
|
1558 |
+
msgstr "Slettede pluginet \"{plugin_name}\""
|
1559 |
+
|
1560 |
+
# @ simple-history
|
1561 |
+
#: loggers/SimplePluginLogger.php:100
|
1562 |
+
msgctxt "Plugin was updated in bulk"
|
1563 |
+
msgid ""
|
1564 |
+
"Updated plugin \"{plugin_name}\" to {plugin_version} from "
|
1565 |
+
"{plugin_prev_version}"
|
1566 |
+
msgstr ""
|
1567 |
+
"Opdaterede pluginet \"{plugin_name}\" til {plugin_version} fra "
|
1568 |
+
"{plugin_prev_version}"
|
1569 |
+
|
1570 |
+
# @ simple-history
|
1571 |
+
#: loggers/SimplePluginLogger.php:108
|
1572 |
+
msgctxt "Plugin logger: search"
|
1573 |
+
msgid "Plugins"
|
1574 |
+
msgstr "Plugins"
|
1575 |
+
|
1576 |
+
# @ simple-history
|
1577 |
+
#: loggers/SimplePluginLogger.php:110
|
1578 |
+
msgctxt "Plugin logger: search"
|
1579 |
+
msgid "Activated plugins"
|
1580 |
+
msgstr "Aktiveret plugins"
|
1581 |
+
|
1582 |
+
# @ simple-history
|
1583 |
+
#: loggers/SimplePluginLogger.php:113
|
1584 |
+
msgctxt "Plugin logger: search"
|
1585 |
+
msgid "Deactivated plugins"
|
1586 |
+
msgstr "Deaktiveret plugins"
|
1587 |
+
|
1588 |
+
# @ simple-history
|
1589 |
+
#: loggers/SimplePluginLogger.php:116
|
1590 |
+
msgctxt "Plugin logger: search"
|
1591 |
+
msgid "Installed plugins"
|
1592 |
+
msgstr "Installeret plugins"
|
1593 |
+
|
1594 |
+
# @ simple-history
|
1595 |
+
#: loggers/SimplePluginLogger.php:119
|
1596 |
+
msgctxt "Plugin logger: search"
|
1597 |
+
msgid "Failed plugin installs"
|
1598 |
+
msgstr "Mislykket plugin installeringer"
|
1599 |
+
|
1600 |
+
# @ simple-history
|
1601 |
+
#: loggers/SimplePluginLogger.php:122
|
1602 |
+
msgctxt "Plugin logger: search"
|
1603 |
+
msgid "Updated plugins"
|
1604 |
+
msgstr "Opdateret plugins"
|
1605 |
+
|
1606 |
+
# @ simple-history
|
1607 |
+
#: loggers/SimplePluginLogger.php:126
|
1608 |
+
msgctxt "Plugin logger: search"
|
1609 |
+
msgid "Failed plugin updates"
|
1610 |
+
msgstr "Mislykket plugin opdateringer"
|
1611 |
+
|
1612 |
+
# @ simple-history
|
1613 |
+
#: loggers/SimplePluginLogger.php:129
|
1614 |
+
msgctxt "Plugin logger: search"
|
1615 |
+
msgid "Edited plugin files"
|
1616 |
+
msgstr "Redigeret plugin filer"
|
1617 |
+
|
1618 |
+
# @ simple-history
|
1619 |
+
#: loggers/SimplePluginLogger.php:132
|
1620 |
+
msgctxt "Plugin logger: search"
|
1621 |
+
msgid "Deleted plugins"
|
1622 |
+
msgstr "Slettet plugins"
|
1623 |
+
|
1624 |
+
# @ simple-history
|
1625 |
+
#: loggers/SimplePluginLogger.php:887
|
1626 |
+
msgctxt "plugin logger - detailed output version"
|
1627 |
+
msgid "Version"
|
1628 |
+
msgstr "Version"
|
1629 |
+
|
1630 |
+
# @ simple-history
|
1631 |
+
#: loggers/SimplePluginLogger.php:889
|
1632 |
+
msgctxt "plugin logger - detailed output author"
|
1633 |
+
msgid "Author"
|
1634 |
+
msgstr "Forfatter"
|
1635 |
+
|
1636 |
+
# @ simple-history
|
1637 |
+
#: loggers/SimplePluginLogger.php:891
|
1638 |
+
msgctxt "plugin logger - detailed output author"
|
1639 |
+
msgid "Requires"
|
1640 |
+
msgstr "Kræver"
|
1641 |
+
|
1642 |
+
# @ simple-history
|
1643 |
+
#: loggers/SimplePluginLogger.php:890
|
1644 |
+
msgctxt "plugin logger - detailed output url"
|
1645 |
+
msgid "URL"
|
1646 |
+
msgstr "URL"
|
1647 |
+
|
1648 |
+
# @ simple-history
|
1649 |
+
#: loggers/SimplePluginLogger.php:892
|
1650 |
+
msgctxt "plugin logger - detailed output compatible"
|
1651 |
+
msgid "Compatible up to"
|
1652 |
+
msgstr "Kompatible op til"
|
1653 |
+
|
1654 |
+
# @ simple-history
|
1655 |
+
#: loggers/SimplePluginLogger.php:893
|
1656 |
+
msgctxt "plugin logger - detailed output downloaded"
|
1657 |
+
msgid "Downloads"
|
1658 |
+
msgstr "Downloads"
|
1659 |
+
|
1660 |
+
# @ simple-history
|
1661 |
+
#: loggers/SimplePluginLogger.php:953
|
1662 |
+
msgctxt "plugin logger: plugin info thickbox title view all info"
|
1663 |
+
msgid "View plugin info"
|
1664 |
+
msgstr "Vis plugin info"
|
1665 |
+
|
1666 |
+
# @ simple-history
|
1667 |
+
#: loggers/SimplePluginLogger.php:968
|
1668 |
+
msgctxt "plugin logger: plugin info thickbox title"
|
1669 |
+
msgid "View plugin info"
|
1670 |
+
msgstr "Vis plugin info"
|
1671 |
+
|
1672 |
+
# @ simple-history
|
1673 |
+
#: loggers/SimplePluginLogger.php:972
|
1674 |
+
msgctxt "plugin logger: plugin info thickbox title"
|
1675 |
+
msgid "View changelog"
|
1676 |
+
msgstr "Vis changelog"
|
1677 |
+
|
1678 |
+
# @ simple-history
|
1679 |
+
#: loggers/SimplePostLogger.php:38
|
1680 |
+
msgctxt "Post logger: search"
|
1681 |
+
msgid "Posts & Pages"
|
1682 |
+
msgstr "Indlæg & Sider"
|
1683 |
+
|
1684 |
+
# @ simple-history
|
1685 |
+
#: loggers/SimplePostLogger.php:40
|
1686 |
+
msgctxt "Post logger: search"
|
1687 |
+
msgid "Posts created"
|
1688 |
+
msgstr "Indlæg tilføjet"
|
1689 |
+
|
1690 |
+
# @ simple-history
|
1691 |
+
#: loggers/SimplePostLogger.php:43
|
1692 |
+
msgctxt "Post logger: search"
|
1693 |
+
msgid "Posts updated"
|
1694 |
+
msgstr "Indlæg opdateret"
|
1695 |
+
|
1696 |
+
# @ simple-history
|
1697 |
+
#: loggers/SimplePostLogger.php:46
|
1698 |
+
msgctxt "Post logger: search"
|
1699 |
+
msgid "Posts trashed"
|
1700 |
+
msgstr "Indlæg flyttet til papirkurven"
|
1701 |
+
|
1702 |
+
# @ simple-history
|
1703 |
+
#: loggers/SimplePostLogger.php:49
|
1704 |
+
msgctxt "Post logger: search"
|
1705 |
+
msgid "Posts deleted"
|
1706 |
+
msgstr "Indlæg slettet"
|
1707 |
+
|
1708 |
+
# @ simple-history
|
1709 |
+
#: loggers/SimplePostLogger.php:52
|
1710 |
+
msgctxt "Post logger: search"
|
1711 |
+
msgid "Posts restored"
|
1712 |
+
msgstr "Indlæg gendannet"
|
1713 |
+
|
1714 |
+
# @ simple-history
|
1715 |
+
#: loggers/SimpleThemeLogger.php:36
|
1716 |
+
msgctxt "Theme logger: search"
|
1717 |
+
msgid "Themes & Widgets"
|
1718 |
+
msgstr "Tema & Widgets"
|
1719 |
+
|
1720 |
+
# @ simple-history
|
1721 |
+
#: loggers/SimpleThemeLogger.php:38
|
1722 |
+
msgctxt "Theme logger: search"
|
1723 |
+
msgid "Switched themes"
|
1724 |
+
msgstr "Skiftet temaer"
|
1725 |
+
|
1726 |
+
# @ simple-history
|
1727 |
+
#: loggers/SimpleThemeLogger.php:41
|
1728 |
+
msgctxt "Theme logger: search"
|
1729 |
+
msgid "Changed appearance of themes"
|
1730 |
+
msgstr "Skiftet udseende på temaer"
|
1731 |
+
|
1732 |
+
# @ simple-history
|
1733 |
+
#: loggers/SimpleThemeLogger.php:44
|
1734 |
+
msgctxt "Theme logger: search"
|
1735 |
+
msgid "Added widgets"
|
1736 |
+
msgstr "Tilføjet widgets"
|
1737 |
+
|
1738 |
+
# @ simple-history
|
1739 |
+
#: loggers/SimpleThemeLogger.php:47
|
1740 |
+
msgctxt "Theme logger: search"
|
1741 |
+
msgid "Removed widgets"
|
1742 |
+
msgstr "Fjernet widgets"
|
1743 |
+
|
1744 |
+
# @ simple-history
|
1745 |
+
#: loggers/SimpleThemeLogger.php:50
|
1746 |
+
msgctxt "Theme logger: search"
|
1747 |
+
msgid "Changed widgets order"
|
1748 |
+
msgstr "Ændret widget rækkefølge"
|
1749 |
+
|
1750 |
+
# @ simple-history
|
1751 |
+
#: loggers/SimpleThemeLogger.php:53
|
1752 |
+
msgctxt "Theme logger: search"
|
1753 |
+
msgid "Edited widgets"
|
1754 |
+
msgstr "Ændret widgets"
|
1755 |
+
|
1756 |
+
# @ simple-history
|
1757 |
+
#: loggers/SimpleThemeLogger.php:56
|
1758 |
+
msgctxt "Theme logger: search"
|
1759 |
+
msgid "Background of themes changed"
|
1760 |
+
msgstr "Baggrund og tema ændret"
|
1761 |
+
|
1762 |
+
# @ simple-history
|
1763 |
+
#: loggers/SimpleUserLogger.php:36
|
1764 |
+
msgctxt "User destroys other login sessions for themself"
|
1765 |
+
msgid "Logged out from all other sessions"
|
1766 |
+
msgstr "Loggede ud fra alle andre sessioner"
|
1767 |
+
|
1768 |
+
# @ simple-history
|
1769 |
+
#: loggers/SimpleUserLogger.php:45
|
1770 |
+
msgctxt "User destroys all login sessions for a user"
|
1771 |
+
msgid "Logged out \"{user_display_name}\" from all sessions"
|
1772 |
+
msgstr "Loggede ud \"{user_display_name}\" fra alle sessioner"
|
1773 |
+
|
1774 |
+
# @ simple-history
|
1775 |
+
#: templates/settings-statsRowsPerDay.php:36
|
1776 |
+
msgctxt "stats: date in rows per day chart"
|
1777 |
+
msgid "M j"
|
1778 |
+
msgstr "j. F"
|
1779 |
+
|
1780 |
+
# @ simple-history
|
1781 |
+
#~ msgid "+%1$s more"
|
1782 |
+
#~ msgstr "+%1$s more"
|
1783 |
+
|
1784 |
+
# @ simple-history
|
1785 |
+
#~ msgid "%1$d event today from one user."
|
1786 |
+
#~ msgstr "%1$d event i dag fra én bruger."
|
1787 |
+
|
1788 |
+
# @ simple-history
|
1789 |
+
#~ msgid "Filter"
|
1790 |
+
#~ msgstr "Filtrer"
|
languages/simple-history-de_DE.mo
CHANGED
Binary file
|
languages/simple-history-de_DE.po
CHANGED
@@ -1,376 +1,1582 @@
|
|
1 |
-
#
|
2 |
-
#
|
3 |
-
# This file is distributed under the same license as the package.
|
4 |
-
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
|
5 |
-
#
|
6 |
msgid ""
|
7 |
msgstr ""
|
8 |
-
"Project-Id-Version: Simple History 0.
|
9 |
-
"Report-Msgid-Bugs-To: http://wordpress.org/
|
10 |
-
"POT-Creation-Date:
|
11 |
-
"PO-Revision-Date:
|
12 |
"Last-Translator: Ralph Stenzel <ralph@klein-aber-fein.de>\n"
|
13 |
"Language-Team: Ralph Stenzel <ralph@klein-aber-fein.de>\n"
|
14 |
"Language: de_DE\n"
|
15 |
"MIME-Version: 1.0\n"
|
16 |
"Content-Type: text/plain; charset=UTF-8\n"
|
17 |
"Content-Transfer-Encoding: 8bit\n"
|
18 |
-
"X-
|
19 |
-
"X-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
|
21 |
-
#:
|
22 |
-
msgid "
|
23 |
-
msgstr "
|
24 |
|
25 |
-
#:
|
26 |
-
msgid "
|
27 |
-
msgstr "
|
28 |
|
29 |
-
|
30 |
-
|
31 |
-
|
|
|
32 |
|
33 |
-
#:
|
34 |
-
msgid "
|
35 |
-
msgstr "
|
36 |
|
37 |
-
#:
|
38 |
-
msgid "
|
39 |
-
msgstr "
|
40 |
|
41 |
-
#:
|
42 |
-
msgid "
|
43 |
-
msgstr "
|
44 |
|
45 |
-
#:
|
46 |
-
msgid "
|
47 |
-
msgstr "
|
48 |
|
49 |
-
#:
|
50 |
-
msgid "
|
51 |
-
msgstr "
|
52 |
|
53 |
-
#:
|
54 |
-
msgid "
|
55 |
-
msgstr "
|
56 |
|
57 |
-
#:
|
58 |
-
msgid "
|
59 |
-
msgstr "
|
60 |
|
61 |
-
#:
|
62 |
-
msgid "
|
63 |
-
msgstr "
|
64 |
|
65 |
-
#:
|
66 |
-
msgid "
|
67 |
-
msgstr "Einstellungen"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
|
69 |
-
#:
|
70 |
-
msgid "History"
|
71 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
72 |
|
73 |
-
#:
|
74 |
-
msgid "
|
75 |
-
msgstr "
|
76 |
|
77 |
-
#:
|
78 |
msgid "Donate"
|
79 |
-
msgstr "
|
80 |
|
81 |
-
#:
|
82 |
-
msgid "
|
83 |
-
|
|
|
|
|
|
|
|
|
84 |
|
85 |
-
#:
|
86 |
-
msgid "
|
87 |
-
msgstr "
|
88 |
|
89 |
-
#:
|
90 |
-
|
91 |
-
|
|
|
92 |
|
93 |
-
#:
|
94 |
-
msgid "
|
95 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
|
97 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
98 |
msgid "History for %s"
|
99 |
-
msgstr "
|
100 |
|
101 |
-
#:
|
|
|
102 |
msgid "WordPress History for %s"
|
103 |
-
msgstr "WordPress
|
104 |
-
|
105 |
-
#: index.php:306
|
106 |
-
msgid "By %s"
|
107 |
-
msgstr "Von %s"
|
108 |
|
109 |
-
#:
|
110 |
-
msgid "
|
111 |
-
|
|
|
|
|
112 |
|
113 |
-
#:
|
114 |
msgid "Wrong RSS secret"
|
115 |
msgstr "Falsche RSS-Geheimadresse"
|
116 |
|
117 |
-
#:
|
118 |
msgid ""
|
119 |
"Your RSS secret for Simple History RSS feed is wrong. Please see WordPress "
|
120 |
"settings for current link to the RSS feed."
|
121 |
msgstr ""
|
122 |
-
"
|
123 |
-
"
|
124 |
-
"
|
125 |
|
126 |
-
#:
|
127 |
-
msgid "
|
128 |
-
|
|
|
|
|
|
|
|
|
129 |
|
130 |
-
#:
|
131 |
-
msgid "
|
132 |
-
|
133 |
-
msgstr[0] ""
|
134 |
-
msgstr[1] ""
|
135 |
|
136 |
-
#:
|
137 |
-
msgid "
|
138 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
|
140 |
-
#:
|
141 |
-
msgid "
|
142 |
-
msgstr "
|
143 |
|
144 |
-
#:
|
145 |
-
msgid "
|
146 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
147 |
|
148 |
-
#:
|
149 |
-
msgid "
|
150 |
-
msgstr "
|
151 |
|
152 |
-
#:
|
153 |
-
msgid "
|
154 |
-
msgstr "
|
155 |
|
156 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
157 |
msgid ""
|
158 |
-
"\
|
159 |
-
"
|
160 |
-
"
|
161 |
-
"
|
162 |
-
|
163 |
-
|
164 |
-
"\
|
165 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
166 |
msgstr ""
|
167 |
-
"
|
168 |
-
"\t\t\tBitte\n"
|
169 |
-
"\t\t\t<a href=\"http://eskapism.se/sida/donate/?"
|
170 |
-
"utm_source=wordpress&utm_medium=settingpage&utm_campaign=simplehistory\">\n"
|
171 |
-
"\t\t\tspenden Sie,\n"
|
172 |
-
"\t\t\t</a> um die Weiterentwicklung dieses Plugins zu unterstützen, und "
|
173 |
-
"damit es auch in Zukunft kostenlos bleiben kann.\n"
|
174 |
-
"\t\t\tDanke!\n"
|
175 |
-
"\t\t\t"
|
176 |
|
177 |
-
#:
|
178 |
-
msgid "
|
179 |
-
msgstr "
|
180 |
|
181 |
-
#:
|
182 |
msgid ""
|
183 |
-
"
|
184 |
-
"
|
185 |
msgstr ""
|
186 |
-
"
|
187 |
-
"
|
188 |
|
189 |
-
#:
|
190 |
msgid ""
|
191 |
-
"
|
192 |
-
"
|
193 |
msgstr ""
|
194 |
-
"
|
195 |
-
"
|
196 |
-
"Adresse in falsche Hände gekommen sein könnte."
|
197 |
|
198 |
-
#:
|
199 |
-
msgid "
|
200 |
-
msgstr "
|
201 |
|
202 |
-
#:
|
203 |
-
msgid "
|
204 |
-
msgstr "
|
205 |
|
206 |
-
#:
|
207 |
-
msgid "
|
208 |
-
msgstr "
|
209 |
|
210 |
-
#:
|
211 |
-
msgid "
|
212 |
-
msgstr "
|
|
|
|
|
213 |
|
214 |
-
#:
|
215 |
-
msgid "
|
216 |
-
|
|
|
|
|
|
|
|
|
217 |
|
218 |
-
#:
|
219 |
-
msgid "
|
220 |
-
msgstr "
|
221 |
|
222 |
-
#:
|
223 |
-
msgid "
|
224 |
-
msgstr "
|
225 |
|
226 |
-
#:
|
227 |
-
msgid "
|
228 |
-
msgstr "
|
229 |
|
230 |
-
#:
|
231 |
-
msgid "
|
232 |
-
msgstr "
|
233 |
|
234 |
-
#:
|
235 |
-
msgid "
|
236 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
237 |
|
238 |
-
#:
|
239 |
-
msgid "
|
240 |
-
msgstr "
|
241 |
|
242 |
-
#:
|
243 |
-
msgid "
|
244 |
-
msgstr "
|
245 |
|
246 |
-
#:
|
247 |
-
msgid "
|
248 |
-
msgstr "
|
249 |
|
250 |
-
#:
|
251 |
-
msgid "
|
252 |
-
msgstr "
|
253 |
|
254 |
-
#:
|
255 |
-
msgid "
|
256 |
-
msgstr "
|
257 |
|
258 |
-
#:
|
259 |
-
msgid "
|
260 |
-
msgstr "
|
|
|
|
|
261 |
|
262 |
-
#:
|
263 |
-
msgid "
|
264 |
-
msgstr "
|
265 |
|
266 |
-
|
267 |
-
msgid "
|
268 |
-
msgstr "
|
269 |
|
270 |
-
|
271 |
-
msgid "
|
272 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
273 |
|
274 |
-
#:
|
275 |
-
|
276 |
-
|
|
|
277 |
|
278 |
-
#:
|
279 |
-
|
280 |
-
|
|
|
|
|
|
|
|
|
|
|
281 |
|
282 |
-
#:
|
283 |
-
|
284 |
-
|
|
|
285 |
|
286 |
-
#:
|
287 |
-
|
288 |
-
|
|
|
|
|
|
|
|
|
|
|
289 |
|
290 |
-
#:
|
291 |
-
|
292 |
-
|
|
|
293 |
|
294 |
-
#:
|
295 |
-
|
296 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
297 |
|
298 |
-
#:
|
299 |
-
|
300 |
-
|
|
|
|
|
|
|
301 |
|
302 |
-
#:
|
303 |
-
|
304 |
-
|
|
|
|
|
|
|
305 |
|
306 |
-
#:
|
|
|
307 |
msgid ""
|
308 |
-
"
|
309 |
-
"
|
310 |
msgstr ""
|
311 |
-
"
|
312 |
-
"
|
313 |
|
314 |
-
#:
|
315 |
-
|
316 |
-
|
|
|
|
|
|
|
|
|
|
|
317 |
|
318 |
-
#:
|
319 |
-
|
320 |
-
|
|
|
|
|
|
|
321 |
|
322 |
-
#:
|
323 |
-
|
324 |
-
|
|
|
|
|
|
|
|
|
|
|
325 |
|
326 |
-
#:
|
327 |
-
|
328 |
-
|
|
|
|
|
|
|
|
|
|
|
329 |
|
330 |
-
#:
|
331 |
-
|
332 |
-
|
|
|
|
|
|
|
|
|
|
|
333 |
|
334 |
-
#:
|
335 |
-
|
336 |
-
|
|
|
|
|
|
|
|
|
|
|
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 |
|
366 |
-
|
367 |
-
|
|
|
|
|
|
|
368 |
|
369 |
-
|
370 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
371 |
|
372 |
-
|
373 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
374 |
|
375 |
-
|
376 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Copyright (C) 2014 Simple History
|
2 |
+
# This file is distributed under the same license as the Simple History package.
|
|
|
|
|
|
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Simple History 2.0.3\n"
|
6 |
+
"Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/Simple-History\n"
|
7 |
+
"POT-Creation-Date: 2015-01-26 15:41:57+00:00\n"
|
8 |
+
"PO-Revision-Date: 2015-02-15 19:00+0100\n"
|
9 |
"Last-Translator: Ralph Stenzel <ralph@klein-aber-fein.de>\n"
|
10 |
"Language-Team: Ralph Stenzel <ralph@klein-aber-fein.de>\n"
|
11 |
"Language: de_DE\n"
|
12 |
"MIME-Version: 1.0\n"
|
13 |
"Content-Type: text/plain; charset=UTF-8\n"
|
14 |
"Content-Transfer-Encoding: 8bit\n"
|
15 |
+
"X-Generator: Poedit 1.7.4\n"
|
16 |
+
"X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;"
|
17 |
+
"_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;"
|
18 |
+
"esc_html_x:1,2c\n"
|
19 |
+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
20 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
21 |
+
"X-Poedit-Basepath: ../\n"
|
22 |
+
"X-Textdomain-Support: yes\n"
|
23 |
+
"X-Poedit-SearchPath-0: .\n"
|
24 |
+
|
25 |
+
#: SimpleHistory.php:504 SimpleHistory.php:765
|
26 |
+
msgid "Settings"
|
27 |
+
msgstr "Einstellungen"
|
28 |
|
29 |
+
#: SimpleHistory.php:515
|
30 |
+
msgid "Log (debug)"
|
31 |
+
msgstr "Logbuch (Fehlersuche)"
|
32 |
|
33 |
+
#: SimpleHistory.php:520
|
34 |
+
msgid "Styles example (debug)"
|
35 |
+
msgstr "Stil-Beispiel (Fehlersuche)"
|
36 |
|
37 |
+
#. Plugin Name of the plugin/theme
|
38 |
+
#: SimpleHistory.php:780
|
39 |
+
msgid "Simple History"
|
40 |
+
msgstr "Simple History"
|
41 |
|
42 |
+
#: SimpleHistory.php:856
|
43 |
+
msgid "Remove all log items?"
|
44 |
+
msgstr "Alle Einträge im Logbuch entfernen?"
|
45 |
|
46 |
+
#: SimpleHistory.php:858
|
47 |
+
msgid "Go to the first page"
|
48 |
+
msgstr "Gehe zur ersten Seite"
|
49 |
|
50 |
+
#: SimpleHistory.php:859
|
51 |
+
msgid "Go to the previous page"
|
52 |
+
msgstr "Gehe zur vorherigen Seite"
|
53 |
|
54 |
+
#: SimpleHistory.php:860
|
55 |
+
msgid "Go to the next page"
|
56 |
+
msgstr "Gehe zur nächsten Seite"
|
57 |
|
58 |
+
#: SimpleHistory.php:861
|
59 |
+
msgid "Go to the last page"
|
60 |
+
msgstr "Gehe zur letzten Seite"
|
61 |
|
62 |
+
#: SimpleHistory.php:862
|
63 |
+
msgid "Current page"
|
64 |
+
msgstr "Aktuelle Seite"
|
65 |
|
66 |
+
#: SimpleHistory.php:864
|
67 |
+
msgid "Oups, the log could not be loaded right now."
|
68 |
+
msgstr "Hoppla, das Logbuch konnte eben nicht geladen werden."
|
69 |
|
70 |
+
#: SimpleHistory.php:865
|
71 |
+
msgid "Your search did not match any history events."
|
72 |
+
msgstr "Deine Suche erbrachte keine Übereinstimmungen mit Ereignissen."
|
73 |
|
74 |
+
#: SimpleHistory.php:1149 SimpleHistory.php:1250
|
75 |
+
msgid "Simple History Settings"
|
76 |
+
msgstr "Simple History Einstellungen"
|
77 |
+
|
78 |
+
#: SimpleHistory.php:1183
|
79 |
+
msgid "No valid callback found"
|
80 |
+
msgstr "Kein valider Rückruf gefunden"
|
81 |
+
|
82 |
+
#: SimpleHistory.php:1271
|
83 |
+
msgid "Cleared database"
|
84 |
+
msgstr "Datenbank geleert"
|
85 |
+
|
86 |
+
#: SimpleHistory.php:1298
|
87 |
+
msgid "Show history"
|
88 |
+
msgstr "Zeige Logbuch"
|
89 |
+
|
90 |
+
#: SimpleHistory.php:1311
|
91 |
+
msgid "Number of items per page"
|
92 |
+
msgstr "Zahl der Einträge pro Seite"
|
93 |
+
|
94 |
+
#: SimpleHistory.php:1323
|
95 |
+
msgid "Clear log"
|
96 |
+
msgstr "Logbuch leeren"
|
97 |
+
|
98 |
+
#: SimpleHistory.php:1462
|
99 |
+
msgid "on the dashboard"
|
100 |
+
msgstr "auf dem Dashboard"
|
101 |
+
|
102 |
+
#: SimpleHistory.php:1467
|
103 |
+
msgid "as a page under the dashboard menu"
|
104 |
+
msgstr "als eine Seite im Dashboard-Menü"
|
105 |
+
|
106 |
+
#: SimpleHistory.php:1483
|
107 |
+
msgid "Items in the database are automatically removed after %1$s days."
|
108 |
+
msgstr "Einträge in der Datenbank werden nach %1$s Tagen automatisch entfernt."
|
109 |
+
|
110 |
+
#: SimpleHistory.php:1485
|
111 |
+
msgid "Items in the database are kept forever."
|
112 |
+
msgstr "Einträge in der Datenbank werden auf ewig behalten."
|
113 |
+
|
114 |
+
#: SimpleHistory.php:1489
|
115 |
+
msgid "Clear log now"
|
116 |
+
msgstr "Logbuch jetzt leeren"
|
117 |
|
118 |
+
#: SimpleHistory.php:1533
|
119 |
+
msgid "The log for Simple History was cleared ({num_rows} rows were removed)."
|
120 |
+
msgstr ""
|
121 |
+
"Das Logbuch von Simple History wurde geleert ({num_rows} Zeilen wurden "
|
122 |
+
"entfernt)."
|
123 |
+
|
124 |
+
#: SimpleHistory.php:1793
|
125 |
+
msgid "+%1$s similar event"
|
126 |
+
msgid_plural "+%1$s similar events"
|
127 |
+
msgstr[0] "+%1$s gleichartiges Ereignis"
|
128 |
+
msgstr[1] "+%1$s gleichartige Ereignisse"
|
129 |
+
|
130 |
+
#: SimpleHistory.php:1800
|
131 |
+
msgid "Loading…"
|
132 |
+
msgstr "Lade..."
|
133 |
+
|
134 |
+
#: SimpleHistory.php:1807
|
135 |
+
msgid "Showing %1$s more"
|
136 |
+
msgstr "Zeige %1$s mehr"
|
137 |
+
|
138 |
+
#: SimpleHistory.php:1826
|
139 |
+
msgid "Context data"
|
140 |
+
msgstr "Kontext-Daten"
|
141 |
+
|
142 |
+
#: SimpleHistory.php:1827
|
143 |
+
msgid "This is potentially useful meta data that a logger has saved."
|
144 |
+
msgstr ""
|
145 |
+
"Dies sind potentiell nützliche Meta-Daten, die ein Logger abgespeichert hat."
|
146 |
+
|
147 |
+
#: SimpleHistory.php:2302
|
148 |
+
msgid "No events today so far."
|
149 |
+
msgstr "Heute sind noch keine Ereignisse aufgetreten."
|
150 |
+
|
151 |
+
#: SimpleHistory.php:2321
|
152 |
+
msgid "One event today from one user."
|
153 |
+
msgstr "Ein Ereignis heute von einem Benutzer."
|
154 |
+
|
155 |
+
#: SimpleHistory.php:2327
|
156 |
+
msgid "One event today from one source."
|
157 |
+
msgstr "Ein Ereignis heute aus einer Quelle."
|
158 |
+
|
159 |
+
#: SimpleHistory.php:2333
|
160 |
+
msgid "%1$d events today from one user."
|
161 |
+
msgstr "%1$d Ereignisse heute von einem Benutzer."
|
162 |
+
|
163 |
+
#: SimpleHistory.php:2339
|
164 |
+
msgid "%1$d events today from %2$d users."
|
165 |
+
msgstr "%1$d Ereignisse heute von %2$d Benutzern."
|
166 |
+
|
167 |
+
#: SimpleHistory.php:2345 SimpleHistory.php:2351
|
168 |
+
msgid "%1$d events today from one user and one other source."
|
169 |
+
msgstr "%1$d Ereignisse heute von einem Benutzer und einer anderen Quelle."
|
170 |
+
|
171 |
+
#: SimpleHistory.php:2357
|
172 |
+
msgid "%1$d events today from one user and %3$d other sources."
|
173 |
+
msgstr "%1$d Ereignisse heute von einem Benutzer und %3$d anderen Quellen."
|
174 |
|
175 |
+
#: SimpleHistory.php:2363
|
176 |
+
msgid "%1$s events today from %2$d users and %3$d other sources."
|
177 |
+
msgstr "%1$s Ereignisse heute von %2$d Benutzern und %3$d anderen Quellen."
|
178 |
|
179 |
+
#: dropins/SimpleHistoryDonateDropin.php:36
|
180 |
msgid "Donate"
|
181 |
+
msgstr "Spende"
|
182 |
|
183 |
+
#: dropins/SimpleHistoryDonateDropin.php:72
|
184 |
+
msgid ""
|
185 |
+
"If you find Simple History useful please <a href=\"%1$s\">donate</a> or <a "
|
186 |
+
"href=\"%2$s\">buy me something from my Amazon wish list</a>."
|
187 |
+
msgstr ""
|
188 |
+
"Falls Du Simple History nützlich findest, <a href=\"%1$s\">spende</a> bitte "
|
189 |
+
"oder <a href=\"%2$s\">kaufe mir etwas von meinem Amazon-Wunschzettel</a>."
|
190 |
|
191 |
+
#: dropins/SimpleHistoryFilterDropin.php:44
|
192 |
+
msgid "Filter history"
|
193 |
+
msgstr "Filter-Historie"
|
194 |
|
195 |
+
#: dropins/SimpleHistoryFilterDropin.php:48
|
196 |
+
#: dropins/SimpleHistoryFilterDropin.php:159
|
197 |
+
msgid "Search events"
|
198 |
+
msgstr "Durchsuche Ereignisse"
|
199 |
|
200 |
+
#: dropins/SimpleHistoryFilterDropin.php:56
|
201 |
+
msgid "All log levels"
|
202 |
+
msgstr "Alle Logbuch-Ebenen"
|
203 |
+
|
204 |
+
#: dropins/SimpleHistoryFilterDropin.php:70
|
205 |
+
msgid "All messages"
|
206 |
+
msgstr "Alle Nachrichten"
|
207 |
+
|
208 |
+
#: dropins/SimpleHistoryFilterDropin.php:124
|
209 |
+
msgid "All users"
|
210 |
+
msgstr "Alle Benutzer"
|
211 |
+
|
212 |
+
#: dropins/SimpleHistoryFilterDropin.php:145
|
213 |
+
msgid "All dates"
|
214 |
+
msgstr "Alle Tage"
|
215 |
+
|
216 |
+
#: dropins/SimpleHistoryFilterDropin.php:168
|
217 |
+
msgid "Search"
|
218 |
+
msgstr "Suche"
|
219 |
+
|
220 |
+
#: dropins/SimpleHistoryNewRowsNotifier.php:80
|
221 |
+
msgid "1 new row"
|
222 |
+
msgid_plural "%d new rows"
|
223 |
+
msgstr[0] "1 neue Zeile"
|
224 |
+
msgstr[1] "%d neue Zeilen"
|
225 |
+
|
226 |
+
#: dropins/SimpleHistoryRSSDropin.php:55
|
227 |
+
msgid "Address"
|
228 |
+
msgstr "Adresse"
|
229 |
|
230 |
+
#: dropins/SimpleHistoryRSSDropin.php:64
|
231 |
+
msgid "Regenerate"
|
232 |
+
msgstr "Wiederherstellen"
|
233 |
+
|
234 |
+
#: dropins/SimpleHistoryRSSDropin.php:81
|
235 |
+
msgid "Created new secret RSS address"
|
236 |
+
msgstr "Neue RSS-Geheim-Adresse erzeugt"
|
237 |
+
|
238 |
+
#: dropins/SimpleHistoryRSSDropin.php:148
|
239 |
+
#: dropins/SimpleHistoryRSSDropin.php:259
|
240 |
msgid "History for %s"
|
241 |
+
msgstr "Historie für"
|
242 |
|
243 |
+
#: dropins/SimpleHistoryRSSDropin.php:149
|
244 |
+
#: dropins/SimpleHistoryRSSDropin.php:260
|
245 |
msgid "WordPress History for %s"
|
246 |
+
msgstr "WordPress Historie für %s"
|
|
|
|
|
|
|
|
|
247 |
|
248 |
+
#: dropins/SimpleHistoryRSSDropin.php:196
|
249 |
+
msgid "+%1$s occasion"
|
250 |
+
msgid_plural "+%1$s occasions"
|
251 |
+
msgstr[0] "+%1$s Vorkommnis"
|
252 |
+
msgstr[1] "+%1$s Vorkommnisse"
|
253 |
|
254 |
+
#: dropins/SimpleHistoryRSSDropin.php:263
|
255 |
msgid "Wrong RSS secret"
|
256 |
msgstr "Falsche RSS-Geheimadresse"
|
257 |
|
258 |
+
#: dropins/SimpleHistoryRSSDropin.php:264
|
259 |
msgid ""
|
260 |
"Your RSS secret for Simple History RSS feed is wrong. Please see WordPress "
|
261 |
"settings for current link to the RSS feed."
|
262 |
msgstr ""
|
263 |
+
"Deine RSS-Geheimadresse für den Simple-History-RSS-Feed ist falsch. Bitte "
|
264 |
+
"schlage in den WordPress-Einstellungen die aktuelle Verlinkung des RSS-Feeds "
|
265 |
+
"nach."
|
266 |
|
267 |
+
#: dropins/SimpleHistoryRSSDropin.php:315
|
268 |
+
msgid ""
|
269 |
+
"You can generate a new address for the RSS feed. This is useful if you think "
|
270 |
+
"that the address has fallen into the wrong hands."
|
271 |
+
msgstr ""
|
272 |
+
"Du kannst eine neue Adresse für den RSS-Feed erzeugen. Dies ist hilfreich "
|
273 |
+
"falls Du denkst, daß die Adresse in die falschen Hände geraten sein könnte."
|
274 |
|
275 |
+
#: dropins/SimpleHistoryRSSDropin.php:318
|
276 |
+
msgid "Generate new address"
|
277 |
+
msgstr "Erzeuge neue Adresse"
|
|
|
|
|
278 |
|
279 |
+
#: dropins/SimpleHistoryRSSDropin.php:346
|
280 |
+
msgid ""
|
281 |
+
"Simple History has a RSS feed which you can subscribe to and receive log "
|
282 |
+
"updates. Make sure you only share the feed with people you trust, since it "
|
283 |
+
"can contain sensitive or confidential information."
|
284 |
+
msgstr ""
|
285 |
+
"Simple History hat einen RSS-Feed, den Du abonnieren kannst, um Updates in "
|
286 |
+
"der Logdatei zu empfangen. Stelle sicher, daß Du den Feed nur Menschen Deines "
|
287 |
+
"Vertrauens zugänglich machst, denn er kann sensible und vertrauliche "
|
288 |
+
"Informationen enthalten."
|
289 |
|
290 |
+
#: dropins/SimpleHistorySettingsLogtestDropin.php:20
|
291 |
+
msgid "Test data (debug)"
|
292 |
+
msgstr "Test-Daten (Fehlersuche)"
|
293 |
|
294 |
+
#: dropins/SimpleHistorySettingsStatsDropin.php:27
|
295 |
+
msgid "Stats"
|
296 |
+
msgstr "Statistiken"
|
297 |
+
|
298 |
+
#: dropins/SimpleHistorySidebarDropin.php:159 loggers/SimpleLogger.php:296
|
299 |
+
msgid "Just now"
|
300 |
+
msgstr "gerade eben"
|
301 |
+
|
302 |
+
#: index.php:59
|
303 |
+
msgid ""
|
304 |
+
"Simple History is a great plugin, but to use it your server must have at "
|
305 |
+
"least PHP 5.3 installed (you have version %s)."
|
306 |
+
msgstr ""
|
307 |
+
"Simple History ist ein großartiges Plugin, aber zu seiner Benutzung muß Dein "
|
308 |
+
"Server mindestens PHP 5.3 installiert haben (Du hast Version %s)."
|
309 |
+
|
310 |
+
#: loggers/SimpleCommentsLogger.php:685
|
311 |
+
msgid "Spam"
|
312 |
+
msgstr "Spam"
|
313 |
+
|
314 |
+
#: loggers/SimpleCommentsLogger.php:687
|
315 |
+
msgid "Approved"
|
316 |
+
msgstr "genehmigt"
|
317 |
+
|
318 |
+
#: loggers/SimpleCommentsLogger.php:689
|
319 |
+
msgid "Pending"
|
320 |
+
msgstr "schwebend"
|
321 |
+
|
322 |
+
#: loggers/SimpleCommentsLogger.php:703
|
323 |
+
msgid "Trackback"
|
324 |
+
msgstr "Trackback"
|
325 |
+
|
326 |
+
#: loggers/SimpleCommentsLogger.php:705
|
327 |
+
msgid "Pingback"
|
328 |
+
msgstr "Pingback"
|
329 |
+
|
330 |
+
#: loggers/SimpleCommentsLogger.php:707
|
331 |
+
msgid "Comment"
|
332 |
+
msgstr "Kommentar"
|
333 |
+
|
334 |
+
#: loggers/SimpleCoreUpdatesLogger.php:29
|
335 |
+
msgid "Updated WordPress from {prev_version} to {new_version}"
|
336 |
+
msgstr "WordPress von {prev_version} auf {new_version} aktualisiert"
|
337 |
+
|
338 |
+
#: loggers/SimpleCoreUpdatesLogger.php:30
|
339 |
+
msgid "WordPress auto-updated from {prev_version} to {new_version}"
|
340 |
+
msgstr "WordPress automatisch von {prev_version} auf {new_version} aktualisiert"
|
341 |
+
|
342 |
+
#: loggers/SimpleExportLogger.php:23
|
343 |
+
msgid "Created XML export"
|
344 |
+
msgstr "XML-Export erzeugt"
|
345 |
+
|
346 |
+
#: loggers/SimpleLegacyLogger.php:88
|
347 |
+
msgid "By %s"
|
348 |
+
msgstr "von %s"
|
349 |
+
|
350 |
+
#: loggers/SimpleLegacyLogger.php:93
|
351 |
+
msgid "%d occasions"
|
352 |
+
msgstr "%d Vorkommnisse"
|
353 |
+
|
354 |
+
#: loggers/SimpleLogger.php:203
|
355 |
+
msgid "Deleted user (had id %1$s, email %2$s, login %3$s)"
|
356 |
+
msgstr "gelöschter Benutzer (hatte ID %1$s, E-Mail %2$s, Login %3$s)"
|
357 |
+
|
358 |
+
#: loggers/SimpleLogger.php:218
|
359 |
+
msgid "Anonymous web user"
|
360 |
+
msgstr "Anonymer Netz-Nutzer"
|
361 |
+
|
362 |
+
#: loggers/SimpleLogger.php:226
|
363 |
+
msgid "Anonymous user from %1$s"
|
364 |
+
msgstr "Anonymer Benutzer von %1$s"
|
365 |
+
|
366 |
+
#. translators: Date format for log row header, see http:php.net/date
|
367 |
+
#: loggers/SimpleLogger.php:301
|
368 |
+
msgid "M j, Y \\a\\t G:i"
|
369 |
+
msgstr "j. M. Y \\u\\m G:i \\U\\h\\r"
|
370 |
+
|
371 |
+
#. translators: 1: last modified date and time in human time diff-format
|
372 |
+
#: loggers/SimpleLogger.php:309
|
373 |
+
msgid "%1$s ago"
|
374 |
+
msgstr "vor %1$s"
|
375 |
+
|
376 |
+
#: loggers/SimpleMediaLogger.php:23
|
377 |
+
msgid "Created {post_type} \"{attachment_title}\""
|
378 |
+
msgstr "hat {post_type} \"{attachment_title}\" erzeugt"
|
379 |
+
|
380 |
+
#: loggers/SimpleMediaLogger.php:24
|
381 |
+
msgid "Edited {post_type} \"{attachment_title}\""
|
382 |
+
msgstr "hat {post_type} \"{attachment_title}\" geändert"
|
383 |
+
|
384 |
+
#: loggers/SimpleMediaLogger.php:25
|
385 |
+
msgid "Deleted {post_type} \"{attachment_title}\" (\"{attachment_filename}\")"
|
386 |
+
msgstr ""
|
387 |
+
"hat {post_type} \"{attachment_title}\" (\"{attachment_filename}\") gelöscht"
|
388 |
+
|
389 |
+
#: loggers/SimpleMediaLogger.php:81
|
390 |
+
msgid "Edited {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
|
391 |
+
msgstr ""
|
392 |
+
"hat {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a> geändert"
|
393 |
+
|
394 |
+
#: loggers/SimpleMediaLogger.php:85
|
395 |
+
msgid "Uploaded {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
|
396 |
+
msgstr ""
|
397 |
+
"hat {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a> hochgeladen"
|
398 |
+
|
399 |
+
#: loggers/SimpleMediaLogger.php:197
|
400 |
+
msgid "{attachment_thumb}"
|
401 |
+
msgstr "{attachment_thumb}"
|
402 |
+
|
403 |
+
#: loggers/SimpleMediaLogger.php:206
|
404 |
+
msgid "{attachment_size_format}"
|
405 |
+
msgstr "{attachment_size_format}"
|
406 |
+
|
407 |
+
#: loggers/SimpleMediaLogger.php:207
|
408 |
+
msgid "{attachment_filetype_extension}"
|
409 |
+
msgstr "{attachment_filetype_extension}"
|
410 |
+
|
411 |
+
#: loggers/SimpleMediaLogger.php:209
|
412 |
+
msgid "{full_image_width} × {full_image_height}"
|
413 |
+
msgstr "{full_image_width} × {full_image_height}"
|
414 |
+
|
415 |
+
#: loggers/SimpleMenuLogger.php:23
|
416 |
+
msgid "Created menu \"{menu_name}\""
|
417 |
+
msgstr "hat Menü \"{menu_name}\" erzeugt"
|
418 |
+
|
419 |
+
#: loggers/SimpleMenuLogger.php:24
|
420 |
+
msgid "Edited menu \"{menu_name}\""
|
421 |
+
msgstr "hat Menü \"{menu_name}\" geändert"
|
422 |
+
|
423 |
+
#: loggers/SimpleMenuLogger.php:25
|
424 |
+
msgid "Deleted menu \"{menu_name}\""
|
425 |
+
msgstr "hat Menü \"{menu_name}\" gelöscht"
|
426 |
+
|
427 |
+
#: loggers/SimpleMenuLogger.php:26
|
428 |
+
msgid "Edited a menu item"
|
429 |
+
msgstr "hat Menü-Eintrag geändert"
|
430 |
+
|
431 |
+
#: loggers/SimpleMenuLogger.php:27
|
432 |
+
msgid "Updated menu locations"
|
433 |
+
msgstr "hat Menü-Positionen aktualisiert"
|
434 |
+
|
435 |
+
#: loggers/SimpleOptionsLogger.php:140
|
436 |
+
msgid "Updated option \"{option}\""
|
437 |
+
msgstr "hat Option \"{option}\" aktualisiert"
|
438 |
+
|
439 |
+
#: loggers/SimpleOptionsLogger.php:242 loggers/SimpleThemeLogger.php:570
|
440 |
+
msgid "New value"
|
441 |
+
msgstr "neuer Wert"
|
442 |
+
|
443 |
+
#: loggers/SimpleOptionsLogger.php:253 loggers/SimpleThemeLogger.php:582
|
444 |
+
msgid "Old value"
|
445 |
+
msgstr "alter Wert"
|
446 |
|
447 |
+
#: loggers/SimpleOptionsLogger.php:268 loggers/SimpleOptionsLogger.php:285
|
448 |
+
msgid "Settings page"
|
449 |
+
msgstr "Einstellungs-Seite"
|
450 |
|
451 |
+
#: loggers/SimplePostLogger.php:30
|
452 |
+
msgid "Created {post_type} \"{post_title}\""
|
453 |
+
msgstr "hat {post_type} \"{post_title}\" erzeugt"
|
454 |
|
455 |
+
#: loggers/SimplePostLogger.php:31
|
456 |
+
msgid "Updated {post_type} \"{post_title}\""
|
457 |
+
msgstr "hat {post_type} \"{post_title}\" aktualisiert"
|
458 |
+
|
459 |
+
#: loggers/SimplePostLogger.php:32
|
460 |
+
msgid "Restored {post_type} \"{post_title}\" from trash"
|
461 |
+
msgstr "hat {post_type} \"{post_title}\" aus dem Papierkorb wiederhergestellt"
|
462 |
+
|
463 |
+
#: loggers/SimplePostLogger.php:33 loggers/SimplePostLogger.php:236
|
464 |
+
msgid "Deleted {post_type} \"{post_title}\""
|
465 |
+
msgstr "hat {post_type} \"{post_title}\" gelöscht"
|
466 |
+
|
467 |
+
#: loggers/SimplePostLogger.php:34
|
468 |
+
msgid "Moved {post_type} \"{post_title}\" to the trash"
|
469 |
+
msgstr "hat {post_type} \"{post_title}\" in den Papierkorb verschoben"
|
470 |
+
|
471 |
+
#: loggers/SimplePostLogger.php:232
|
472 |
+
msgid "Updated {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a>"
|
473 |
+
msgstr ""
|
474 |
+
"hat {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a> aktualisiert"
|
475 |
+
|
476 |
+
#: loggers/SimplePostLogger.php:240
|
477 |
+
msgid "Created {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a>"
|
478 |
+
msgstr "hat {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a> erzeugt"
|
479 |
+
|
480 |
+
#: loggers/SimplePostLogger.php:245
|
481 |
msgid ""
|
482 |
+
"Moved {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a> to the trash"
|
483 |
+
msgstr ""
|
484 |
+
"hat {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a> in den "
|
485 |
+
"Papierkorb verschoben"
|
486 |
+
|
487 |
+
#: loggers/SimpleThemeLogger.php:26
|
488 |
+
msgid "Switched theme to \"{theme_name}\" from \"{prev_theme_name}\""
|
489 |
+
msgstr ""
|
490 |
+
"hat zum Theme \"{theme_name}\" umgeschaltet von \"{prev_theme_name}\" aus"
|
491 |
+
|
492 |
+
#: loggers/SimpleThemeLogger.php:27
|
493 |
+
msgid "Customized theme appearance \"{setting_id}\""
|
494 |
+
msgstr "hat Theme-Erscheinungsbild \"{setting_id}\" individualisiert"
|
495 |
+
|
496 |
+
#: loggers/SimpleThemeLogger.php:28
|
497 |
+
msgid "Removed widget \"{widget_id_base}\" from sidebar \"{sidebar_id}\""
|
498 |
+
msgstr ""
|
499 |
+
"hat Widget \"{widget_id_base}\" aus der Sidebar \"{sidebar_id}\" entfernt"
|
500 |
+
|
501 |
+
#: loggers/SimpleThemeLogger.php:29
|
502 |
+
msgid "Added widget \"{widget_id_base}\" to sidebar \"{sidebar_id}\""
|
503 |
+
msgstr ""
|
504 |
+
"hat Widget \"{widget_id_base}\" zur Sidebar \"{sidebar_id}\" hinzugefügt"
|
505 |
+
|
506 |
+
#: loggers/SimpleThemeLogger.php:30
|
507 |
+
msgid "Changed widget order \"{widget_id_base}\" in sidebar \"{sidebar_id}\""
|
508 |
+
msgstr ""
|
509 |
+
"hat Widget-Sortierung \"{widget_id_base}\" in der Sidebar \"{sidebar_id}\" "
|
510 |
+
"geändert"
|
511 |
+
|
512 |
+
#: loggers/SimpleThemeLogger.php:31
|
513 |
+
msgid "Changed widget \"{widget_id_base}\" in sidebar \"{sidebar_id}\""
|
514 |
+
msgstr ""
|
515 |
+
"hat Widget \"{widget_id_base}\" in der Sidebar \"{sidebar_id}\" geändert"
|
516 |
+
|
517 |
+
#: loggers/SimpleThemeLogger.php:32
|
518 |
+
msgid "Changed settings for the theme custom background"
|
519 |
msgstr ""
|
520 |
+
"hat Einstellungen für den selbstdefinierten Hintergrund des Themes geändert"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
521 |
|
522 |
+
#: loggers/SimpleThemeLogger.php:532
|
523 |
+
msgid "Section"
|
524 |
+
msgstr "Abschnitt"
|
525 |
|
526 |
+
#: loggers/SimpleUserLogger.php:22
|
527 |
msgid ""
|
528 |
+
"Failed to login to account with username \"{login_user_login}\" because an "
|
529 |
+
"incorrect password was entered"
|
530 |
msgstr ""
|
531 |
+
"Anmeldung mit dem Benutzernamen \"{login_user_login}\" fehlgeschlagen, weil "
|
532 |
+
"ein falsches Paßwort eingegeben wurde"
|
533 |
|
534 |
+
#: loggers/SimpleUserLogger.php:23
|
535 |
msgid ""
|
536 |
+
"Failed to login with username \"{failed_login_username}\" because no user "
|
537 |
+
"with that username exists"
|
538 |
msgstr ""
|
539 |
+
"Anmeldung mit dem Benutzernamen \"{failed_login_username}\" fehlgeschlagen, "
|
540 |
+
"weil kein Benutzer mit diesem Namen existiert"
|
|
|
541 |
|
542 |
+
#: loggers/SimpleUserLogger.php:24
|
543 |
+
msgid "Logged in"
|
544 |
+
msgstr "hat sich angemeldet"
|
545 |
|
546 |
+
#: loggers/SimpleUserLogger.php:25
|
547 |
+
msgid "Unknown user logged in"
|
548 |
+
msgstr "Unbekannter Benutzer hat sich angemeldet"
|
549 |
|
550 |
+
#: loggers/SimpleUserLogger.php:26
|
551 |
+
msgid "Logged out"
|
552 |
+
msgstr "hat sich abgemeldet"
|
553 |
|
554 |
+
#: loggers/SimpleUserLogger.php:27
|
555 |
+
msgid "Edited the profile for user {edited_user_login} ({edited_user_email})"
|
556 |
+
msgstr ""
|
557 |
+
"hat das Profil des Benutzers {edited_user_login} ({edited_user_email}) "
|
558 |
+
"geändert"
|
559 |
|
560 |
+
#: loggers/SimpleUserLogger.php:28
|
561 |
+
msgid ""
|
562 |
+
"Created user {created_user_login} ({created_user_email}) with role "
|
563 |
+
"{created_user_role}"
|
564 |
+
msgstr ""
|
565 |
+
"hat Benutzer {created_user_login} ({created_user_email}) mit der Rolle "
|
566 |
+
"{created_user_role} erzeugt"
|
567 |
|
568 |
+
#: loggers/SimpleUserLogger.php:29
|
569 |
+
msgid "Deleted user {deleted_user_login} ({deleted_user_email})"
|
570 |
+
msgstr "hat den Benutzer {deleted_user_login} ({deleted_user_email}) gelöscht"
|
571 |
|
572 |
+
#: loggers/SimpleUserLogger.php:227
|
573 |
+
msgid "Edited <a href=\"{edit_profile_link}\">your profile</a>"
|
574 |
+
msgstr "hat <a href=\"{edit_profile_link}\">Dein Profil</a> geändert"
|
575 |
|
576 |
+
#: loggers/SimpleUserLogger.php:231
|
577 |
+
msgid "Edited <a href=\"{edit_profile_link}\">their profile</a>"
|
578 |
+
msgstr "hat <a href=\"{edit_profile_link}\">deren Profil</a> geändert"
|
579 |
|
580 |
+
#: loggers/SimpleUserLogger.php:240
|
581 |
+
msgid "Edited your profile"
|
582 |
+
msgstr "hat Dein Profil geändert"
|
583 |
|
584 |
+
#: loggers/SimpleUserLogger.php:251
|
585 |
+
msgid ""
|
586 |
+
"Edited the profile for user <a href="
|
587 |
+
"\"{edit_profile_link}\">{edited_user_login} ({edited_user_email})</a>"
|
588 |
+
msgstr ""
|
589 |
+
"hat das Profil für den Benutzer <a href="
|
590 |
+
"\"{edit_profile_link}\">{edited_user_login} ({edited_user_email})</a> geändert"
|
591 |
+
|
592 |
+
#: node_modules/grunt-wp-i18n/test/fixtures/basic-theme/exclude/file.php:3
|
593 |
+
#: node_modules/grunt-wp-i18n/test/fixtures/plugin-include/plugin-include.php:6
|
594 |
+
msgid "Exclude"
|
595 |
+
msgstr "Schließe aus"
|
596 |
+
|
597 |
+
#: node_modules/grunt-wp-i18n/test/fixtures/plugin-include/include/file.php:2
|
598 |
+
msgid "Include"
|
599 |
+
msgstr "Schließe ein"
|
600 |
+
|
601 |
+
#: node_modules/grunt-wp-i18n/test/fixtures/text-domains/add-domain.php:2
|
602 |
+
#: node_modules/grunt-wp-i18n/test/fixtures/text-domains/update-domains.php:2
|
603 |
+
#: node_modules/grunt-wp-i18n/test/fixtures/text-domains/update-domains.php:3
|
604 |
+
msgid "String"
|
605 |
+
msgstr "String"
|
606 |
+
|
607 |
+
#: templates/settings-statsIntro.php:19
|
608 |
+
msgid "<b>%1$s rows</b> have been logged the last <b>%2$s days</b>"
|
609 |
+
msgstr ""
|
610 |
+
"<b>%1$s Einträge</b> sind in den letzten <b>%2$s Tagen</b> registriert worden"
|
611 |
|
612 |
+
#: templates/settings-statsLogLevels.php:4
|
613 |
+
msgid "Log levels"
|
614 |
+
msgstr "Logbuch-Ebenen"
|
615 |
|
616 |
+
#: templates/settings-statsLogLevels.php:6
|
617 |
+
msgid "Number of rows logged for each log level."
|
618 |
+
msgstr "Zahl der aufgezeichneten Zeilen pro Logbuch-Ebene"
|
619 |
|
620 |
+
#: templates/settings-statsLoggers.php:4
|
621 |
+
msgid "Loggers"
|
622 |
+
msgstr "Logger"
|
623 |
|
624 |
+
#: templates/settings-statsRowsPerDay.php:4
|
625 |
+
msgid "Rows per day"
|
626 |
+
msgstr "Zeilen pro Tag"
|
627 |
|
628 |
+
#: templates/settings-statsUsers.php:4
|
629 |
+
msgid "Users"
|
630 |
+
msgstr "Benutzer"
|
631 |
|
632 |
+
#: templates/settings-statsUsers.php:6
|
633 |
+
msgid "Number of logged items for the 5 users with most logged rows."
|
634 |
+
msgstr ""
|
635 |
+
"Zahl der aufgezeichneten Vorkommnisse für die fünf Benutzer mit den meisten "
|
636 |
+
"Aufzeichnungen."
|
637 |
|
638 |
+
#: templates/settings-statsUsers.php:7
|
639 |
+
msgid "Deleted users are also included."
|
640 |
+
msgstr "Gelöschte Benutzer sind auch enthalten."
|
641 |
|
642 |
+
#. Plugin URI of the plugin/theme
|
643 |
+
msgid "http://simple-history.com"
|
644 |
+
msgstr "http://simple-history.com"
|
645 |
|
646 |
+
#. Description of the plugin/theme
|
647 |
+
msgid ""
|
648 |
+
"Plugin that logs various things that occur in WordPress and then presents "
|
649 |
+
"those events in a very nice GUI."
|
650 |
+
msgstr ""
|
651 |
+
"Ein Plugin, welches diverse Dinge protokolliert, die in einer WordPress-"
|
652 |
+
"Installation passieren (und das diese Vorkommnisse dann über eine sehr nette "
|
653 |
+
"Bedieneroberfläche präsentiert)."
|
654 |
+
|
655 |
+
#. Author of the plugin/theme
|
656 |
+
msgid "Pär Thernström"
|
657 |
+
msgstr "Pär Thernström"
|
658 |
+
|
659 |
+
#. Author URI of the plugin/theme
|
660 |
+
msgid "http://simple-history.com/"
|
661 |
+
msgstr "http://simple-history.com/"
|
662 |
+
|
663 |
+
#: SimpleHistory.php:249
|
664 |
+
msgctxt ""
|
665 |
+
"Message visible while waiting for log to load from server the first time"
|
666 |
+
msgid "Loading history..."
|
667 |
+
msgstr "Lade Historie..."
|
668 |
+
|
669 |
+
#: SimpleHistory.php:286
|
670 |
+
msgctxt "page n of n"
|
671 |
+
msgid "of"
|
672 |
+
msgstr "von"
|
673 |
+
|
674 |
+
#: SimpleHistory.php:357
|
675 |
+
msgctxt "API: not enought arguments passed"
|
676 |
+
msgid "Not enough args specified"
|
677 |
+
msgstr "Nicht genügend Argumente angegeben"
|
678 |
+
|
679 |
+
#: SimpleHistory.php:1235
|
680 |
+
msgctxt "dashboard menu name"
|
681 |
+
msgid "Simple History"
|
682 |
+
msgstr "Simple History"
|
683 |
+
|
684 |
+
#: SimpleHistory.php:1359
|
685 |
+
msgctxt "history page headline"
|
686 |
+
msgid "Simple History"
|
687 |
+
msgstr "Simple History"
|
688 |
+
|
689 |
+
#: SimpleHistory.php:1619
|
690 |
+
msgctxt "simple-history"
|
691 |
+
msgid "Simple History removed one event that were older than {days} days"
|
692 |
+
msgid_plural ""
|
693 |
+
"Simple History removed {num_rows} events that were older than {days} days"
|
694 |
+
msgstr[0] ""
|
695 |
+
"Simple History hat 1 Ereignis entfernt welches älter als {days} Tage war"
|
696 |
+
msgstr[1] ""
|
697 |
+
"Simple History hat {num_rows} Ereignisse entfernt welche älter als {days} "
|
698 |
+
"Tage waren"
|
699 |
+
|
700 |
+
#: SimpleHistory.php:1963
|
701 |
+
msgctxt "Log level in gui"
|
702 |
+
msgid "emergency"
|
703 |
+
msgstr "Notfall"
|
704 |
+
|
705 |
+
#: SimpleHistory.php:1967
|
706 |
+
msgctxt "Log level in gui"
|
707 |
+
msgid "alert"
|
708 |
+
msgstr "Alarm"
|
709 |
+
|
710 |
+
#: SimpleHistory.php:1971
|
711 |
+
msgctxt "Log level in gui"
|
712 |
+
msgid "critical"
|
713 |
+
msgstr "Kritisch"
|
714 |
+
|
715 |
+
#: SimpleHistory.php:1975
|
716 |
+
msgctxt "Log level in gui"
|
717 |
+
msgid "error"
|
718 |
+
msgstr "Fehler"
|
719 |
+
|
720 |
+
#: SimpleHistory.php:1979
|
721 |
+
msgctxt "Log level in gui"
|
722 |
+
msgid "warning"
|
723 |
+
msgstr "Warnung"
|
724 |
+
|
725 |
+
#: SimpleHistory.php:1983
|
726 |
+
msgctxt "Log level in gui"
|
727 |
+
msgid "notice"
|
728 |
+
msgstr "Hinweis"
|
729 |
+
|
730 |
+
#: SimpleHistory.php:1987
|
731 |
+
msgctxt "Log level in gui"
|
732 |
+
msgid "info"
|
733 |
+
msgstr "Information"
|
734 |
+
|
735 |
+
#: SimpleHistory.php:1991
|
736 |
+
msgctxt "Log level in gui"
|
737 |
+
msgid "debug"
|
738 |
+
msgstr "Fehlersuche"
|
739 |
+
|
740 |
+
#: SimpleHistory.php:1996
|
741 |
+
msgctxt "Log level in gui"
|
742 |
+
msgid "Emergency"
|
743 |
+
msgstr "Notfall"
|
744 |
+
|
745 |
+
#: SimpleHistory.php:2000
|
746 |
+
msgctxt "Log level in gui"
|
747 |
+
msgid "Alert"
|
748 |
+
msgstr "Alarm"
|
749 |
+
|
750 |
+
#: SimpleHistory.php:2004
|
751 |
+
msgctxt "Log level in gui"
|
752 |
+
msgid "Critical"
|
753 |
+
msgstr "Kritisch"
|
754 |
+
|
755 |
+
#: SimpleHistory.php:2008
|
756 |
+
msgctxt "Log level in gui"
|
757 |
+
msgid "Error"
|
758 |
+
msgstr "Fehler"
|
759 |
+
|
760 |
+
#: SimpleHistory.php:2012
|
761 |
+
msgctxt "Log level in gui"
|
762 |
+
msgid "Warning"
|
763 |
+
msgstr "Warnung"
|
764 |
+
|
765 |
+
#: SimpleHistory.php:2016
|
766 |
+
msgctxt "Log level in gui"
|
767 |
+
msgid "Notice"
|
768 |
+
msgstr "Hinweis"
|
769 |
+
|
770 |
+
#: SimpleHistory.php:2020
|
771 |
+
msgctxt "Log level in gui"
|
772 |
+
msgid "Info"
|
773 |
+
msgstr "Information"
|
774 |
+
|
775 |
+
#: SimpleHistory.php:2024
|
776 |
+
msgctxt "Log level in gui"
|
777 |
+
msgid "Debug"
|
778 |
+
msgstr "Fehlersuche"
|
779 |
+
|
780 |
+
#: dropins/SimpleHistoryDonateDropin.php:51
|
781 |
+
msgctxt "donate settings headline"
|
782 |
+
msgid "Donate"
|
783 |
+
msgstr "Spende"
|
784 |
+
|
785 |
+
#: dropins/SimpleHistoryFilterDropin.php:50
|
786 |
+
msgctxt "Filter dropin: button to show more search options"
|
787 |
+
msgid "Show options"
|
788 |
+
msgstr "Zeige Optionen"
|
789 |
+
|
790 |
+
#: dropins/SimpleHistoryFilterDropin.php:160
|
791 |
+
msgctxt "Filter dropin: button to hide more search options"
|
792 |
+
msgid "Hide options"
|
793 |
+
msgstr "Verberge Optionen"
|
794 |
+
|
795 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:66
|
796 |
+
msgctxt "IP Info Dropin"
|
797 |
+
msgid "That IP address does not seem like a public one."
|
798 |
+
msgstr "Diese IP-Adresse scheint keine öffentliche zu sein."
|
799 |
+
|
800 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:85
|
801 |
+
msgctxt "IP Info Dropin"
|
802 |
+
msgid "IP address"
|
803 |
+
msgstr "IP-Adresse"
|
804 |
+
|
805 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:96
|
806 |
+
msgctxt "IP Info Dropin"
|
807 |
+
msgid "Hostname"
|
808 |
+
msgstr "Hostname"
|
809 |
+
|
810 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:107
|
811 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:118
|
812 |
+
msgctxt "IP Info Dropin"
|
813 |
+
msgid "Network"
|
814 |
+
msgstr "Netzwerk"
|
815 |
+
|
816 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:129
|
817 |
+
msgctxt "IP Info Dropin"
|
818 |
+
msgid "City"
|
819 |
+
msgstr "Stadt"
|
820 |
+
|
821 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:140
|
822 |
+
msgctxt "IP Info Dropin"
|
823 |
+
msgid "Region"
|
824 |
+
msgstr "Region"
|
825 |
+
|
826 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:151
|
827 |
+
msgctxt "IP Info Dropin"
|
828 |
+
msgid "Country"
|
829 |
+
msgstr "Land"
|
830 |
+
|
831 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:162
|
832 |
+
msgctxt "IP Info Dropin"
|
833 |
+
msgid "IP info provided by %1$s ipinfo.io %2$s"
|
834 |
+
msgstr "IP-Info bereitgestellt durch %1$s ipinfo.io %2$s"
|
835 |
+
|
836 |
+
#: dropins/SimpleHistoryNewRowsNotifier.php:38
|
837 |
+
msgctxt "New rows notifier: error while checking for new rows"
|
838 |
+
msgid "An error occured while checking for new log rows"
|
839 |
+
msgstr ""
|
840 |
+
"Während der Suche nach neuen Logbuch-Einträgen ist ein Fehler aufgetreten"
|
841 |
+
|
842 |
+
#: dropins/SimpleHistoryRSSDropin.php:47
|
843 |
+
msgctxt "rss settings headline"
|
844 |
+
msgid "RSS feed"
|
845 |
+
msgstr "RSS-Feed"
|
846 |
|
847 |
+
#: dropins/SimpleHistorySidebarDropin.php:31
|
848 |
+
msgctxt "Sidebar box"
|
849 |
+
msgid "Simple History is on GitHub"
|
850 |
+
msgstr "Simple History ist auf GitHub"
|
851 |
|
852 |
+
#: dropins/SimpleHistorySidebarDropin.php:34
|
853 |
+
msgctxt "Sidebar box"
|
854 |
+
msgid ""
|
855 |
+
"You can star, fork, or report issues with this plugin over at the <a href="
|
856 |
+
"\"%1$s\">GitHub page</a>."
|
857 |
+
msgstr ""
|
858 |
+
"Drüben auf der <a href=\"%1$s\">GitHub-Website</a> kannst Du dieses Plugin "
|
859 |
+
"bewerten, einen Fork abspalten oder Probleme melden."
|
860 |
|
861 |
+
#: dropins/SimpleHistorySidebarDropin.php:48
|
862 |
+
msgctxt "Sidebar box"
|
863 |
+
msgid "Donate to support development"
|
864 |
+
msgstr "Spende zur Unterstützung der weiteren Entwicklung"
|
865 |
|
866 |
+
#: dropins/SimpleHistorySidebarDropin.php:51
|
867 |
+
msgctxt "Sidebar box"
|
868 |
+
msgid ""
|
869 |
+
"If you like and use Simple History you should <a href=\"%1$s\">donate to keep "
|
870 |
+
"this plugin free</a>."
|
871 |
+
msgstr ""
|
872 |
+
"Falls Dir dieses Plugin gefällt und Du es benutzt, solltest Du <a href=\"%1$s"
|
873 |
+
"\">spenden, um das Plugin weiterhin kostenlos zu halten</a>."
|
874 |
|
875 |
+
#: dropins/SimpleHistorySidebarDropin.php:65
|
876 |
+
msgctxt "Sidebar box"
|
877 |
+
msgid "Review this plugin if you like it"
|
878 |
+
msgstr "Bespreche dieses Plugin, wenn es Dir gefällt"
|
879 |
|
880 |
+
#: dropins/SimpleHistorySidebarDropin.php:68
|
881 |
+
msgctxt "Sidebar box"
|
882 |
+
msgid ""
|
883 |
+
"If you like Simple History then please <a href=\"%1$s\">give it a nice review "
|
884 |
+
"over at wordpress.org</a>."
|
885 |
+
msgstr ""
|
886 |
+
"Wenn Du Simple History magst, bitte <a href=\"%1$s\">verfasse drüben bei "
|
887 |
+
"wordpress.org eine nette Besprechung darüber</a>."
|
888 |
+
|
889 |
+
#: dropins/SimpleHistorySidebarDropin.php:72
|
890 |
+
msgctxt "Sidebar box"
|
891 |
+
msgid ""
|
892 |
+
"A good review will help new users find this plugin. And it will make the "
|
893 |
+
"plugin author very happy :)"
|
894 |
+
msgstr ""
|
895 |
+
"Eine positive Besprechung hilft neuen Benutzern, auf dieses Plugin aufmerksam "
|
896 |
+
"zu werden. Und sie macht seinen Autor sehr glücklich! :)"
|
897 |
|
898 |
+
#: loggers/SimpleCommentsLogger.php:95
|
899 |
+
msgctxt "A comment was added to the database by a non-logged in internet user"
|
900 |
+
msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
|
901 |
+
msgstr ""
|
902 |
+
"hat einen Kommentar zu {comment_post_type} \"{comment_post_title}\" "
|
903 |
+
"hinzugefügt"
|
904 |
|
905 |
+
#: loggers/SimpleCommentsLogger.php:101
|
906 |
+
msgctxt "A comment was added to the database by a logged in user"
|
907 |
+
msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
|
908 |
+
msgstr ""
|
909 |
+
"hat einen Kommentar zu {comment_post_type} \"{comment_post_title}\" "
|
910 |
+
"hinzugefügt"
|
911 |
|
912 |
+
#: loggers/SimpleCommentsLogger.php:107
|
913 |
+
msgctxt "A comment was approved"
|
914 |
msgid ""
|
915 |
+
"Approved a comment to \"{comment_post_title}\" by {comment_author} "
|
916 |
+
"({comment_author_email})"
|
917 |
msgstr ""
|
918 |
+
"hat einen Kommentar zu \"{comment_post_title}\" by {comment_author} "
|
919 |
+
"({comment_author_email}) genehmigt"
|
920 |
|
921 |
+
#: loggers/SimpleCommentsLogger.php:113
|
922 |
+
msgctxt "A comment was was unapproved"
|
923 |
+
msgid ""
|
924 |
+
"Unapproved a comment to \"{comment_post_title}\" by {comment_author} "
|
925 |
+
"({comment_author_email})"
|
926 |
+
msgstr ""
|
927 |
+
"hat einen Kommentar zu \"{comment_post_title}\" by {comment_author} "
|
928 |
+
"({comment_author_email}) verworfen"
|
929 |
|
930 |
+
#: loggers/SimpleCommentsLogger.php:119
|
931 |
+
msgctxt "A comment was marked as spam"
|
932 |
+
msgid "Marked a comment to post \"{comment_post_title}\" as spam"
|
933 |
+
msgstr ""
|
934 |
+
"hat einen Kommentar zum Beitrag \"{comment_post_title}\" als Spam "
|
935 |
+
"gekennzeichnet"
|
936 |
|
937 |
+
#: loggers/SimpleCommentsLogger.php:125
|
938 |
+
msgctxt "A comment was marked moved to the trash"
|
939 |
+
msgid ""
|
940 |
+
"Trashed a comment to \"{comment_post_title}\" by {comment_author} "
|
941 |
+
"({comment_author_email})"
|
942 |
+
msgstr ""
|
943 |
+
"hat einen Kommentar zu \"{comment_post_title}\" by {comment_author} "
|
944 |
+
"({comment_author_email}) in den Papierkorb verschoben"
|
945 |
|
946 |
+
#: loggers/SimpleCommentsLogger.php:131
|
947 |
+
msgctxt "A comment was restored from the trash"
|
948 |
+
msgid ""
|
949 |
+
"Restored a comment to \"{comment_post_title}\" by {comment_author} "
|
950 |
+
"({comment_author_email}) from the trash"
|
951 |
+
msgstr ""
|
952 |
+
"hat einen Kommentar zu \"{comment_post_title}\" von {comment_author} "
|
953 |
+
"({comment_author_email}) aus dem Papierkorb wiederhergestellt"
|
954 |
|
955 |
+
#: loggers/SimpleCommentsLogger.php:137
|
956 |
+
msgctxt "A comment was deleted"
|
957 |
+
msgid ""
|
958 |
+
"Deleted a comment to \"{comment_post_title}\" by {comment_author} "
|
959 |
+
"({comment_author_email})"
|
960 |
+
msgstr ""
|
961 |
+
"hat einen Kommentar zu \"{comment_post_title}\" by {comment_author} "
|
962 |
+
"({comment_author_email}) gelöscht"
|
963 |
|
964 |
+
#: loggers/SimpleCommentsLogger.php:143
|
965 |
+
msgctxt "A comment was edited"
|
966 |
+
msgid ""
|
967 |
+
"Edited a comment to \"{comment_post_title}\" by {comment_author} "
|
968 |
+
"({comment_author_email})"
|
969 |
+
msgstr ""
|
970 |
+
"hat einen Kommentar zu \"{comment_post_title}\" by {comment_author} "
|
971 |
+
"({comment_author_email}) geändert"
|
972 |
|
973 |
+
#: loggers/SimpleCommentsLogger.php:150
|
974 |
+
msgctxt "A trackback was added to the database by a non-logged in internet user"
|
975 |
+
msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
|
976 |
+
msgstr ""
|
977 |
+
"hat einen Trackback zu {comment_post_type} \"{comment_post_title}\" "
|
978 |
+
"hinzugefügt"
|
979 |
|
980 |
+
#: loggers/SimpleCommentsLogger.php:205
|
981 |
+
msgctxt "A trackback was added to the database by a non-logged in internet user"
|
982 |
+
msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
|
983 |
+
msgstr ""
|
984 |
+
"hat ein Pingback zu {comment_post_type} \"{comment_post_title}\" hinzugefügt"
|
985 |
|
986 |
+
#: loggers/SimpleCommentsLogger.php:156
|
987 |
+
msgctxt "A trackback was added to the database by a logged in user"
|
988 |
+
msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
|
989 |
+
msgstr ""
|
990 |
+
"hat einen Trackback zu {comment_post_type} \"{comment_post_title}\" "
|
991 |
+
"hinzugefügt"
|
992 |
|
993 |
+
#: loggers/SimpleCommentsLogger.php:162
|
994 |
+
msgctxt "A trackback was approved"
|
995 |
+
msgid ""
|
996 |
+
"Approved a trackback to \"{comment_post_title}\" by {comment_author} "
|
997 |
+
"({comment_author_email})"
|
998 |
+
msgstr ""
|
999 |
+
"hat einen Trackback zu \"{comment_post_title}\" by {comment_author} "
|
1000 |
+
"({comment_author_email}) genehmigt"
|
1001 |
|
1002 |
+
#: loggers/SimpleCommentsLogger.php:168
|
1003 |
+
msgctxt "A trackback was was unapproved"
|
1004 |
+
msgid ""
|
1005 |
+
"Unapproved a trackback to \"{comment_post_title}\" by {comment_author} "
|
1006 |
+
"({comment_author_email})"
|
1007 |
+
msgstr ""
|
1008 |
+
"hat einen Trackback zu \"{comment_post_title}\" by {comment_author} "
|
1009 |
+
"({comment_author_email}) verworfen"
|
1010 |
|
1011 |
+
#: loggers/SimpleCommentsLogger.php:174
|
1012 |
+
msgctxt "A trackback was marked as spam"
|
1013 |
+
msgid "Marked a trackback to post \"{comment_post_title}\" as spam"
|
1014 |
+
msgstr ""
|
1015 |
+
"hat einen Trackback zum Beitrag \"{comment_post_title}\" als Spam "
|
1016 |
+
"gekennzeichnet"
|
1017 |
|
1018 |
+
#: loggers/SimpleCommentsLogger.php:180
|
1019 |
+
msgctxt "A trackback was marked moved to the trash"
|
1020 |
+
msgid ""
|
1021 |
+
"Trashed a trackback to \"{comment_post_title}\" by {comment_author} "
|
1022 |
+
"({comment_author_email})"
|
1023 |
+
msgstr ""
|
1024 |
+
"hat einen Trackback zu \"{comment_post_title}\" by {comment_author} "
|
1025 |
+
"({comment_author_email}) in den Papierkorb verschoben"
|
1026 |
|
1027 |
+
#: loggers/SimpleCommentsLogger.php:186
|
1028 |
+
msgctxt "A trackback was restored from the trash"
|
1029 |
+
msgid ""
|
1030 |
+
"Restored a trackback to \"{comment_post_title}\" by {comment_author} "
|
1031 |
+
"({comment_author_email}) from the trash"
|
1032 |
+
msgstr ""
|
1033 |
+
"hat einen Trackback zu \"{comment_post_title}\" von {comment_author} "
|
1034 |
+
"({comment_author_email}) aus dem Papierkorb wiederhergestellt"
|
1035 |
|
1036 |
+
#: loggers/SimpleCommentsLogger.php:192
|
1037 |
+
msgctxt "A trackback was deleted"
|
1038 |
+
msgid ""
|
1039 |
+
"Deleted a trackback to \"{comment_post_title}\" by {comment_author} "
|
1040 |
+
"({comment_author_email})"
|
1041 |
+
msgstr ""
|
1042 |
+
"hat einen Trackback zu \"{comment_post_title}\" by {comment_author} "
|
1043 |
+
"({comment_author_email}) gelöscht"
|
1044 |
+
|
1045 |
+
#: loggers/SimpleCommentsLogger.php:198
|
1046 |
+
msgctxt "A trackback was edited"
|
1047 |
+
msgid ""
|
1048 |
+
"Edited a trackback to \"{comment_post_title}\" by {comment_author} "
|
1049 |
+
"({comment_author_email})"
|
1050 |
+
msgstr ""
|
1051 |
+
"hat einen Trackback zu \"{comment_post_title}\" by {comment_author} "
|
1052 |
+
"({comment_author_email}) geändert"
|
1053 |
|
1054 |
+
#: loggers/SimpleCommentsLogger.php:211
|
1055 |
+
msgctxt "A pingback was added to the database by a logged in user"
|
1056 |
+
msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
|
1057 |
+
msgstr ""
|
1058 |
+
"hat ein Pingback zu {comment_post_type} \"{comment_post_title}\" hinzugefügt"
|
1059 |
|
1060 |
+
#: loggers/SimpleCommentsLogger.php:217
|
1061 |
+
msgctxt "A pingback was approved"
|
1062 |
+
msgid ""
|
1063 |
+
"Approved a pingback to \"{comment_post_title}\" by "
|
1064 |
+
"\"{comment_author}\"\" ({comment_author_email})"
|
1065 |
+
msgstr ""
|
1066 |
+
"hat ein Pingback zu \"{comment_post_title}\" by "
|
1067 |
+
"\"{comment_author}\"\" ({comment_author_email}) genehmigt"
|
1068 |
|
1069 |
+
#: loggers/SimpleCommentsLogger.php:223
|
1070 |
+
msgctxt "A pingback was was unapproved"
|
1071 |
+
msgid ""
|
1072 |
+
"Unapproved a pingback to \"{comment_post_title}\" by "
|
1073 |
+
"\"{comment_author}\" ({comment_author_email})"
|
1074 |
+
msgstr ""
|
1075 |
+
"hat ein Pingback zu \"{comment_post_title}\" by "
|
1076 |
+
"\"{comment_author}\" ({comment_author_email}) verworfen"
|
1077 |
+
|
1078 |
+
#: loggers/SimpleCommentsLogger.php:229
|
1079 |
+
msgctxt "A pingback was marked as spam"
|
1080 |
+
msgid "Marked a pingback to post \"{comment_post_title}\" as spam"
|
1081 |
+
msgstr ""
|
1082 |
+
"hat ein Pingback zum Beitrag \"{comment_post_title}\" als Spam gekennzeichnet"
|
1083 |
+
|
1084 |
+
#: loggers/SimpleCommentsLogger.php:235
|
1085 |
+
msgctxt "A pingback was marked moved to the trash"
|
1086 |
+
msgid ""
|
1087 |
+
"Trashed a pingback to \"{comment_post_title}\" by {comment_author} "
|
1088 |
+
"({comment_author_email})"
|
1089 |
+
msgstr ""
|
1090 |
+
"hat ein Pingback zu \"{comment_post_title}\" by {comment_author} "
|
1091 |
+
"({comment_author_email}) in den Papierkorb verschoben"
|
1092 |
|
1093 |
+
#: loggers/SimpleCommentsLogger.php:241
|
1094 |
+
msgctxt "A pingback was restored from the trash"
|
1095 |
+
msgid ""
|
1096 |
+
"Restored a pingback to \"{comment_post_title}\" by {comment_author} "
|
1097 |
+
"({comment_author_email}) from the trash"
|
1098 |
+
msgstr ""
|
1099 |
+
"hat ein Pingback zu \"{comment_post_title}\" von {comment_author} "
|
1100 |
+
"({comment_author_email}) aus dem Papierkorb wiederhergestellt"
|
1101 |
+
|
1102 |
+
#: loggers/SimpleCommentsLogger.php:247
|
1103 |
+
msgctxt "A pingback was deleted"
|
1104 |
+
msgid ""
|
1105 |
+
"Deleted a pingback to \"{comment_post_title}\" by {comment_author} "
|
1106 |
+
"({comment_author_email})"
|
1107 |
+
msgstr ""
|
1108 |
+
"hat ein Pingback zu \"{comment_post_title}\" by {comment_author} "
|
1109 |
+
"({comment_author_email}) gelöscht"
|
1110 |
+
|
1111 |
+
#: loggers/SimpleCommentsLogger.php:253
|
1112 |
+
msgctxt "A pingback was edited"
|
1113 |
+
msgid ""
|
1114 |
+
"Edited a pingback to \"{comment_post_title}\" by {comment_author} "
|
1115 |
+
"({comment_author_email})"
|
1116 |
+
msgstr ""
|
1117 |
+
"hat ein Pingback zu \"{comment_post_title}\" by {comment_author} "
|
1118 |
+
"({comment_author_email}) geändert"
|
1119 |
+
|
1120 |
+
#: loggers/SimpleCommentsLogger.php:264
|
1121 |
+
msgctxt "Comments logger: search"
|
1122 |
+
msgid "Comments"
|
1123 |
+
msgstr "Kommentare"
|
1124 |
+
|
1125 |
+
#: loggers/SimpleCommentsLogger.php:265
|
1126 |
+
msgctxt "Comments logger: search"
|
1127 |
+
msgid "All comments activity"
|
1128 |
+
msgstr "Alle Kommentar-Aktivitäten"
|
1129 |
+
|
1130 |
+
#: loggers/SimpleCommentsLogger.php:267
|
1131 |
+
msgctxt "Comments logger: search"
|
1132 |
+
msgid "Added comments"
|
1133 |
+
msgstr "hinzugefügte Kommentare"
|
1134 |
+
|
1135 |
+
#: loggers/SimpleCommentsLogger.php:275
|
1136 |
+
msgctxt "Comments logger: search"
|
1137 |
+
msgid "Edited comments"
|
1138 |
+
msgstr "geänderte Kommentare"
|
1139 |
+
|
1140 |
+
#: loggers/SimpleCommentsLogger.php:280
|
1141 |
+
msgctxt "Comments logger: search"
|
1142 |
+
msgid "Approved comments"
|
1143 |
+
msgstr "genehmigte Kommentare"
|
1144 |
+
|
1145 |
+
#: loggers/SimpleCommentsLogger.php:285
|
1146 |
+
msgctxt "Comments logger: search"
|
1147 |
+
msgid "Held comments"
|
1148 |
+
msgstr "zurückgehaltene Kommentare"
|
1149 |
+
|
1150 |
+
#: loggers/SimpleCommentsLogger.php:290
|
1151 |
+
msgctxt "Comments logger: search"
|
1152 |
+
msgid "Comments status changed to spam"
|
1153 |
+
msgstr "als Spam markierte Kommentare"
|
1154 |
+
|
1155 |
+
#: loggers/SimpleCommentsLogger.php:295
|
1156 |
+
msgctxt "Comments logger: search"
|
1157 |
+
msgid "Trashed comments"
|
1158 |
+
msgstr "in den Papierkorb verschobene Kommentare "
|
1159 |
+
|
1160 |
+
#: loggers/SimpleCommentsLogger.php:300
|
1161 |
+
msgctxt "Comments logger: search"
|
1162 |
+
msgid "Untrashed comments"
|
1163 |
+
msgstr "wiederhergestellte Kommentare"
|
1164 |
+
|
1165 |
+
#: loggers/SimpleCommentsLogger.php:305
|
1166 |
+
msgctxt "Comments logger: search"
|
1167 |
+
msgid "Deleted comments"
|
1168 |
+
msgstr "gelöschte Kommentare"
|
1169 |
+
|
1170 |
+
#: loggers/SimpleCommentsLogger.php:602 loggers/SimpleCommentsLogger.php:615
|
1171 |
+
#: loggers/SimpleCommentsLogger.php:629
|
1172 |
+
msgctxt "comments logger - detailed output comment status"
|
1173 |
+
msgid "Status"
|
1174 |
+
msgstr "Status"
|
1175 |
+
|
1176 |
+
#: loggers/SimpleCommentsLogger.php:604 loggers/SimpleCommentsLogger.php:617
|
1177 |
+
#: loggers/SimpleCommentsLogger.php:631
|
1178 |
+
msgctxt "comments logger - detailed output author"
|
1179 |
+
msgid "Name"
|
1180 |
+
msgstr "Name"
|
1181 |
+
|
1182 |
+
#: loggers/SimpleCommentsLogger.php:605 loggers/SimpleCommentsLogger.php:618
|
1183 |
+
#: loggers/SimpleCommentsLogger.php:632
|
1184 |
+
msgctxt "comments logger - detailed output email"
|
1185 |
+
msgid "Email"
|
1186 |
+
msgstr "E-Mail"
|
1187 |
+
|
1188 |
+
#: loggers/SimpleCommentsLogger.php:606 loggers/SimpleCommentsLogger.php:619
|
1189 |
+
msgctxt "comments logger - detailed output content"
|
1190 |
+
msgid "Content"
|
1191 |
+
msgstr "Inhalt"
|
1192 |
+
|
1193 |
+
#: loggers/SimpleCommentsLogger.php:633
|
1194 |
+
msgctxt "comments logger - detailed output content"
|
1195 |
+
msgid "Comment"
|
1196 |
+
msgstr "Kommentar"
|
1197 |
+
|
1198 |
+
#: loggers/SimpleCommentsLogger.php:759
|
1199 |
+
msgctxt "comments logger - edit comment"
|
1200 |
+
msgid "View/Edit"
|
1201 |
+
msgstr "Betrachte/Ändere"
|
1202 |
+
|
1203 |
+
#: loggers/SimpleCoreUpdatesLogger.php:34
|
1204 |
+
msgctxt "User logger: search"
|
1205 |
+
msgid "WordPress Core"
|
1206 |
+
msgstr "WordPress-Kern"
|
1207 |
+
|
1208 |
+
#: loggers/SimpleCoreUpdatesLogger.php:36
|
1209 |
+
msgctxt "User logger: search"
|
1210 |
+
msgid "WordPress core updates"
|
1211 |
+
msgstr "WordPress-Kern-Aktualisierungen"
|
1212 |
+
|
1213 |
+
#: loggers/SimpleUserLogger.php:54
|
1214 |
+
msgctxt "User logger: search"
|
1215 |
+
msgid "Users"
|
1216 |
+
msgstr "Benutzer"
|
1217 |
+
|
1218 |
+
#: loggers/SimpleUserLogger.php:55
|
1219 |
+
msgctxt "User logger: search"
|
1220 |
+
msgid "All user activity"
|
1221 |
+
msgstr "Alle Benutzer-Aktivitäten"
|
1222 |
+
|
1223 |
+
#: loggers/SimpleUserLogger.php:57
|
1224 |
+
msgctxt "User logger: search"
|
1225 |
+
msgid "Successful user logins"
|
1226 |
+
msgstr "erfolgreiche Benutzer-Anmeldungen"
|
1227 |
+
|
1228 |
+
#: loggers/SimpleUserLogger.php:61
|
1229 |
+
msgctxt "User logger: search"
|
1230 |
+
msgid "Failed user logins"
|
1231 |
+
msgstr "fehlgeschlagene Benutzer-Anmeldungen"
|
1232 |
+
|
1233 |
+
#: loggers/SimpleUserLogger.php:65
|
1234 |
+
msgctxt "User logger: search"
|
1235 |
+
msgid "User logouts"
|
1236 |
+
msgstr "Benutzer-Abmeldungen"
|
1237 |
+
|
1238 |
+
#: loggers/SimpleUserLogger.php:68
|
1239 |
+
msgctxt "User logger: search"
|
1240 |
+
msgid "Created users"
|
1241 |
+
msgstr "Benutzer erzeugt"
|
1242 |
+
|
1243 |
+
#: loggers/SimpleUserLogger.php:71
|
1244 |
+
msgctxt "User logger: search"
|
1245 |
+
msgid "User profile updates"
|
1246 |
+
msgstr "Benutzerprofil-Aktualisierungen"
|
1247 |
+
|
1248 |
+
#: loggers/SimpleUserLogger.php:74
|
1249 |
+
msgctxt "User logger: search"
|
1250 |
+
msgid "User deletions"
|
1251 |
+
msgstr "Löschungen von Benutzern"
|
1252 |
+
|
1253 |
+
#: loggers/SimpleExportLogger.php:27
|
1254 |
+
msgctxt "Export logger: search"
|
1255 |
+
msgid "Export"
|
1256 |
+
msgstr "Export"
|
1257 |
+
|
1258 |
+
#: loggers/SimpleExportLogger.php:29
|
1259 |
+
msgctxt "Export logger: search"
|
1260 |
+
msgid "Created exports"
|
1261 |
+
msgstr "erstellte Exporte"
|
1262 |
+
|
1263 |
+
#: loggers/SimpleLogger.php:190
|
1264 |
+
msgctxt "header output when initiator is the currently logged in user"
|
1265 |
+
msgid "You"
|
1266 |
+
msgstr "Dein eigener Benutzername"
|
1267 |
+
|
1268 |
+
#: loggers/SimpleMediaLogger.php:29
|
1269 |
+
msgctxt "Media logger: search"
|
1270 |
+
msgid "Media"
|
1271 |
+
msgstr "Medien-Dateien"
|
1272 |
+
|
1273 |
+
#: loggers/SimpleMediaLogger.php:31
|
1274 |
+
msgctxt "Media logger: search"
|
1275 |
+
msgid "Added media"
|
1276 |
+
msgstr "hinzugefügte Medien-Dateien"
|
1277 |
+
|
1278 |
+
#: loggers/SimpleMediaLogger.php:34
|
1279 |
+
msgctxt "Media logger: search"
|
1280 |
+
msgid "Updated media"
|
1281 |
+
msgstr "aktualsierte Medien-Dateien"
|
1282 |
+
|
1283 |
+
#: loggers/SimpleMediaLogger.php:37
|
1284 |
+
msgctxt "Media logger: search"
|
1285 |
+
msgid "Deleted media"
|
1286 |
+
msgstr "gelöschte Medien-Dateien"
|
1287 |
+
|
1288 |
+
#: loggers/SimpleMenuLogger.php:31
|
1289 |
+
msgctxt "Menu logger: search"
|
1290 |
+
msgid "Menus"
|
1291 |
+
msgstr "Menüs"
|
1292 |
+
|
1293 |
+
#: loggers/SimpleMenuLogger.php:33
|
1294 |
+
msgctxt "Menu updates logger: search"
|
1295 |
+
msgid "Created menus"
|
1296 |
+
msgstr "erstellte Menüs"
|
1297 |
+
|
1298 |
+
#: loggers/SimpleMenuLogger.php:36
|
1299 |
+
msgctxt "Menu updates logger: search"
|
1300 |
+
msgid "Edited menus"
|
1301 |
+
msgstr "geänderte Menüs"
|
1302 |
+
|
1303 |
+
#: loggers/SimpleMenuLogger.php:41
|
1304 |
+
msgctxt "Menu updates logger: search"
|
1305 |
+
msgid "Deleted menus"
|
1306 |
+
msgstr "gelöschte Menüs"
|
1307 |
+
|
1308 |
+
#: loggers/SimpleMenuLogger.php:326
|
1309 |
+
msgctxt "menu logger"
|
1310 |
+
msgid "%1$s menu item added"
|
1311 |
+
msgid_plural "%1$s menu items added"
|
1312 |
+
msgstr[0] "%1$s hinzugefügter Menü-Eintrag"
|
1313 |
+
msgstr[1] "%1$s hinzugefügte Menü-Einträge"
|
1314 |
+
|
1315 |
+
#: loggers/SimpleMenuLogger.php:333
|
1316 |
+
msgctxt "menu logger"
|
1317 |
+
msgid "%1$s menu item removed"
|
1318 |
+
msgid_plural "%1$s menu items removed"
|
1319 |
+
msgstr[0] "%1$s entfernter Menü-Eintrag"
|
1320 |
+
msgstr[1] "%1$s entfernte Menü-Einträge"
|
1321 |
+
|
1322 |
+
#: loggers/SimpleOptionsLogger.php:153
|
1323 |
+
msgctxt "Options logger: search"
|
1324 |
+
msgid "Options"
|
1325 |
+
msgstr "Optionen"
|
1326 |
+
|
1327 |
+
#: loggers/SimpleOptionsLogger.php:155
|
1328 |
+
msgctxt "Options logger: search"
|
1329 |
+
msgid "Changed options"
|
1330 |
+
msgstr "geänderte Optionen"
|
1331 |
+
|
1332 |
+
#: loggers/SimplePluginLogger.php:51
|
1333 |
+
msgctxt "Plugin was non-silently activated by a user"
|
1334 |
+
msgid "Activated plugin \"{plugin_name}\""
|
1335 |
+
msgstr "hat Plugin \"{plugin_name}\" aktiviert"
|
1336 |
+
|
1337 |
+
#: loggers/SimplePluginLogger.php:57
|
1338 |
+
msgctxt "Plugin was non-silently deactivated by a user"
|
1339 |
+
msgid "Deactivated plugin \"{plugin_name}\""
|
1340 |
+
msgstr "hat Plugin \"{plugin_name}\" deaktiviert"
|
1341 |
+
|
1342 |
+
#: loggers/SimplePluginLogger.php:63
|
1343 |
+
msgctxt "Plugin was installed"
|
1344 |
+
msgid "Installed plugin \"{plugin_name}\""
|
1345 |
+
msgstr "hat Plugin \"{plugin_name}\" installiert"
|
1346 |
+
|
1347 |
+
#: loggers/SimplePluginLogger.php:69
|
1348 |
+
msgctxt "Plugin failed to install"
|
1349 |
+
msgid "Failed to install plugin \"{plugin_name}\""
|
1350 |
+
msgstr "hat vergeblich versucht, das Plugin \"{plugin_name}\" zu installieren"
|
1351 |
+
|
1352 |
+
#: loggers/SimplePluginLogger.php:75
|
1353 |
+
msgctxt "Plugin was updated"
|
1354 |
+
msgid ""
|
1355 |
+
"Updated plugin \"{plugin_name}\" to version {plugin_version} from "
|
1356 |
+
"{plugin_prev_version}"
|
1357 |
+
msgstr ""
|
1358 |
+
"hat Plugin \"{plugin_name}\" auf Version {plugin_version} von "
|
1359 |
+
"{plugin_prev_version} aktualisiert"
|
1360 |
+
|
1361 |
+
#: loggers/SimplePluginLogger.php:81
|
1362 |
+
msgctxt "Plugin update failed"
|
1363 |
+
msgid "Updated plugin \"{plugin_name}\""
|
1364 |
+
msgstr "hat Plugin \"{plugin_name}\" aktualisiert"
|
1365 |
+
|
1366 |
+
#: loggers/SimplePluginLogger.php:87
|
1367 |
+
msgctxt "Plugin file edited"
|
1368 |
+
msgid "Edited plugin file \"{plugin_edited_file}\""
|
1369 |
+
msgstr "hat die Plugin-Datei \"{plugin_edited_file}\" geändert"
|
1370 |
+
|
1371 |
+
#: loggers/SimplePluginLogger.php:93
|
1372 |
+
msgctxt "Plugin files was deleted"
|
1373 |
+
msgid "Deleted plugin \"{plugin_name}\""
|
1374 |
+
msgstr "hat Plugin \"{plugin_name}\" gelöscht"
|
1375 |
+
|
1376 |
+
#: loggers/SimplePluginLogger.php:100
|
1377 |
+
msgctxt "Plugin was updated in bulk"
|
1378 |
+
msgid ""
|
1379 |
+
"Updated plugin \"{plugin_name}\" to {plugin_version} from "
|
1380 |
+
"{plugin_prev_version}"
|
1381 |
+
msgstr ""
|
1382 |
+
"hat Plugin \"{plugin_name}\" auf {plugin_version} von {plugin_prev_version} "
|
1383 |
+
"aktualisiert"
|
1384 |
+
|
1385 |
+
#: loggers/SimplePluginLogger.php:108
|
1386 |
+
msgctxt "Plugin logger: search"
|
1387 |
+
msgid "Plugins"
|
1388 |
+
msgstr "Plugins"
|
1389 |
+
|
1390 |
+
#: loggers/SimplePluginLogger.php:110
|
1391 |
+
msgctxt "Plugin logger: search"
|
1392 |
+
msgid "Activated plugins"
|
1393 |
+
msgstr "aktivierte Plugins"
|
1394 |
+
|
1395 |
+
#: loggers/SimplePluginLogger.php:113
|
1396 |
+
msgctxt "Plugin logger: search"
|
1397 |
+
msgid "Deactivated plugins"
|
1398 |
+
msgstr "deaktivierte Plugins"
|
1399 |
+
|
1400 |
+
#: loggers/SimplePluginLogger.php:116
|
1401 |
+
msgctxt "Plugin logger: search"
|
1402 |
+
msgid "Installed plugins"
|
1403 |
+
msgstr "installierte Plugins"
|
1404 |
+
|
1405 |
+
#: loggers/SimplePluginLogger.php:119
|
1406 |
+
msgctxt "Plugin logger: search"
|
1407 |
+
msgid "Failed plugin installs"
|
1408 |
+
msgstr "fehlgeschlagene Plugin-Installationen"
|
1409 |
+
|
1410 |
+
#: loggers/SimplePluginLogger.php:122
|
1411 |
+
msgctxt "Plugin logger: search"
|
1412 |
+
msgid "Updated plugins"
|
1413 |
+
msgstr "aktualisierte Plugins"
|
1414 |
+
|
1415 |
+
#: loggers/SimplePluginLogger.php:126
|
1416 |
+
msgctxt "Plugin logger: search"
|
1417 |
+
msgid "Failed plugin updates"
|
1418 |
+
msgstr "fehlgeschlagene Plugin-Updates"
|
1419 |
+
|
1420 |
+
#: loggers/SimplePluginLogger.php:129
|
1421 |
+
msgctxt "Plugin logger: search"
|
1422 |
+
msgid "Edited plugin files"
|
1423 |
+
msgstr "geänderte Plugin-Dateien"
|
1424 |
+
|
1425 |
+
#: loggers/SimplePluginLogger.php:132
|
1426 |
+
msgctxt "Plugin logger: search"
|
1427 |
+
msgid "Deleted plugins"
|
1428 |
+
msgstr "gelöschte Plugins"
|
1429 |
+
|
1430 |
+
#: loggers/SimplePluginLogger.php:887
|
1431 |
+
msgctxt "plugin logger - detailed output version"
|
1432 |
+
msgid "Version"
|
1433 |
+
msgstr "Version"
|
1434 |
+
|
1435 |
+
#: loggers/SimplePluginLogger.php:889
|
1436 |
+
msgctxt "plugin logger - detailed output author"
|
1437 |
+
msgid "Author"
|
1438 |
+
msgstr "Autor"
|
1439 |
+
|
1440 |
+
#: loggers/SimplePluginLogger.php:891
|
1441 |
+
msgctxt "plugin logger - detailed output author"
|
1442 |
+
msgid "Requires"
|
1443 |
+
msgstr "erfordert"
|
1444 |
+
|
1445 |
+
#: loggers/SimplePluginLogger.php:890
|
1446 |
+
msgctxt "plugin logger - detailed output url"
|
1447 |
+
msgid "URL"
|
1448 |
+
msgstr "URL"
|
1449 |
+
|
1450 |
+
#: loggers/SimplePluginLogger.php:892
|
1451 |
+
msgctxt "plugin logger - detailed output compatible"
|
1452 |
+
msgid "Compatible up to"
|
1453 |
+
msgstr "kompatibel bis zu"
|
1454 |
+
|
1455 |
+
#: loggers/SimplePluginLogger.php:893
|
1456 |
+
msgctxt "plugin logger - detailed output downloaded"
|
1457 |
+
msgid "Downloads"
|
1458 |
+
msgstr "Downloads"
|
1459 |
+
|
1460 |
+
#: loggers/SimplePluginLogger.php:953
|
1461 |
+
msgctxt "plugin logger: plugin info thickbox title view all info"
|
1462 |
+
msgid "View plugin info"
|
1463 |
+
msgstr "Zeige Plugin-Info"
|
1464 |
+
|
1465 |
+
#: loggers/SimplePluginLogger.php:968
|
1466 |
+
msgctxt "plugin logger: plugin info thickbox title"
|
1467 |
+
msgid "View plugin info"
|
1468 |
+
msgstr "Zeige Plugin-Info"
|
1469 |
+
|
1470 |
+
#: loggers/SimplePluginLogger.php:972
|
1471 |
+
msgctxt "plugin logger: plugin info thickbox title"
|
1472 |
+
msgid "View changelog"
|
1473 |
+
msgstr "Zeige Changelog"
|
1474 |
+
|
1475 |
+
#: loggers/SimplePostLogger.php:38
|
1476 |
+
msgctxt "Post logger: search"
|
1477 |
+
msgid "Posts & Pages"
|
1478 |
+
msgstr "Beiträge & Seiten"
|
1479 |
+
|
1480 |
+
#: loggers/SimplePostLogger.php:40
|
1481 |
+
msgctxt "Post logger: search"
|
1482 |
+
msgid "Posts created"
|
1483 |
+
msgstr "erzeugte Beiträge"
|
1484 |
+
|
1485 |
+
#: loggers/SimplePostLogger.php:43
|
1486 |
+
msgctxt "Post logger: search"
|
1487 |
+
msgid "Posts updated"
|
1488 |
+
msgstr "aktualisierte Beiträge"
|
1489 |
+
|
1490 |
+
#: loggers/SimplePostLogger.php:46
|
1491 |
+
msgctxt "Post logger: search"
|
1492 |
+
msgid "Posts trashed"
|
1493 |
+
msgstr "In den Papierkorb verschobene Beiträge"
|
1494 |
+
|
1495 |
+
#: loggers/SimplePostLogger.php:49
|
1496 |
+
msgctxt "Post logger: search"
|
1497 |
+
msgid "Posts deleted"
|
1498 |
+
msgstr "gelöschte Beiträge"
|
1499 |
+
|
1500 |
+
#: loggers/SimplePostLogger.php:52
|
1501 |
+
msgctxt "Post logger: search"
|
1502 |
+
msgid "Posts restored"
|
1503 |
+
msgstr "wiederhergestellte Beiträge"
|
1504 |
+
|
1505 |
+
#: loggers/SimpleThemeLogger.php:36
|
1506 |
+
msgctxt "Theme logger: search"
|
1507 |
+
msgid "Themes & Widgets"
|
1508 |
+
msgstr "Themes & Widgets"
|
1509 |
+
|
1510 |
+
#: loggers/SimpleThemeLogger.php:38
|
1511 |
+
msgctxt "Theme logger: search"
|
1512 |
+
msgid "Switched themes"
|
1513 |
+
msgstr "gewechselte Themes"
|
1514 |
+
|
1515 |
+
#: loggers/SimpleThemeLogger.php:41
|
1516 |
+
msgctxt "Theme logger: search"
|
1517 |
+
msgid "Changed appearance of themes"
|
1518 |
+
msgstr "geänderte Erscheinungsbilder von Themes"
|
1519 |
+
|
1520 |
+
#: loggers/SimpleThemeLogger.php:44
|
1521 |
+
msgctxt "Theme logger: search"
|
1522 |
+
msgid "Added widgets"
|
1523 |
+
msgstr "hinzugefügte Widgets"
|
1524 |
+
|
1525 |
+
#: loggers/SimpleThemeLogger.php:47
|
1526 |
+
msgctxt "Theme logger: search"
|
1527 |
+
msgid "Removed widgets"
|
1528 |
+
msgstr "entfernte Widgets"
|
1529 |
+
|
1530 |
+
#: loggers/SimpleThemeLogger.php:50
|
1531 |
+
msgctxt "Theme logger: search"
|
1532 |
+
msgid "Changed widgets order"
|
1533 |
+
msgstr "umsortierte Widgets"
|
1534 |
+
|
1535 |
+
#: loggers/SimpleThemeLogger.php:53
|
1536 |
+
msgctxt "Theme logger: search"
|
1537 |
+
msgid "Edited widgets"
|
1538 |
+
msgstr "geänderte Widgets"
|
1539 |
+
|
1540 |
+
#: loggers/SimpleThemeLogger.php:56
|
1541 |
+
msgctxt "Theme logger: search"
|
1542 |
+
msgid "Background of themes changed"
|
1543 |
+
msgstr "geänderte Theme-Hintergründe"
|
1544 |
+
|
1545 |
+
#: loggers/SimpleUserLogger.php:36
|
1546 |
+
msgctxt "User destroys other login sessions for themself"
|
1547 |
+
msgid "Logged out from all other sessions"
|
1548 |
+
msgstr "hat sich von allen anderen Sitzungen abgemeldet"
|
1549 |
+
|
1550 |
+
#: loggers/SimpleUserLogger.php:45
|
1551 |
+
msgctxt "User destroys all login sessions for a user"
|
1552 |
+
msgid "Logged out \"{user_display_name}\" from all sessions"
|
1553 |
+
msgstr "hat den Benutzer \"{user_display_name}\" von allen Sitzungen abgemeldet"
|
1554 |
+
|
1555 |
+
#: templates/settings-statsRowsPerDay.php:36
|
1556 |
+
msgctxt "stats: date in rows per day chart"
|
1557 |
+
msgid "M j"
|
1558 |
+
msgstr "M j"
|
1559 |
+
|
1560 |
+
#~ msgid "Filter"
|
1561 |
+
#~ msgstr "Filter"
|
1562 |
+
|
1563 |
+
#~ msgid "+%1$s more"
|
1564 |
+
#~ msgstr "+%1$s mehr"
|
1565 |
+
|
1566 |
+
#~ msgid "%1$d event today from one user."
|
1567 |
+
#~ msgstr "%1$d Ereignis heute von einem Benutzer."
|
1568 |
+
|
1569 |
+
#~ msgid "History"
|
1570 |
+
#~ msgstr "Historie"
|
1571 |
+
|
1572 |
+
#~ msgid "This is potentially useful meta data that a logger have saved."
|
1573 |
+
#~ msgstr ""
|
1574 |
+
#~ "Dies sind potentiell nützliche Meta-Daten, die ein Logger abgespeichert "
|
1575 |
+
#~ "hat."
|
1576 |
+
|
1577 |
+
#~ msgid ""
|
1578 |
+
#~ "Failed to login with username \"{failed_login_username}\" because no user "
|
1579 |
+
#~ "with that username exist"
|
1580 |
+
#~ msgstr ""
|
1581 |
+
#~ "Anmeldung mit dem Benutzernamen \"{failed_login_username}\" "
|
1582 |
+
#~ "fehlgeschlagen, weil kein Benutzer mit diesem Namen existiert"
|
languages/simple-history-nl_NL.mo
ADDED
Binary file
|
languages/simple-history-nl_NL.po
ADDED
@@ -0,0 +1,1527 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Copyright (C) 2015 Simple History
|
2 |
+
# This file is distributed under the same license as the Simple History package.
|
3 |
+
msgid ""
|
4 |
+
msgstr ""
|
5 |
+
"Project-Id-Version: Simple History 2.0.13\n"
|
6 |
+
"Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/Simple-History\n"
|
7 |
+
"POT-Creation-Date: 2015-01-26 15:41:57+00:00\n"
|
8 |
+
"PO-Revision-Date: 2015-01-28 15:04+0100\n"
|
9 |
+
"Last-Translator: Niko Strijbol <strijbol.niko@gmail.com>\n"
|
10 |
+
"Language-Team: Niko Strijbol <strijbol.niko@gmail.com>\n"
|
11 |
+
"Language: nl\n"
|
12 |
+
"MIME-Version: 1.0\n"
|
13 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
14 |
+
"Content-Transfer-Encoding: 8bit\n"
|
15 |
+
"X-Generator: Poedit 1.7.4\n"
|
16 |
+
"X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;"
|
17 |
+
"_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;"
|
18 |
+
"esc_html_x:1,2c\n"
|
19 |
+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
20 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
21 |
+
"X-Poedit-Basepath: ../\n"
|
22 |
+
"X-Textdomain-Support: yes\n"
|
23 |
+
"X-Poedit-SearchPath-0: .\n"
|
24 |
+
|
25 |
+
#: SimpleHistory.php:504 SimpleHistory.php:765
|
26 |
+
msgid "Settings"
|
27 |
+
msgstr "Instellingen"
|
28 |
+
|
29 |
+
#: SimpleHistory.php:515
|
30 |
+
msgid "Log (debug)"
|
31 |
+
msgstr "Log (debug)"
|
32 |
+
|
33 |
+
#: SimpleHistory.php:520
|
34 |
+
msgid "Styles example (debug)"
|
35 |
+
msgstr "Stijlvoorbeelden (debug)"
|
36 |
+
|
37 |
+
#. Plugin Name of the plugin/theme
|
38 |
+
#: SimpleHistory.php:780
|
39 |
+
msgid "Simple History"
|
40 |
+
msgstr "Simple History"
|
41 |
+
|
42 |
+
#: SimpleHistory.php:856
|
43 |
+
msgid "Remove all log items?"
|
44 |
+
msgstr "Alle logitems verwijderen?"
|
45 |
+
|
46 |
+
#: SimpleHistory.php:858
|
47 |
+
msgid "Go to the first page"
|
48 |
+
msgstr "Ga naar de eerste pagina"
|
49 |
+
|
50 |
+
#: SimpleHistory.php:859
|
51 |
+
msgid "Go to the previous page"
|
52 |
+
msgstr "Ga naar de vorige pagina"
|
53 |
+
|
54 |
+
#: SimpleHistory.php:860
|
55 |
+
msgid "Go to the next page"
|
56 |
+
msgstr "Ga naar de volgende pagina"
|
57 |
+
|
58 |
+
#: SimpleHistory.php:861
|
59 |
+
msgid "Go to the last page"
|
60 |
+
msgstr "Ga naar de laatste pagina"
|
61 |
+
|
62 |
+
#: SimpleHistory.php:862
|
63 |
+
msgid "Current page"
|
64 |
+
msgstr "Huidige pagina"
|
65 |
+
|
66 |
+
#: SimpleHistory.php:864
|
67 |
+
msgid "Oups, the log could not be loaded right now."
|
68 |
+
msgstr "Oeps, de log kon niet geladen worden."
|
69 |
+
|
70 |
+
#: SimpleHistory.php:865
|
71 |
+
msgid "Your search did not match any history events."
|
72 |
+
msgstr "Er kwamen geen geschiedenisevents overeen met je zoekopdracht"
|
73 |
+
|
74 |
+
#: SimpleHistory.php:1149 SimpleHistory.php:1250
|
75 |
+
msgid "Simple History Settings"
|
76 |
+
msgstr "Simple History-instellingen"
|
77 |
+
|
78 |
+
#: SimpleHistory.php:1183
|
79 |
+
msgid "No valid callback found"
|
80 |
+
msgstr "Geen geldige callback gevonden."
|
81 |
+
|
82 |
+
#: SimpleHistory.php:1271
|
83 |
+
msgid "Cleared database"
|
84 |
+
msgstr "Database leeggemaakt"
|
85 |
+
|
86 |
+
#: SimpleHistory.php:1298
|
87 |
+
msgid "Show history"
|
88 |
+
msgstr "Geschiedenis tonen"
|
89 |
+
|
90 |
+
#: SimpleHistory.php:1311
|
91 |
+
msgid "Number of items per page"
|
92 |
+
msgstr "Aantal items per pagina"
|
93 |
+
|
94 |
+
#: SimpleHistory.php:1323
|
95 |
+
msgid "Clear log"
|
96 |
+
msgstr "Log wissen"
|
97 |
+
|
98 |
+
#: SimpleHistory.php:1462
|
99 |
+
msgid "on the dashboard"
|
100 |
+
msgstr "op het dashboard"
|
101 |
+
|
102 |
+
#: SimpleHistory.php:1467
|
103 |
+
msgid "as a page under the dashboard menu"
|
104 |
+
msgstr "als een pagina onder het dashboardmenu"
|
105 |
+
|
106 |
+
#: SimpleHistory.php:1483
|
107 |
+
msgid "Items in the database are automatically removed after %1$s days."
|
108 |
+
msgstr "Items in de database worden automatisch verwijderd na %1$s dagen."
|
109 |
+
|
110 |
+
#: SimpleHistory.php:1485
|
111 |
+
msgid "Items in the database are kept forever."
|
112 |
+
msgstr "Items in de database worden voor eeuwig bijgehouden."
|
113 |
+
|
114 |
+
#: SimpleHistory.php:1489
|
115 |
+
msgid "Clear log now"
|
116 |
+
msgstr "Log nu wissen"
|
117 |
+
|
118 |
+
#: SimpleHistory.php:1533
|
119 |
+
msgid "The log for Simple History was cleared ({num_rows} rows were removed)."
|
120 |
+
msgstr ""
|
121 |
+
"De log voor Simple History is gewist ([num_rows} rijen werden verwijderd)."
|
122 |
+
|
123 |
+
#: SimpleHistory.php:1793
|
124 |
+
msgid "+%1$s similar event"
|
125 |
+
msgid_plural "+%1$s similar events"
|
126 |
+
msgstr[0] "+%1$s gelijkaardige gebeurtenis"
|
127 |
+
msgstr[1] "+%1$s gelijkaardige gebeurtenissen"
|
128 |
+
|
129 |
+
#: SimpleHistory.php:1800
|
130 |
+
msgid "Loading…"
|
131 |
+
msgstr "Laden…"
|
132 |
+
|
133 |
+
#: SimpleHistory.php:1807
|
134 |
+
msgid "Showing %1$s more"
|
135 |
+
msgstr "%1$s meer tonen"
|
136 |
+
|
137 |
+
#: SimpleHistory.php:1826
|
138 |
+
msgid "Context data"
|
139 |
+
msgstr "Contextdata"
|
140 |
+
|
141 |
+
#: SimpleHistory.php:1827
|
142 |
+
msgid "This is potentially useful meta data that a logger has saved."
|
143 |
+
msgstr "Dit is potentieel bruikbare metadata die de logger opgeslagen heeft."
|
144 |
+
|
145 |
+
#: SimpleHistory.php:2302
|
146 |
+
msgid "No events today so far."
|
147 |
+
msgstr "Nog geen events vandaag."
|
148 |
+
|
149 |
+
#: SimpleHistory.php:2321
|
150 |
+
msgid "One event today from one user."
|
151 |
+
msgstr "Een gebeurtenis vandaag van een gebruiker."
|
152 |
+
|
153 |
+
#: SimpleHistory.php:2327
|
154 |
+
msgid "One event today from one source."
|
155 |
+
msgstr "Een gebeurtenis vandaag van een bron."
|
156 |
+
|
157 |
+
#: SimpleHistory.php:2333
|
158 |
+
msgid "%1$d events today from one user."
|
159 |
+
msgstr "%1$d events vandaag van een gebruiker."
|
160 |
+
|
161 |
+
#: SimpleHistory.php:2339
|
162 |
+
msgid "%1$d events today from %2$d users."
|
163 |
+
msgstr "%1$d events vandaag van %2$d gebruikers."
|
164 |
+
|
165 |
+
#: SimpleHistory.php:2345 SimpleHistory.php:2351
|
166 |
+
msgid "%1$d events today from one user and one other source."
|
167 |
+
msgstr "%1$d gebeurtenissen vandaag van een gebruiker en een andere bron."
|
168 |
+
|
169 |
+
#: SimpleHistory.php:2357
|
170 |
+
msgid "%1$d events today from one user and %3$d other sources."
|
171 |
+
msgstr "%1$d gebeurtenissen vandaag van een gebruiker en %3$d andere bronnen."
|
172 |
+
|
173 |
+
#: SimpleHistory.php:2363
|
174 |
+
msgid "%1$s events today from %2$d users and %3$d other sources."
|
175 |
+
msgstr "%1$d gebeurtenissen vandaag van %2$d gebruikers en %3$d andere bronnen."
|
176 |
+
|
177 |
+
#: dropins/SimpleHistoryDonateDropin.php:36
|
178 |
+
msgid "Donate"
|
179 |
+
msgstr "Doneren"
|
180 |
+
|
181 |
+
#: dropins/SimpleHistoryDonateDropin.php:72
|
182 |
+
msgid ""
|
183 |
+
"If you find Simple History useful please <a href=\"%1$s\">donate</a> or <a "
|
184 |
+
"href=\"%2$s\">buy me something from my Amazon wish list</a>."
|
185 |
+
msgstr ""
|
186 |
+
"Als je Simple History nuttig vindt, gelieve dan <a href=\"%1$s\">te doneren</"
|
187 |
+
"a> of <a href=\"%2$s\">iets van mijn Amazon-verlanglijst te kopen.</a>."
|
188 |
+
|
189 |
+
#: dropins/SimpleHistoryFilterDropin.php:44
|
190 |
+
msgid "Filter history"
|
191 |
+
msgstr "Geschiedenis filteren"
|
192 |
+
|
193 |
+
#: dropins/SimpleHistoryFilterDropin.php:48
|
194 |
+
#: dropins/SimpleHistoryFilterDropin.php:159
|
195 |
+
msgid "Search events"
|
196 |
+
msgstr "Zoek evenementen"
|
197 |
+
|
198 |
+
#: dropins/SimpleHistoryFilterDropin.php:56
|
199 |
+
msgid "All log levels"
|
200 |
+
msgstr "Alle logniveau's"
|
201 |
+
|
202 |
+
#: dropins/SimpleHistoryFilterDropin.php:70
|
203 |
+
msgid "All messages"
|
204 |
+
msgstr "Alle berichten"
|
205 |
+
|
206 |
+
#: dropins/SimpleHistoryFilterDropin.php:124
|
207 |
+
msgid "All users"
|
208 |
+
msgstr "Alle gebruikers"
|
209 |
+
|
210 |
+
#: dropins/SimpleHistoryFilterDropin.php:145
|
211 |
+
msgid "All dates"
|
212 |
+
msgstr "Alle datums"
|
213 |
+
|
214 |
+
#: dropins/SimpleHistoryFilterDropin.php:168
|
215 |
+
msgid "Search"
|
216 |
+
msgstr "Zoeken"
|
217 |
+
|
218 |
+
#: dropins/SimpleHistoryNewRowsNotifier.php:80
|
219 |
+
msgid "1 new row"
|
220 |
+
msgid_plural "%d new rows"
|
221 |
+
msgstr[0] "1 nieuwe rij"
|
222 |
+
msgstr[1] "%d nieuwe rijen"
|
223 |
+
|
224 |
+
#: dropins/SimpleHistoryRSSDropin.php:55
|
225 |
+
msgid "Address"
|
226 |
+
msgstr "Adres"
|
227 |
+
|
228 |
+
#: dropins/SimpleHistoryRSSDropin.php:64
|
229 |
+
msgid "Regenerate"
|
230 |
+
msgstr "Hergenereren"
|
231 |
+
|
232 |
+
#: dropins/SimpleHistoryRSSDropin.php:81
|
233 |
+
msgid "Created new secret RSS address"
|
234 |
+
msgstr "Maak nieuw geheim RSS-adres"
|
235 |
+
|
236 |
+
#: dropins/SimpleHistoryRSSDropin.php:148
|
237 |
+
#: dropins/SimpleHistoryRSSDropin.php:259
|
238 |
+
msgid "History for %s"
|
239 |
+
msgstr "Geschiedenis voor %s"
|
240 |
+
|
241 |
+
#: dropins/SimpleHistoryRSSDropin.php:149
|
242 |
+
#: dropins/SimpleHistoryRSSDropin.php:260
|
243 |
+
msgid "WordPress History for %s"
|
244 |
+
msgstr "WordPress-geschiedenis voor %s"
|
245 |
+
|
246 |
+
#: dropins/SimpleHistoryRSSDropin.php:196
|
247 |
+
msgid "+%1$s occasion"
|
248 |
+
msgid_plural "+%1$s occasions"
|
249 |
+
msgstr[0] "+%1$s gelegenheid"
|
250 |
+
msgstr[1] "+%1$s gelegenheden"
|
251 |
+
|
252 |
+
#: dropins/SimpleHistoryRSSDropin.php:263
|
253 |
+
msgid "Wrong RSS secret"
|
254 |
+
msgstr "Verkeerd RSS-geheim"
|
255 |
+
|
256 |
+
#: dropins/SimpleHistoryRSSDropin.php:264
|
257 |
+
msgid ""
|
258 |
+
"Your RSS secret for Simple History RSS feed is wrong. Please see WordPress "
|
259 |
+
"settings for current link to the RSS feed."
|
260 |
+
msgstr ""
|
261 |
+
"Je RSS-geheim voor de RSS-feed van Simple History is verkeerd. Gelieve de "
|
262 |
+
"WordPress-instellingen te bekijken voor de huidige link naar de RSS-feed."
|
263 |
+
|
264 |
+
#: dropins/SimpleHistoryRSSDropin.php:315
|
265 |
+
msgid ""
|
266 |
+
"You can generate a new address for the RSS feed. This is useful if you think "
|
267 |
+
"that the address has fallen into the wrong hands."
|
268 |
+
msgstr ""
|
269 |
+
"Je kan een nieuw adres voor de RSS-feed genereren. Dit is handig als je denkt "
|
270 |
+
"dat het adres in de verkeerde handen gevallen is."
|
271 |
+
|
272 |
+
#: dropins/SimpleHistoryRSSDropin.php:318
|
273 |
+
msgid "Generate new address"
|
274 |
+
msgstr "Genereer nieuw adres"
|
275 |
+
|
276 |
+
#: dropins/SimpleHistoryRSSDropin.php:346
|
277 |
+
msgid ""
|
278 |
+
"Simple History has a RSS feed which you can subscribe to and receive log "
|
279 |
+
"updates. Make sure you only share the feed with people you trust, since it "
|
280 |
+
"can contain sensitive or confidential information."
|
281 |
+
msgstr ""
|
282 |
+
"Simple History heeft een RSS-feed waarop je je kan abonneren om log-updates "
|
283 |
+
"te ontvangen. Deel de feed enkel met mensen die je vertrouwt, want deze kan "
|
284 |
+
"vertrouwelijke of gevoelige informatie bevatten."
|
285 |
+
|
286 |
+
#: dropins/SimpleHistorySettingsLogtestDropin.php:20
|
287 |
+
msgid "Test data (debug)"
|
288 |
+
msgstr "Testdata (debug)"
|
289 |
+
|
290 |
+
#: dropins/SimpleHistorySettingsStatsDropin.php:27
|
291 |
+
msgid "Stats"
|
292 |
+
msgstr "Statistieken"
|
293 |
+
|
294 |
+
#: dropins/SimpleHistorySidebarDropin.php:159 loggers/SimpleLogger.php:296
|
295 |
+
msgid "Just now"
|
296 |
+
msgstr "Nu juist"
|
297 |
+
|
298 |
+
#: index.php:59
|
299 |
+
msgid ""
|
300 |
+
"Simple History is a great plugin, but to use it your server must have at "
|
301 |
+
"least PHP 5.3 installed (you have version %s)."
|
302 |
+
msgstr ""
|
303 |
+
"Simple History is een fantastische plug-in, maar je server moet minstens PHP "
|
304 |
+
"5.3 hebben om het te kunnen gebruiken (je hebt versie %s)."
|
305 |
+
|
306 |
+
#: loggers/SimpleCommentsLogger.php:685
|
307 |
+
msgid "Spam"
|
308 |
+
msgstr "Spam"
|
309 |
+
|
310 |
+
#: loggers/SimpleCommentsLogger.php:687
|
311 |
+
msgid "Approved"
|
312 |
+
msgstr "Goedgekeurd"
|
313 |
+
|
314 |
+
#: loggers/SimpleCommentsLogger.php:689
|
315 |
+
msgid "Pending"
|
316 |
+
msgstr "In behandeling"
|
317 |
+
|
318 |
+
#: loggers/SimpleCommentsLogger.php:703
|
319 |
+
msgid "Trackback"
|
320 |
+
msgstr "Trackback"
|
321 |
+
|
322 |
+
#: loggers/SimpleCommentsLogger.php:705
|
323 |
+
msgid "Pingback"
|
324 |
+
msgstr "Pingback"
|
325 |
+
|
326 |
+
#: loggers/SimpleCommentsLogger.php:707
|
327 |
+
msgid "Comment"
|
328 |
+
msgstr "Reactie"
|
329 |
+
|
330 |
+
#: loggers/SimpleCoreUpdatesLogger.php:29
|
331 |
+
msgid "Updated WordPress from {prev_version} to {new_version}"
|
332 |
+
msgstr "WordPress bijgewerkt van {prev_version} tot {new_version}"
|
333 |
+
|
334 |
+
#: loggers/SimpleCoreUpdatesLogger.php:30
|
335 |
+
msgid "WordPress auto-updated from {prev_version} to {new_version}"
|
336 |
+
msgstr "WordPress automatisch bijgewerkt van {prev_version} tot {new_version}"
|
337 |
+
|
338 |
+
#: loggers/SimpleExportLogger.php:23
|
339 |
+
msgid "Created XML export"
|
340 |
+
msgstr "XML-export gemaakt"
|
341 |
+
|
342 |
+
#: loggers/SimpleLegacyLogger.php:88
|
343 |
+
msgid "By %s"
|
344 |
+
msgstr "Door %s"
|
345 |
+
|
346 |
+
#: loggers/SimpleLegacyLogger.php:93
|
347 |
+
msgid "%d occasions"
|
348 |
+
msgstr "%d gelegenheden"
|
349 |
+
|
350 |
+
#: loggers/SimpleLogger.php:203
|
351 |
+
msgid "Deleted user (had id %1$s, email %2$s, login %3$s)"
|
352 |
+
msgstr "Gebruiker verwijderd (had id %1$s, e-mail %2$s, login %3$s)"
|
353 |
+
|
354 |
+
#: loggers/SimpleLogger.php:218
|
355 |
+
msgid "Anonymous web user"
|
356 |
+
msgstr "Anonieme webgebruiker"
|
357 |
+
|
358 |
+
#: loggers/SimpleLogger.php:226
|
359 |
+
msgid "Anonymous user from %1$s"
|
360 |
+
msgstr "Anonieme gebruiker van %1$s"
|
361 |
+
|
362 |
+
#. translators: Date format for log row header, see http:php.net/date
|
363 |
+
#: loggers/SimpleLogger.php:301
|
364 |
+
msgid "M j, Y \\a\\t G:i"
|
365 |
+
msgstr "M j, Y \\a\\t G:i"
|
366 |
+
|
367 |
+
#. translators: 1: last modified date and time in human time diff-format
|
368 |
+
#: loggers/SimpleLogger.php:309
|
369 |
+
msgid "%1$s ago"
|
370 |
+
msgstr "%1$s geleden"
|
371 |
+
|
372 |
+
#: loggers/SimpleMediaLogger.php:23
|
373 |
+
msgid "Created {post_type} \"{attachment_title}\""
|
374 |
+
msgstr " {post_type} \"{attachment_title}\" aangemaakt"
|
375 |
+
|
376 |
+
#: loggers/SimpleMediaLogger.php:24
|
377 |
+
msgid "Edited {post_type} \"{attachment_title}\""
|
378 |
+
msgstr "{post_type} \"{attachment_title}\" bijgewerkt"
|
379 |
+
|
380 |
+
#: loggers/SimpleMediaLogger.php:25
|
381 |
+
msgid "Deleted {post_type} \"{attachment_title}\" (\"{attachment_filename}\")"
|
382 |
+
msgstr ""
|
383 |
+
" {post_type} \"{attachment_title}\" (\"{attachment_filename}\") verwijderd"
|
384 |
+
|
385 |
+
#: loggers/SimpleMediaLogger.php:81
|
386 |
+
msgid "Edited {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
|
387 |
+
msgstr ""
|
388 |
+
"{post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a> bijgewerkt"
|
389 |
+
|
390 |
+
#: loggers/SimpleMediaLogger.php:85
|
391 |
+
msgid "Uploaded {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
|
392 |
+
msgstr "{post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a> geüpload"
|
393 |
+
|
394 |
+
#: loggers/SimpleMediaLogger.php:197
|
395 |
+
msgid "{attachment_thumb}"
|
396 |
+
msgstr "{attachment_thumb}"
|
397 |
+
|
398 |
+
#: loggers/SimpleMediaLogger.php:206
|
399 |
+
msgid "{attachment_size_format}"
|
400 |
+
msgstr "{attachment_size_format}"
|
401 |
+
|
402 |
+
#: loggers/SimpleMediaLogger.php:207
|
403 |
+
msgid "{attachment_filetype_extension}"
|
404 |
+
msgstr "{attachment_filetype_extension}"
|
405 |
+
|
406 |
+
#: loggers/SimpleMediaLogger.php:209
|
407 |
+
msgid "{full_image_width} × {full_image_height}"
|
408 |
+
msgstr "{full_image_width} × {full_image_height}"
|
409 |
+
|
410 |
+
#: loggers/SimpleMenuLogger.php:23
|
411 |
+
msgid "Created menu \"{menu_name}\""
|
412 |
+
msgstr "Menu \"{menu_name}\" aangemaakt"
|
413 |
+
|
414 |
+
#: loggers/SimpleMenuLogger.php:24
|
415 |
+
msgid "Edited menu \"{menu_name}\""
|
416 |
+
msgstr "Menu \"{menu_name}\" bijgewerkt"
|
417 |
+
|
418 |
+
#: loggers/SimpleMenuLogger.php:25
|
419 |
+
msgid "Deleted menu \"{menu_name}\""
|
420 |
+
msgstr "Menu \"{menu_name}\" verwijderd"
|
421 |
+
|
422 |
+
#: loggers/SimpleMenuLogger.php:26
|
423 |
+
msgid "Edited a menu item"
|
424 |
+
msgstr "Een menu-item bijgewerkt"
|
425 |
+
|
426 |
+
#: loggers/SimpleMenuLogger.php:27
|
427 |
+
msgid "Updated menu locations"
|
428 |
+
msgstr "Menulocaties bijgewerkt"
|
429 |
+
|
430 |
+
#: loggers/SimpleOptionsLogger.php:140
|
431 |
+
msgid "Updated option \"{option}\""
|
432 |
+
msgstr "Optie \"{option}\" bijgewerkt"
|
433 |
+
|
434 |
+
#: loggers/SimpleOptionsLogger.php:242 loggers/SimpleThemeLogger.php:570
|
435 |
+
msgid "New value"
|
436 |
+
msgstr "Nieuwe waarde"
|
437 |
+
|
438 |
+
#: loggers/SimpleOptionsLogger.php:253 loggers/SimpleThemeLogger.php:582
|
439 |
+
msgid "Old value"
|
440 |
+
msgstr "Oude waarde"
|
441 |
+
|
442 |
+
#: loggers/SimpleOptionsLogger.php:268 loggers/SimpleOptionsLogger.php:285
|
443 |
+
msgid "Settings page"
|
444 |
+
msgstr "Instellingenpagina"
|
445 |
+
|
446 |
+
#: loggers/SimplePostLogger.php:30
|
447 |
+
msgid "Created {post_type} \"{post_title}\""
|
448 |
+
msgstr "{post_type} \"{post_title}\" aangemaakt"
|
449 |
+
|
450 |
+
#: loggers/SimplePostLogger.php:31
|
451 |
+
msgid "Updated {post_type} \"{post_title}\""
|
452 |
+
msgstr "{post_type} \"{post_title}\" bijgewerkt"
|
453 |
+
|
454 |
+
#: loggers/SimplePostLogger.php:32
|
455 |
+
msgid "Restored {post_type} \"{post_title}\" from trash"
|
456 |
+
msgstr "{post_type} \"{post_title}\" uit de prullenbak hersteld"
|
457 |
+
|
458 |
+
#: loggers/SimplePostLogger.php:33 loggers/SimplePostLogger.php:236
|
459 |
+
msgid "Deleted {post_type} \"{post_title}\""
|
460 |
+
msgstr "{post_type} \"{post_title}\" verwijderd"
|
461 |
+
|
462 |
+
#: loggers/SimplePostLogger.php:34
|
463 |
+
msgid "Moved {post_type} \"{post_title}\" to the trash"
|
464 |
+
msgstr "{post_type} \"{post_title}\" verplaatst naar de prullenbak"
|
465 |
+
|
466 |
+
#: loggers/SimplePostLogger.php:232
|
467 |
+
msgid "Updated {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a>"
|
468 |
+
msgstr "{post_type} <a href=\"{edit_link}\">\"{post_title}\"</a> bijgewerkt"
|
469 |
+
|
470 |
+
#: loggers/SimplePostLogger.php:240
|
471 |
+
msgid "Created {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a>"
|
472 |
+
msgstr "{post_type} <a href=\"{edit_link}\">\"{post_title}\"</a> aangemaakt"
|
473 |
+
|
474 |
+
#: loggers/SimplePostLogger.php:245
|
475 |
+
msgid ""
|
476 |
+
"Moved {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a> to the trash"
|
477 |
+
msgstr ""
|
478 |
+
"{post_type} <a href=\"{edit_link}\">\"{post_title}\"</a> verplaatst naar de "
|
479 |
+
"prullenbak"
|
480 |
+
|
481 |
+
#: loggers/SimpleThemeLogger.php:26
|
482 |
+
msgid "Switched theme to \"{theme_name}\" from \"{prev_theme_name}\""
|
483 |
+
msgstr "Thema gewijzigd naar \"{theme_name}\" van \"{prev_theme_name}\""
|
484 |
+
|
485 |
+
#: loggers/SimpleThemeLogger.php:27
|
486 |
+
msgid "Customized theme appearance \"{setting_id}\""
|
487 |
+
msgstr "Themaweergave \"{setting_id}\" aangepast"
|
488 |
+
|
489 |
+
#: loggers/SimpleThemeLogger.php:28
|
490 |
+
msgid "Removed widget \"{widget_id_base}\" from sidebar \"{sidebar_id}\""
|
491 |
+
msgstr "Widget \"{widget_id_base}\" verwijderd van zijbalk \"{sidebar_id}\""
|
492 |
+
|
493 |
+
#: loggers/SimpleThemeLogger.php:29
|
494 |
+
msgid "Added widget \"{widget_id_base}\" to sidebar \"{sidebar_id}\""
|
495 |
+
msgstr "Widget \"{widget_id_base}\" toegevoegd aan zijbalk \"{sidebar_id}\""
|
496 |
+
|
497 |
+
#: loggers/SimpleThemeLogger.php:30
|
498 |
+
msgid "Changed widget order \"{widget_id_base}\" in sidebar \"{sidebar_id}\""
|
499 |
+
msgstr ""
|
500 |
+
"Widgetvolgorde \"{widget_id_base}\" van zijbalk \"{sidebar_id}\" gewijzigd"
|
501 |
+
|
502 |
+
#: loggers/SimpleThemeLogger.php:31
|
503 |
+
msgid "Changed widget \"{widget_id_base}\" in sidebar \"{sidebar_id}\""
|
504 |
+
msgstr "Widget \"{widget_id_base}\" in zijbalk \"{sidebar_id}\" gewijzigd"
|
505 |
+
|
506 |
+
#: loggers/SimpleThemeLogger.php:32
|
507 |
+
msgid "Changed settings for the theme custom background"
|
508 |
+
msgstr "Optie voor aangepaste thema-achtergrond gewijzigd"
|
509 |
+
|
510 |
+
#: loggers/SimpleThemeLogger.php:532
|
511 |
+
msgid "Section"
|
512 |
+
msgstr "Sectie"
|
513 |
+
|
514 |
+
#: loggers/SimpleUserLogger.php:22
|
515 |
+
msgid ""
|
516 |
+
"Failed to login to account with username \"{login_user_login}\" because an "
|
517 |
+
"incorrect password was entered"
|
518 |
+
msgstr ""
|
519 |
+
"Inloggen met gebruikersnaam \"{login_user_login}\" mislukt door verkeerd "
|
520 |
+
"wachtwoord"
|
521 |
+
|
522 |
+
#: loggers/SimpleUserLogger.php:23
|
523 |
+
msgid ""
|
524 |
+
"Failed to login with username \"{failed_login_username}\" because no user "
|
525 |
+
"with that username exists"
|
526 |
+
msgstr ""
|
527 |
+
"Inloggen met gebruikersnaam \"{failed_login_username}\" mislukt omdat er geen "
|
528 |
+
"gebruiker bestaat met die naam"
|
529 |
+
|
530 |
+
#: loggers/SimpleUserLogger.php:24
|
531 |
+
msgid "Logged in"
|
532 |
+
msgstr "Ingelogd"
|
533 |
+
|
534 |
+
#: loggers/SimpleUserLogger.php:25
|
535 |
+
msgid "Unknown user logged in"
|
536 |
+
msgstr "Onbekende gebruiker heeft ingelogd"
|
537 |
+
|
538 |
+
#: loggers/SimpleUserLogger.php:26
|
539 |
+
msgid "Logged out"
|
540 |
+
msgstr "Uitgelogd"
|
541 |
+
|
542 |
+
#: loggers/SimpleUserLogger.php:27
|
543 |
+
msgid "Edited the profile for user {edited_user_login} ({edited_user_email})"
|
544 |
+
msgstr ""
|
545 |
+
"Profiel voor gebruiker {edited_user_login} ({edited_user_email}) bewerkt"
|
546 |
+
|
547 |
+
#: loggers/SimpleUserLogger.php:28
|
548 |
+
msgid ""
|
549 |
+
"Created user {created_user_login} ({created_user_email}) with role "
|
550 |
+
"{created_user_role}"
|
551 |
+
msgstr ""
|
552 |
+
"Gebruiker {created_user_login} ({created_user_email}) aangemaakt met rol "
|
553 |
+
"{created_user_role}"
|
554 |
+
|
555 |
+
#: loggers/SimpleUserLogger.php:29
|
556 |
+
msgid "Deleted user {deleted_user_login} ({deleted_user_email})"
|
557 |
+
msgstr "Gebruiker {deleted_user_login} ({deleted_user_email}) verwijderd"
|
558 |
+
|
559 |
+
#: loggers/SimpleUserLogger.php:227
|
560 |
+
msgid "Edited <a href=\"{edit_profile_link}\">your profile</a>"
|
561 |
+
msgstr "<a href=\"{edit_profile_link}\">Je profiel</a> aangepast"
|
562 |
+
|
563 |
+
#: loggers/SimpleUserLogger.php:231
|
564 |
+
msgid "Edited <a href=\"{edit_profile_link}\">their profile</a>"
|
565 |
+
msgstr "<a href=\"{edit_profile_link}\">Hun profiel</a> aangepast"
|
566 |
+
|
567 |
+
#: loggers/SimpleUserLogger.php:240
|
568 |
+
msgid "Edited your profile"
|
569 |
+
msgstr "Je profiel aangepast"
|
570 |
+
|
571 |
+
#: loggers/SimpleUserLogger.php:251
|
572 |
+
msgid ""
|
573 |
+
"Edited the profile for user <a href="
|
574 |
+
"\"{edit_profile_link}\">{edited_user_login} ({edited_user_email})</a>"
|
575 |
+
msgstr ""
|
576 |
+
"Profiel voor gebruiker <a href=\"{edit_profile_link}\">{edited_user_login} "
|
577 |
+
"({edited_user_email})</a> bewerkt"
|
578 |
+
|
579 |
+
#: node_modules/grunt-wp-i18n/test/fixtures/basic-theme/exclude/file.php:3
|
580 |
+
#: node_modules/grunt-wp-i18n/test/fixtures/plugin-include/plugin-include.php:6
|
581 |
+
msgid "Exclude"
|
582 |
+
msgstr "Uitsluiten"
|
583 |
+
|
584 |
+
#: node_modules/grunt-wp-i18n/test/fixtures/plugin-include/include/file.php:2
|
585 |
+
msgid "Include"
|
586 |
+
msgstr "Inclusief"
|
587 |
+
|
588 |
+
#: node_modules/grunt-wp-i18n/test/fixtures/text-domains/add-domain.php:2
|
589 |
+
#: node_modules/grunt-wp-i18n/test/fixtures/text-domains/update-domains.php:2
|
590 |
+
#: node_modules/grunt-wp-i18n/test/fixtures/text-domains/update-domains.php:3
|
591 |
+
msgid "String"
|
592 |
+
msgstr "String"
|
593 |
+
|
594 |
+
#: templates/settings-statsIntro.php:19
|
595 |
+
msgid "<b>%1$s rows</b> have been logged the last <b>%2$s days</b>"
|
596 |
+
msgstr "<b>%1$s rijen</b> werden opgeslagen in de laatste <b>%2$s dagen</b>"
|
597 |
+
|
598 |
+
#: templates/settings-statsLogLevels.php:4
|
599 |
+
msgid "Log levels"
|
600 |
+
msgstr "Logniveau's"
|
601 |
+
|
602 |
+
#: templates/settings-statsLogLevels.php:6
|
603 |
+
msgid "Number of rows logged for each log level."
|
604 |
+
msgstr "Aantal rijen die gelogd zijn voor elk logniveau."
|
605 |
+
|
606 |
+
#: templates/settings-statsLoggers.php:4
|
607 |
+
msgid "Loggers"
|
608 |
+
msgstr "Loggers"
|
609 |
+
|
610 |
+
#: templates/settings-statsRowsPerDay.php:4
|
611 |
+
msgid "Rows per day"
|
612 |
+
msgstr "Rijen per dag"
|
613 |
+
|
614 |
+
#: templates/settings-statsUsers.php:4
|
615 |
+
msgid "Users"
|
616 |
+
msgstr "Gebruikers"
|
617 |
+
|
618 |
+
#: templates/settings-statsUsers.php:6
|
619 |
+
msgid "Number of logged items for the 5 users with most logged rows."
|
620 |
+
msgstr ""
|
621 |
+
"Aantal rijen gelogde items voor de 5 gebruikers met de meeste gelogde rijen."
|
622 |
+
|
623 |
+
#: templates/settings-statsUsers.php:7
|
624 |
+
msgid "Deleted users are also included."
|
625 |
+
msgstr "Bevat ook verwijderde gebruikers."
|
626 |
+
|
627 |
+
#. Plugin URI of the plugin/theme
|
628 |
+
msgid "http://simple-history.com"
|
629 |
+
msgstr "http://simple-history.com"
|
630 |
+
|
631 |
+
#. Description of the plugin/theme
|
632 |
+
msgid ""
|
633 |
+
"Plugin that logs various things that occur in WordPress and then presents "
|
634 |
+
"those events in a very nice GUI."
|
635 |
+
msgstr ""
|
636 |
+
"Plu-in die de verschillende dingen die gebeuren in WordPress opslaat en in "
|
637 |
+
"een mooie weergave giet."
|
638 |
+
|
639 |
+
#. Author of the plugin/theme
|
640 |
+
msgid "Pär Thernström"
|
641 |
+
msgstr "Pär Thernström"
|
642 |
+
|
643 |
+
#. Author URI of the plugin/theme
|
644 |
+
msgid "http://simple-history.com/"
|
645 |
+
msgstr "http://simple-history.com/"
|
646 |
+
|
647 |
+
#: SimpleHistory.php:249
|
648 |
+
msgctxt ""
|
649 |
+
"Message visible while waiting for log to load from server the first time"
|
650 |
+
msgid "Loading history..."
|
651 |
+
msgstr "Geschiedenis laden..."
|
652 |
+
|
653 |
+
#: SimpleHistory.php:286
|
654 |
+
msgctxt "page n of n"
|
655 |
+
msgid "of"
|
656 |
+
msgstr "van"
|
657 |
+
|
658 |
+
#: SimpleHistory.php:357
|
659 |
+
msgctxt "API: not enought arguments passed"
|
660 |
+
msgid "Not enough args specified"
|
661 |
+
msgstr "Onvoldoende argumenten opgegeven"
|
662 |
+
|
663 |
+
#: SimpleHistory.php:1235
|
664 |
+
msgctxt "dashboard menu name"
|
665 |
+
msgid "Simple History"
|
666 |
+
msgstr "Simple History"
|
667 |
+
|
668 |
+
#: SimpleHistory.php:1359
|
669 |
+
msgctxt "history page headline"
|
670 |
+
msgid "Simple History"
|
671 |
+
msgstr "Simple History"
|
672 |
+
|
673 |
+
#: SimpleHistory.php:1619
|
674 |
+
msgctxt "simple-history"
|
675 |
+
msgid "Simple History removed one event that were older than {days} days"
|
676 |
+
msgid_plural ""
|
677 |
+
"Simple History removed {num_rows} events that were older than {days} days"
|
678 |
+
msgstr[0] "Simple History verwijderde een gebeurtenis ouder dan {days} dagen"
|
679 |
+
msgstr[1] ""
|
680 |
+
"Simple History verwijderde {num_rows} gebeurtenissen ouder dan {days} dagen"
|
681 |
+
|
682 |
+
#: SimpleHistory.php:1963
|
683 |
+
msgctxt "Log level in gui"
|
684 |
+
msgid "emergency"
|
685 |
+
msgstr "noodgeval"
|
686 |
+
|
687 |
+
#: SimpleHistory.php:1967
|
688 |
+
msgctxt "Log level in gui"
|
689 |
+
msgid "alert"
|
690 |
+
msgstr "waarschuwing"
|
691 |
+
|
692 |
+
#: SimpleHistory.php:1971
|
693 |
+
msgctxt "Log level in gui"
|
694 |
+
msgid "critical"
|
695 |
+
msgstr "kritiek"
|
696 |
+
|
697 |
+
#: SimpleHistory.php:1975
|
698 |
+
msgctxt "Log level in gui"
|
699 |
+
msgid "error"
|
700 |
+
msgstr "fout"
|
701 |
+
|
702 |
+
#: SimpleHistory.php:1979
|
703 |
+
msgctxt "Log level in gui"
|
704 |
+
msgid "warning"
|
705 |
+
msgstr "waarschuwing"
|
706 |
+
|
707 |
+
#: SimpleHistory.php:1983
|
708 |
+
msgctxt "Log level in gui"
|
709 |
+
msgid "notice"
|
710 |
+
msgstr "melding"
|
711 |
+
|
712 |
+
#: SimpleHistory.php:1987
|
713 |
+
msgctxt "Log level in gui"
|
714 |
+
msgid "info"
|
715 |
+
msgstr "info"
|
716 |
+
|
717 |
+
#: SimpleHistory.php:1991
|
718 |
+
msgctxt "Log level in gui"
|
719 |
+
msgid "debug"
|
720 |
+
msgstr "debug"
|
721 |
+
|
722 |
+
#: SimpleHistory.php:1996
|
723 |
+
msgctxt "Log level in gui"
|
724 |
+
msgid "Emergency"
|
725 |
+
msgstr "Noogeval"
|
726 |
+
|
727 |
+
#: SimpleHistory.php:2000
|
728 |
+
msgctxt "Log level in gui"
|
729 |
+
msgid "Alert"
|
730 |
+
msgstr "Waarschuwing"
|
731 |
+
|
732 |
+
#: SimpleHistory.php:2004
|
733 |
+
msgctxt "Log level in gui"
|
734 |
+
msgid "Critical"
|
735 |
+
msgstr "Kritiek"
|
736 |
+
|
737 |
+
#: SimpleHistory.php:2008
|
738 |
+
msgctxt "Log level in gui"
|
739 |
+
msgid "Error"
|
740 |
+
msgstr "Fout"
|
741 |
+
|
742 |
+
#: SimpleHistory.php:2012
|
743 |
+
msgctxt "Log level in gui"
|
744 |
+
msgid "Warning"
|
745 |
+
msgstr "Waarschuwing"
|
746 |
+
|
747 |
+
#: SimpleHistory.php:2016
|
748 |
+
msgctxt "Log level in gui"
|
749 |
+
msgid "Notice"
|
750 |
+
msgstr "Melding"
|
751 |
+
|
752 |
+
#: SimpleHistory.php:2020
|
753 |
+
msgctxt "Log level in gui"
|
754 |
+
msgid "Info"
|
755 |
+
msgstr "Info"
|
756 |
+
|
757 |
+
#: SimpleHistory.php:2024
|
758 |
+
msgctxt "Log level in gui"
|
759 |
+
msgid "Debug"
|
760 |
+
msgstr "Debug"
|
761 |
+
|
762 |
+
#: dropins/SimpleHistoryDonateDropin.php:51
|
763 |
+
msgctxt "donate settings headline"
|
764 |
+
msgid "Donate"
|
765 |
+
msgstr "Doneren"
|
766 |
+
|
767 |
+
#: dropins/SimpleHistoryFilterDropin.php:50
|
768 |
+
msgctxt "Filter dropin: button to show more search options"
|
769 |
+
msgid "Show options"
|
770 |
+
msgstr "Opties tonen"
|
771 |
+
|
772 |
+
#: dropins/SimpleHistoryFilterDropin.php:160
|
773 |
+
msgctxt "Filter dropin: button to hide more search options"
|
774 |
+
msgid "Hide options"
|
775 |
+
msgstr "Opties verbergen"
|
776 |
+
|
777 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:66
|
778 |
+
msgctxt "IP Info Dropin"
|
779 |
+
msgid "That IP address does not seem like a public one."
|
780 |
+
msgstr "Dat IP-adres lijkt niet publiek te zijn."
|
781 |
+
|
782 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:85
|
783 |
+
msgctxt "IP Info Dropin"
|
784 |
+
msgid "IP address"
|
785 |
+
msgstr "IP-adres"
|
786 |
+
|
787 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:96
|
788 |
+
msgctxt "IP Info Dropin"
|
789 |
+
msgid "Hostname"
|
790 |
+
msgstr "Hostnaam"
|
791 |
+
|
792 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:107
|
793 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:118
|
794 |
+
msgctxt "IP Info Dropin"
|
795 |
+
msgid "Network"
|
796 |
+
msgstr "Netwerk"
|
797 |
+
|
798 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:129
|
799 |
+
msgctxt "IP Info Dropin"
|
800 |
+
msgid "City"
|
801 |
+
msgstr "Plaats"
|
802 |
+
|
803 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:140
|
804 |
+
msgctxt "IP Info Dropin"
|
805 |
+
msgid "Region"
|
806 |
+
msgstr "Regio"
|
807 |
+
|
808 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:151
|
809 |
+
msgctxt "IP Info Dropin"
|
810 |
+
msgid "Country"
|
811 |
+
msgstr "Land"
|
812 |
+
|
813 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:162
|
814 |
+
msgctxt "IP Info Dropin"
|
815 |
+
msgid "IP info provided by %1$s ipinfo.io %2$s"
|
816 |
+
msgstr "IP-info door %1$s ipinfo.io %2$s"
|
817 |
+
|
818 |
+
#: dropins/SimpleHistoryNewRowsNotifier.php:38
|
819 |
+
msgctxt "New rows notifier: error while checking for new rows"
|
820 |
+
msgid "An error occured while checking for new log rows"
|
821 |
+
msgstr "Er trad een fout op bij het controleren op nieuwe rijen"
|
822 |
+
|
823 |
+
#: dropins/SimpleHistoryRSSDropin.php:47
|
824 |
+
msgctxt "rss settings headline"
|
825 |
+
msgid "RSS feed"
|
826 |
+
msgstr "RSS-feed"
|
827 |
+
|
828 |
+
#: dropins/SimpleHistorySidebarDropin.php:31
|
829 |
+
msgctxt "Sidebar box"
|
830 |
+
msgid "Simple History is on GitHub"
|
831 |
+
msgstr "Simple History is op GitHub"
|
832 |
+
|
833 |
+
#: dropins/SimpleHistorySidebarDropin.php:34
|
834 |
+
msgctxt "Sidebar box"
|
835 |
+
msgid ""
|
836 |
+
"You can star, fork, or report issues with this plugin over at the <a href="
|
837 |
+
"\"%1$s\">GitHub page</a>."
|
838 |
+
msgstr ""
|
839 |
+
"Je kan de plugin starren, forken of fouten melden op de <a href=\"%1$s"
|
840 |
+
"\">GitHub-pagina</a>."
|
841 |
+
|
842 |
+
#: dropins/SimpleHistorySidebarDropin.php:48
|
843 |
+
msgctxt "Sidebar box"
|
844 |
+
msgid "Donate to support development"
|
845 |
+
msgstr "Doneer om ontwikkeling te steunen"
|
846 |
+
|
847 |
+
#: dropins/SimpleHistorySidebarDropin.php:51
|
848 |
+
msgctxt "Sidebar box"
|
849 |
+
msgid ""
|
850 |
+
"If you like and use Simple History you should <a href=\"%1$s\">donate to keep "
|
851 |
+
"this plugin free</a>."
|
852 |
+
msgstr ""
|
853 |
+
"Je zou moeten <a href=\"%1$s\">doneren om de plug-in gratis te houden</a> als "
|
854 |
+
"je Simple History nuttig vindt en gebruikt."
|
855 |
+
|
856 |
+
#: dropins/SimpleHistorySidebarDropin.php:65
|
857 |
+
msgctxt "Sidebar box"
|
858 |
+
msgid "Review this plugin if you like it"
|
859 |
+
msgstr "Review de plug-in als je ze leuk vindt"
|
860 |
+
|
861 |
+
#: dropins/SimpleHistorySidebarDropin.php:68
|
862 |
+
msgctxt "Sidebar box"
|
863 |
+
msgid ""
|
864 |
+
"If you like Simple History then please <a href=\"%1$s\">give it a nice review "
|
865 |
+
"over at wordpress.org</a>."
|
866 |
+
msgstr ""
|
867 |
+
"Als je Simple History leuk vindt, gelieve het dan <a href=\"%1$s\">een goede "
|
868 |
+
"review te geven op wordpress.org</a>."
|
869 |
+
|
870 |
+
#: dropins/SimpleHistorySidebarDropin.php:72
|
871 |
+
msgctxt "Sidebar box"
|
872 |
+
msgid ""
|
873 |
+
"A good review will help new users find this plugin. And it will make the "
|
874 |
+
"plugin author very happy :)"
|
875 |
+
msgstr ""
|
876 |
+
"Een goede review zal nieuwe gebruikers helpen deze plug-in te ontdekken. En "
|
877 |
+
"het zal de plug-inauter heel blij maken :)"
|
878 |
+
|
879 |
+
#: loggers/SimpleCommentsLogger.php:95
|
880 |
+
msgctxt "A comment was added to the database by a non-logged in internet user"
|
881 |
+
msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
|
882 |
+
msgstr "Reactie toegevoegd aan {comment_post_type} \"{comment_post_title}\""
|
883 |
+
|
884 |
+
#: loggers/SimpleCommentsLogger.php:101
|
885 |
+
msgctxt "A comment was added to the database by a logged in user"
|
886 |
+
msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
|
887 |
+
msgstr "Reactie toegevoegd aan {comment_post_type} \"{comment_post_title}\""
|
888 |
+
|
889 |
+
#: loggers/SimpleCommentsLogger.php:107
|
890 |
+
msgctxt "A comment was approved"
|
891 |
+
msgid ""
|
892 |
+
"Approved a comment to \"{comment_post_title}\" by {comment_author} "
|
893 |
+
"({comment_author_email})"
|
894 |
+
msgstr ""
|
895 |
+
"Reactie op \"{comment_post_title}\" door {comment_author} "
|
896 |
+
"({comment_author_email}) goedgekeurd"
|
897 |
+
|
898 |
+
#: loggers/SimpleCommentsLogger.php:113
|
899 |
+
msgctxt "A comment was was unapproved"
|
900 |
+
msgid ""
|
901 |
+
"Unapproved a comment to \"{comment_post_title}\" by {comment_author} "
|
902 |
+
"({comment_author_email})"
|
903 |
+
msgstr ""
|
904 |
+
"Reactie op \"{comment_post_title}\" door {comment_author} "
|
905 |
+
"({comment_author_email}) afgekeurd"
|
906 |
+
|
907 |
+
#: loggers/SimpleCommentsLogger.php:119
|
908 |
+
msgctxt "A comment was marked as spam"
|
909 |
+
msgid "Marked a comment to post \"{comment_post_title}\" as spam"
|
910 |
+
msgstr "Reactie op \"{comment_post_title}\" gemarkeerd als spam"
|
911 |
+
|
912 |
+
#: loggers/SimpleCommentsLogger.php:125
|
913 |
+
msgctxt "A comment was marked moved to the trash"
|
914 |
+
msgid ""
|
915 |
+
"Trashed a comment to \"{comment_post_title}\" by {comment_author} "
|
916 |
+
"({comment_author_email})"
|
917 |
+
msgstr ""
|
918 |
+
"Reactie op \"{comment_post_title}\" door {comment_author} "
|
919 |
+
"({comment_author_email}) naar de prullenbak verplaatst"
|
920 |
+
|
921 |
+
#: loggers/SimpleCommentsLogger.php:131
|
922 |
+
msgctxt "A comment was restored from the trash"
|
923 |
+
msgid ""
|
924 |
+
"Restored a comment to \"{comment_post_title}\" by {comment_author} "
|
925 |
+
"({comment_author_email}) from the trash"
|
926 |
+
msgstr ""
|
927 |
+
"Reactie op \"{comment_post_title}\" door {comment_author} "
|
928 |
+
"({comment_author_email}) teruggezet uit de prullenbak"
|
929 |
+
|
930 |
+
#: loggers/SimpleCommentsLogger.php:137
|
931 |
+
msgctxt "A comment was deleted"
|
932 |
+
msgid ""
|
933 |
+
"Deleted a comment to \"{comment_post_title}\" by {comment_author} "
|
934 |
+
"({comment_author_email})"
|
935 |
+
msgstr ""
|
936 |
+
"Reactie op \"{comment_post_title}\" door {comment_author} "
|
937 |
+
"({comment_author_email}) verwijderd"
|
938 |
+
|
939 |
+
#: loggers/SimpleCommentsLogger.php:143
|
940 |
+
msgctxt "A comment was edited"
|
941 |
+
msgid ""
|
942 |
+
"Edited a comment to \"{comment_post_title}\" by {comment_author} "
|
943 |
+
"({comment_author_email})"
|
944 |
+
msgstr ""
|
945 |
+
"Reactie op \"{comment_post_title}\" door {comment_author} "
|
946 |
+
"({comment_author_email}) aangepast"
|
947 |
+
|
948 |
+
#: loggers/SimpleCommentsLogger.php:150
|
949 |
+
msgctxt "A trackback was added to the database by a non-logged in internet user"
|
950 |
+
msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
|
951 |
+
msgstr "Trackback aan {comment_post_type} \"{comment_post_title}\" toegevoegd"
|
952 |
+
|
953 |
+
#: loggers/SimpleCommentsLogger.php:205
|
954 |
+
msgctxt "A trackback was added to the database by a non-logged in internet user"
|
955 |
+
msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
|
956 |
+
msgstr "Pingback aan {comment_post_type} \"{comment_post_title}\" toegevoegd"
|
957 |
+
|
958 |
+
#: loggers/SimpleCommentsLogger.php:156
|
959 |
+
msgctxt "A trackback was added to the database by a logged in user"
|
960 |
+
msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
|
961 |
+
msgstr "Trackback aan {comment_post_type} \"{comment_post_title}\" toegevoegd"
|
962 |
+
|
963 |
+
#: loggers/SimpleCommentsLogger.php:162
|
964 |
+
msgctxt "A trackback was approved"
|
965 |
+
msgid ""
|
966 |
+
"Approved a trackback to \"{comment_post_title}\" by {comment_author} "
|
967 |
+
"({comment_author_email})"
|
968 |
+
msgstr ""
|
969 |
+
"Trackback naar \"{comment_post_title}\" door {comment_author} "
|
970 |
+
"({comment_author_email}) goedgekeurd"
|
971 |
+
|
972 |
+
#: loggers/SimpleCommentsLogger.php:168
|
973 |
+
msgctxt "A trackback was was unapproved"
|
974 |
+
msgid ""
|
975 |
+
"Unapproved a trackback to \"{comment_post_title}\" by {comment_author} "
|
976 |
+
"({comment_author_email})"
|
977 |
+
msgstr ""
|
978 |
+
"Trackback naar \"{comment_post_title}\" door {comment_author} "
|
979 |
+
"({comment_author_email}) afgekeurd"
|
980 |
+
|
981 |
+
#: loggers/SimpleCommentsLogger.php:174
|
982 |
+
msgctxt "A trackback was marked as spam"
|
983 |
+
msgid "Marked a trackback to post \"{comment_post_title}\" as spam"
|
984 |
+
msgstr "Trackback naar bericht \"{comment_post_title}\" gemarkeerd als spam"
|
985 |
+
|
986 |
+
#: loggers/SimpleCommentsLogger.php:180
|
987 |
+
msgctxt "A trackback was marked moved to the trash"
|
988 |
+
msgid ""
|
989 |
+
"Trashed a trackback to \"{comment_post_title}\" by {comment_author} "
|
990 |
+
"({comment_author_email})"
|
991 |
+
msgstr ""
|
992 |
+
"Trackback naar \"{comment_post_title}\" door {comment_author} "
|
993 |
+
"({comment_author_email}) naar de prullenbak verplaatst"
|
994 |
+
|
995 |
+
#: loggers/SimpleCommentsLogger.php:186
|
996 |
+
msgctxt "A trackback was restored from the trash"
|
997 |
+
msgid ""
|
998 |
+
"Restored a trackback to \"{comment_post_title}\" by {comment_author} "
|
999 |
+
"({comment_author_email}) from the trash"
|
1000 |
+
msgstr ""
|
1001 |
+
"Trackback naar \"{comment_post_title}\" door {comment_author} "
|
1002 |
+
"({comment_author_email}) teruggezet uit de prullenbak"
|
1003 |
+
|
1004 |
+
#: loggers/SimpleCommentsLogger.php:192
|
1005 |
+
msgctxt "A trackback was deleted"
|
1006 |
+
msgid ""
|
1007 |
+
"Deleted a trackback to \"{comment_post_title}\" by {comment_author} "
|
1008 |
+
"({comment_author_email})"
|
1009 |
+
msgstr ""
|
1010 |
+
"Trackback naar \"{comment_post_title}\" door {comment_author} "
|
1011 |
+
"({comment_author_email}) verwijderd"
|
1012 |
+
|
1013 |
+
#: loggers/SimpleCommentsLogger.php:198
|
1014 |
+
msgctxt "A trackback was edited"
|
1015 |
+
msgid ""
|
1016 |
+
"Edited a trackback to \"{comment_post_title}\" by {comment_author} "
|
1017 |
+
"({comment_author_email})"
|
1018 |
+
msgstr ""
|
1019 |
+
"Trackback naar \"{comment_post_title}\" naar {comment_author} "
|
1020 |
+
"({comment_author_email}) bewerkt"
|
1021 |
+
|
1022 |
+
#: loggers/SimpleCommentsLogger.php:211
|
1023 |
+
msgctxt "A pingback was added to the database by a logged in user"
|
1024 |
+
msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
|
1025 |
+
msgstr "Pingback naar {comment_post_type} \"{comment_post_title}\" toegevoegd"
|
1026 |
+
|
1027 |
+
#: loggers/SimpleCommentsLogger.php:217
|
1028 |
+
msgctxt "A pingback was approved"
|
1029 |
+
msgid ""
|
1030 |
+
"Approved a pingback to \"{comment_post_title}\" by "
|
1031 |
+
"\"{comment_author}\"\" ({comment_author_email})"
|
1032 |
+
msgstr ""
|
1033 |
+
"Pingback naar \"{comment_post_title}\" door "
|
1034 |
+
"\"{comment_author}\"\" ({comment_author_email}) goedgekeurd"
|
1035 |
+
|
1036 |
+
#: loggers/SimpleCommentsLogger.php:223
|
1037 |
+
msgctxt "A pingback was was unapproved"
|
1038 |
+
msgid ""
|
1039 |
+
"Unapproved a pingback to \"{comment_post_title}\" by "
|
1040 |
+
"\"{comment_author}\" ({comment_author_email})"
|
1041 |
+
msgstr ""
|
1042 |
+
"Pingback naar \"{comment_post_title}\" door "
|
1043 |
+
"\"{comment_author}\"\" ({comment_author_email}) afgekeurd"
|
1044 |
+
|
1045 |
+
#: loggers/SimpleCommentsLogger.php:229
|
1046 |
+
msgctxt "A pingback was marked as spam"
|
1047 |
+
msgid "Marked a pingback to post \"{comment_post_title}\" as spam"
|
1048 |
+
msgstr "Pingback naar bericht \"{comment_post_title}\" gemarkeerd als spam"
|
1049 |
+
|
1050 |
+
#: loggers/SimpleCommentsLogger.php:235
|
1051 |
+
msgctxt "A pingback was marked moved to the trash"
|
1052 |
+
msgid ""
|
1053 |
+
"Trashed a pingback to \"{comment_post_title}\" by {comment_author} "
|
1054 |
+
"({comment_author_email})"
|
1055 |
+
msgstr ""
|
1056 |
+
"Pingback naar \"{comment_post_title}\" door "
|
1057 |
+
"\"{comment_author}\"\" ({comment_author_email}) naar prullenbak verplaatst"
|
1058 |
+
|
1059 |
+
#: loggers/SimpleCommentsLogger.php:241
|
1060 |
+
msgctxt "A pingback was restored from the trash"
|
1061 |
+
msgid ""
|
1062 |
+
"Restored a pingback to \"{comment_post_title}\" by {comment_author} "
|
1063 |
+
"({comment_author_email}) from the trash"
|
1064 |
+
msgstr ""
|
1065 |
+
"Pingback naar \"{comment_post_title}\" door "
|
1066 |
+
"\"{comment_author}\"\" ({comment_author_email}) teruggezet uit de prullenbak"
|
1067 |
+
|
1068 |
+
#: loggers/SimpleCommentsLogger.php:247
|
1069 |
+
msgctxt "A pingback was deleted"
|
1070 |
+
msgid ""
|
1071 |
+
"Deleted a pingback to \"{comment_post_title}\" by {comment_author} "
|
1072 |
+
"({comment_author_email})"
|
1073 |
+
msgstr ""
|
1074 |
+
"Pingback naar \"{comment_post_title}\" door "
|
1075 |
+
"\"{comment_author}\"\" ({comment_author_email}) verwijderd"
|
1076 |
+
|
1077 |
+
#: loggers/SimpleCommentsLogger.php:253
|
1078 |
+
msgctxt "A pingback was edited"
|
1079 |
+
msgid ""
|
1080 |
+
"Edited a pingback to \"{comment_post_title}\" by {comment_author} "
|
1081 |
+
"({comment_author_email})"
|
1082 |
+
msgstr ""
|
1083 |
+
"Pingback naar \"{comment_post_title}\" door "
|
1084 |
+
"\"{comment_author}\"\" ({comment_author_email}) bewerkt"
|
1085 |
+
|
1086 |
+
#: loggers/SimpleCommentsLogger.php:264
|
1087 |
+
msgctxt "Comments logger: search"
|
1088 |
+
msgid "Comments"
|
1089 |
+
msgstr "Reacties"
|
1090 |
+
|
1091 |
+
#: loggers/SimpleCommentsLogger.php:265
|
1092 |
+
msgctxt "Comments logger: search"
|
1093 |
+
msgid "All comments activity"
|
1094 |
+
msgstr "Alle reactie-activiteit"
|
1095 |
+
|
1096 |
+
#: loggers/SimpleCommentsLogger.php:267
|
1097 |
+
msgctxt "Comments logger: search"
|
1098 |
+
msgid "Added comments"
|
1099 |
+
msgstr "Toegevoegde reacties"
|
1100 |
+
|
1101 |
+
#: loggers/SimpleCommentsLogger.php:275
|
1102 |
+
msgctxt "Comments logger: search"
|
1103 |
+
msgid "Edited comments"
|
1104 |
+
msgstr "Bewerkte reacties"
|
1105 |
+
|
1106 |
+
#: loggers/SimpleCommentsLogger.php:280
|
1107 |
+
msgctxt "Comments logger: search"
|
1108 |
+
msgid "Approved comments"
|
1109 |
+
msgstr "Goedgekeurde reacties"
|
1110 |
+
|
1111 |
+
#: loggers/SimpleCommentsLogger.php:285
|
1112 |
+
msgctxt "Comments logger: search"
|
1113 |
+
msgid "Held comments"
|
1114 |
+
msgstr "Vastgehouden reacties"
|
1115 |
+
|
1116 |
+
#: loggers/SimpleCommentsLogger.php:290
|
1117 |
+
msgctxt "Comments logger: search"
|
1118 |
+
msgid "Comments status changed to spam"
|
1119 |
+
msgstr "Naar-spam-gewijzigde reacties"
|
1120 |
+
|
1121 |
+
#: loggers/SimpleCommentsLogger.php:295
|
1122 |
+
msgctxt "Comments logger: search"
|
1123 |
+
msgid "Trashed comments"
|
1124 |
+
msgstr "Weggegooide reacties"
|
1125 |
+
|
1126 |
+
#: loggers/SimpleCommentsLogger.php:300
|
1127 |
+
msgctxt "Comments logger: search"
|
1128 |
+
msgid "Untrashed comments"
|
1129 |
+
msgstr "Herstelde reacties"
|
1130 |
+
|
1131 |
+
#: loggers/SimpleCommentsLogger.php:305
|
1132 |
+
msgctxt "Comments logger: search"
|
1133 |
+
msgid "Deleted comments"
|
1134 |
+
msgstr "Verwijderde reacties"
|
1135 |
+
|
1136 |
+
#: loggers/SimpleCommentsLogger.php:602 loggers/SimpleCommentsLogger.php:615
|
1137 |
+
#: loggers/SimpleCommentsLogger.php:629
|
1138 |
+
msgctxt "comments logger - detailed output comment status"
|
1139 |
+
msgid "Status"
|
1140 |
+
msgstr "Status"
|
1141 |
+
|
1142 |
+
#: loggers/SimpleCommentsLogger.php:604 loggers/SimpleCommentsLogger.php:617
|
1143 |
+
#: loggers/SimpleCommentsLogger.php:631
|
1144 |
+
msgctxt "comments logger - detailed output author"
|
1145 |
+
msgid "Name"
|
1146 |
+
msgstr "Naam"
|
1147 |
+
|
1148 |
+
#: loggers/SimpleCommentsLogger.php:605 loggers/SimpleCommentsLogger.php:618
|
1149 |
+
#: loggers/SimpleCommentsLogger.php:632
|
1150 |
+
msgctxt "comments logger - detailed output email"
|
1151 |
+
msgid "Email"
|
1152 |
+
msgstr "E-mail"
|
1153 |
+
|
1154 |
+
#: loggers/SimpleCommentsLogger.php:606 loggers/SimpleCommentsLogger.php:619
|
1155 |
+
msgctxt "comments logger - detailed output content"
|
1156 |
+
msgid "Content"
|
1157 |
+
msgstr "Inhoud"
|
1158 |
+
|
1159 |
+
#: loggers/SimpleCommentsLogger.php:633
|
1160 |
+
msgctxt "comments logger - detailed output content"
|
1161 |
+
msgid "Comment"
|
1162 |
+
msgstr "Reactie"
|
1163 |
+
|
1164 |
+
#: loggers/SimpleCommentsLogger.php:759
|
1165 |
+
msgctxt "comments logger - edit comment"
|
1166 |
+
msgid "View/Edit"
|
1167 |
+
msgstr "Bekijken/Bewerken"
|
1168 |
+
|
1169 |
+
#: loggers/SimpleCoreUpdatesLogger.php:34
|
1170 |
+
msgctxt "User logger: search"
|
1171 |
+
msgid "WordPress Core"
|
1172 |
+
msgstr "WordPress Core"
|
1173 |
+
|
1174 |
+
#: loggers/SimpleCoreUpdatesLogger.php:36
|
1175 |
+
msgctxt "User logger: search"
|
1176 |
+
msgid "WordPress core updates"
|
1177 |
+
msgstr "Updates aan WordPress core"
|
1178 |
+
|
1179 |
+
#: loggers/SimpleUserLogger.php:54
|
1180 |
+
msgctxt "User logger: search"
|
1181 |
+
msgid "Users"
|
1182 |
+
msgstr "Gebruikers"
|
1183 |
+
|
1184 |
+
#: loggers/SimpleUserLogger.php:55
|
1185 |
+
msgctxt "User logger: search"
|
1186 |
+
msgid "All user activity"
|
1187 |
+
msgstr "Alle gebruikersactiviteit"
|
1188 |
+
|
1189 |
+
#: loggers/SimpleUserLogger.php:57
|
1190 |
+
msgctxt "User logger: search"
|
1191 |
+
msgid "Successful user logins"
|
1192 |
+
msgstr "Geslaagde gebruikersaanmeldingen"
|
1193 |
+
|
1194 |
+
#: loggers/SimpleUserLogger.php:61
|
1195 |
+
msgctxt "User logger: search"
|
1196 |
+
msgid "Failed user logins"
|
1197 |
+
msgstr "Mislukte gebruikersaanmeldingen"
|
1198 |
+
|
1199 |
+
#: loggers/SimpleUserLogger.php:65
|
1200 |
+
msgctxt "User logger: search"
|
1201 |
+
msgid "User logouts"
|
1202 |
+
msgstr "Gebruiker-uitlogs"
|
1203 |
+
|
1204 |
+
#: loggers/SimpleUserLogger.php:68
|
1205 |
+
msgctxt "User logger: search"
|
1206 |
+
msgid "Created users"
|
1207 |
+
msgstr "Aangemaakte gebruikers"
|
1208 |
+
|
1209 |
+
#: loggers/SimpleUserLogger.php:71
|
1210 |
+
msgctxt "User logger: search"
|
1211 |
+
msgid "User profile updates"
|
1212 |
+
msgstr "Gebruikersprofiel-updates"
|
1213 |
+
|
1214 |
+
#: loggers/SimpleUserLogger.php:74
|
1215 |
+
msgctxt "User logger: search"
|
1216 |
+
msgid "User deletions"
|
1217 |
+
msgstr "Verwijderde gebruikers"
|
1218 |
+
|
1219 |
+
#: loggers/SimpleExportLogger.php:27
|
1220 |
+
msgctxt "Export logger: search"
|
1221 |
+
msgid "Export"
|
1222 |
+
msgstr "Export"
|
1223 |
+
|
1224 |
+
#: loggers/SimpleExportLogger.php:29
|
1225 |
+
msgctxt "Export logger: search"
|
1226 |
+
msgid "Created exports"
|
1227 |
+
msgstr "Aangemaakte exports"
|
1228 |
+
|
1229 |
+
#: loggers/SimpleLogger.php:190
|
1230 |
+
msgctxt "header output when initiator is the currently logged in user"
|
1231 |
+
msgid "You"
|
1232 |
+
msgstr "Jij"
|
1233 |
+
|
1234 |
+
#: loggers/SimpleMediaLogger.php:29
|
1235 |
+
msgctxt "Media logger: search"
|
1236 |
+
msgid "Media"
|
1237 |
+
msgstr "Media"
|
1238 |
+
|
1239 |
+
#: loggers/SimpleMediaLogger.php:31
|
1240 |
+
msgctxt "Media logger: search"
|
1241 |
+
msgid "Added media"
|
1242 |
+
msgstr "Toegevoegde media"
|
1243 |
+
|
1244 |
+
#: loggers/SimpleMediaLogger.php:34
|
1245 |
+
msgctxt "Media logger: search"
|
1246 |
+
msgid "Updated media"
|
1247 |
+
msgstr "Bijgewerkte media"
|
1248 |
+
|
1249 |
+
#: loggers/SimpleMediaLogger.php:37
|
1250 |
+
msgctxt "Media logger: search"
|
1251 |
+
msgid "Deleted media"
|
1252 |
+
msgstr "Verwijderde media"
|
1253 |
+
|
1254 |
+
#: loggers/SimpleMenuLogger.php:31
|
1255 |
+
msgctxt "Menu logger: search"
|
1256 |
+
msgid "Menus"
|
1257 |
+
msgstr "Menu's"
|
1258 |
+
|
1259 |
+
#: loggers/SimpleMenuLogger.php:33
|
1260 |
+
msgctxt "Menu updates logger: search"
|
1261 |
+
msgid "Created menus"
|
1262 |
+
msgstr "Aangemaakte menu's"
|
1263 |
+
|
1264 |
+
#: loggers/SimpleMenuLogger.php:36
|
1265 |
+
msgctxt "Menu updates logger: search"
|
1266 |
+
msgid "Edited menus"
|
1267 |
+
msgstr "Bewerkte menu's"
|
1268 |
+
|
1269 |
+
#: loggers/SimpleMenuLogger.php:41
|
1270 |
+
msgctxt "Menu updates logger: search"
|
1271 |
+
msgid "Deleted menus"
|
1272 |
+
msgstr "Verwijderede menu's"
|
1273 |
+
|
1274 |
+
#: loggers/SimpleMenuLogger.php:326
|
1275 |
+
msgctxt "menu logger"
|
1276 |
+
msgid "%1$s menu item added"
|
1277 |
+
msgid_plural "%1$s menu items added"
|
1278 |
+
msgstr[0] "%1$s menu-item toegevoegd"
|
1279 |
+
msgstr[1] "%1$s menu-items toegevoegd"
|
1280 |
+
|
1281 |
+
#: loggers/SimpleMenuLogger.php:333
|
1282 |
+
msgctxt "menu logger"
|
1283 |
+
msgid "%1$s menu item removed"
|
1284 |
+
msgid_plural "%1$s menu items removed"
|
1285 |
+
msgstr[0] "%1$s menu-item verwijderd"
|
1286 |
+
msgstr[1] "%1$s menu-items verwijderd"
|
1287 |
+
|
1288 |
+
#: loggers/SimpleOptionsLogger.php:153
|
1289 |
+
msgctxt "Options logger: search"
|
1290 |
+
msgid "Options"
|
1291 |
+
msgstr "Opties"
|
1292 |
+
|
1293 |
+
#: loggers/SimpleOptionsLogger.php:155
|
1294 |
+
msgctxt "Options logger: search"
|
1295 |
+
msgid "Changed options"
|
1296 |
+
msgstr "Gewijzigde opties"
|
1297 |
+
|
1298 |
+
#: loggers/SimplePluginLogger.php:51
|
1299 |
+
msgctxt "Plugin was non-silently activated by a user"
|
1300 |
+
msgid "Activated plugin \"{plugin_name}\""
|
1301 |
+
msgstr "Plug-in \"{plugin_name}\" geactiveerd"
|
1302 |
+
|
1303 |
+
#: loggers/SimplePluginLogger.php:57
|
1304 |
+
msgctxt "Plugin was non-silently deactivated by a user"
|
1305 |
+
msgid "Deactivated plugin \"{plugin_name}\""
|
1306 |
+
msgstr "Plug-in \"{plugin_name}\" gedeactiveerd"
|
1307 |
+
|
1308 |
+
#: loggers/SimplePluginLogger.php:63
|
1309 |
+
msgctxt "Plugin was installed"
|
1310 |
+
msgid "Installed plugin \"{plugin_name}\""
|
1311 |
+
msgstr "Plug-in \"{plugin_name}\" geïnstalleerd"
|
1312 |
+
|
1313 |
+
#: loggers/SimplePluginLogger.php:69
|
1314 |
+
msgctxt "Plugin failed to install"
|
1315 |
+
msgid "Failed to install plugin \"{plugin_name}\""
|
1316 |
+
msgstr "Installatie plug-in \"{plugin_name}\" mislukt"
|
1317 |
+
|
1318 |
+
#: loggers/SimplePluginLogger.php:75
|
1319 |
+
msgctxt "Plugin was updated"
|
1320 |
+
msgid ""
|
1321 |
+
"Updated plugin \"{plugin_name}\" to version {plugin_version} from "
|
1322 |
+
"{plugin_prev_version}"
|
1323 |
+
msgstr ""
|
1324 |
+
"Plug-in \"{plugin_name}\" bijgewerkt naar versie {plugin_version} van "
|
1325 |
+
"{plugin_prev_version}"
|
1326 |
+
|
1327 |
+
#: loggers/SimplePluginLogger.php:81
|
1328 |
+
msgctxt "Plugin update failed"
|
1329 |
+
msgid "Updated plugin \"{plugin_name}\""
|
1330 |
+
msgstr "Plug-in \"{plugin_name}\" bijgewerkt"
|
1331 |
+
|
1332 |
+
#: loggers/SimplePluginLogger.php:87
|
1333 |
+
msgctxt "Plugin file edited"
|
1334 |
+
msgid "Edited plugin file \"{plugin_edited_file}\""
|
1335 |
+
msgstr "Plug-in-bestand \"{plugin_edited_file}\" bewerkt"
|
1336 |
+
|
1337 |
+
#: loggers/SimplePluginLogger.php:93
|
1338 |
+
msgctxt "Plugin files was deleted"
|
1339 |
+
msgid "Deleted plugin \"{plugin_name}\""
|
1340 |
+
msgstr "Plug-in \"{plugin_name}\" verwijderd"
|
1341 |
+
|
1342 |
+
#: loggers/SimplePluginLogger.php:100
|
1343 |
+
msgctxt "Plugin was updated in bulk"
|
1344 |
+
msgid ""
|
1345 |
+
"Updated plugin \"{plugin_name}\" to {plugin_version} from "
|
1346 |
+
"{plugin_prev_version}"
|
1347 |
+
msgstr ""
|
1348 |
+
"Plug-in \"{plugin_name}\" bijgewerkt naar versie {plugin_version} van "
|
1349 |
+
"{plugin_prev_version}"
|
1350 |
+
|
1351 |
+
#: loggers/SimplePluginLogger.php:108
|
1352 |
+
msgctxt "Plugin logger: search"
|
1353 |
+
msgid "Plugins"
|
1354 |
+
msgstr "Plug-ins"
|
1355 |
+
|
1356 |
+
#: loggers/SimplePluginLogger.php:110
|
1357 |
+
msgctxt "Plugin logger: search"
|
1358 |
+
msgid "Activated plugins"
|
1359 |
+
msgstr "Geactiveerde plug-ins"
|
1360 |
+
|
1361 |
+
#: loggers/SimplePluginLogger.php:113
|
1362 |
+
msgctxt "Plugin logger: search"
|
1363 |
+
msgid "Deactivated plugins"
|
1364 |
+
msgstr "Gedeactiveerde plug-ins"
|
1365 |
+
|
1366 |
+
#: loggers/SimplePluginLogger.php:116
|
1367 |
+
msgctxt "Plugin logger: search"
|
1368 |
+
msgid "Installed plugins"
|
1369 |
+
msgstr "Geïnstalleerde plug-ins"
|
1370 |
+
|
1371 |
+
#: loggers/SimplePluginLogger.php:119
|
1372 |
+
msgctxt "Plugin logger: search"
|
1373 |
+
msgid "Failed plugin installs"
|
1374 |
+
msgstr "Mislukte plug-in-installaties"
|
1375 |
+
|
1376 |
+
#: loggers/SimplePluginLogger.php:122
|
1377 |
+
msgctxt "Plugin logger: search"
|
1378 |
+
msgid "Updated plugins"
|
1379 |
+
msgstr "Bijgewerkte plug-ins"
|
1380 |
+
|
1381 |
+
#: loggers/SimplePluginLogger.php:126
|
1382 |
+
msgctxt "Plugin logger: search"
|
1383 |
+
msgid "Failed plugin updates"
|
1384 |
+
msgstr "Mislukte plug-in-updates"
|
1385 |
+
|
1386 |
+
#: loggers/SimplePluginLogger.php:129
|
1387 |
+
msgctxt "Plugin logger: search"
|
1388 |
+
msgid "Edited plugin files"
|
1389 |
+
msgstr "Plug-in-bestanden bewerkt"
|
1390 |
+
|
1391 |
+
#: loggers/SimplePluginLogger.php:132
|
1392 |
+
msgctxt "Plugin logger: search"
|
1393 |
+
msgid "Deleted plugins"
|
1394 |
+
msgstr "Verwijderde plug-ins"
|
1395 |
+
|
1396 |
+
#: loggers/SimplePluginLogger.php:887
|
1397 |
+
msgctxt "plugin logger - detailed output version"
|
1398 |
+
msgid "Version"
|
1399 |
+
msgstr "Versie"
|
1400 |
+
|
1401 |
+
#: loggers/SimplePluginLogger.php:889
|
1402 |
+
msgctxt "plugin logger - detailed output author"
|
1403 |
+
msgid "Author"
|
1404 |
+
msgstr "Auteur"
|
1405 |
+
|
1406 |
+
#: loggers/SimplePluginLogger.php:891
|
1407 |
+
msgctxt "plugin logger - detailed output author"
|
1408 |
+
msgid "Requires"
|
1409 |
+
msgstr "Vereist"
|
1410 |
+
|
1411 |
+
#: loggers/SimplePluginLogger.php:890
|
1412 |
+
msgctxt "plugin logger - detailed output url"
|
1413 |
+
msgid "URL"
|
1414 |
+
msgstr "URL"
|
1415 |
+
|
1416 |
+
#: loggers/SimplePluginLogger.php:892
|
1417 |
+
msgctxt "plugin logger - detailed output compatible"
|
1418 |
+
msgid "Compatible up to"
|
1419 |
+
msgstr "Compatibel tot"
|
1420 |
+
|
1421 |
+
#: loggers/SimplePluginLogger.php:893
|
1422 |
+
msgctxt "plugin logger - detailed output downloaded"
|
1423 |
+
msgid "Downloads"
|
1424 |
+
msgstr "Downloads"
|
1425 |
+
|
1426 |
+
#: loggers/SimplePluginLogger.php:953
|
1427 |
+
msgctxt "plugin logger: plugin info thickbox title view all info"
|
1428 |
+
msgid "View plugin info"
|
1429 |
+
msgstr "Plug-in-informatie bekijken"
|
1430 |
+
|
1431 |
+
#: loggers/SimplePluginLogger.php:968
|
1432 |
+
msgctxt "plugin logger: plugin info thickbox title"
|
1433 |
+
msgid "View plugin info"
|
1434 |
+
msgstr "Plug-in-informatie bekijken"
|
1435 |
+
|
1436 |
+
#: loggers/SimplePluginLogger.php:972
|
1437 |
+
msgctxt "plugin logger: plugin info thickbox title"
|
1438 |
+
msgid "View changelog"
|
1439 |
+
msgstr "Bekijk wijzigingen"
|
1440 |
+
|
1441 |
+
#: loggers/SimplePostLogger.php:38
|
1442 |
+
msgctxt "Post logger: search"
|
1443 |
+
msgid "Posts & Pages"
|
1444 |
+
msgstr "Berichten en pagina's"
|
1445 |
+
|
1446 |
+
#: loggers/SimplePostLogger.php:40
|
1447 |
+
msgctxt "Post logger: search"
|
1448 |
+
msgid "Posts created"
|
1449 |
+
msgstr "Aangemaakte berichten"
|
1450 |
+
|
1451 |
+
#: loggers/SimplePostLogger.php:43
|
1452 |
+
msgctxt "Post logger: search"
|
1453 |
+
msgid "Posts updated"
|
1454 |
+
msgstr "Bijgewerkte berichten"
|
1455 |
+
|
1456 |
+
#: loggers/SimplePostLogger.php:46
|
1457 |
+
msgctxt "Post logger: search"
|
1458 |
+
msgid "Posts trashed"
|
1459 |
+
msgstr "Weggegooide berichten"
|
1460 |
+
|
1461 |
+
#: loggers/SimplePostLogger.php:49
|
1462 |
+
msgctxt "Post logger: search"
|
1463 |
+
msgid "Posts deleted"
|
1464 |
+
msgstr "Verwijderede berichten"
|
1465 |
+
|
1466 |
+
#: loggers/SimplePostLogger.php:52
|
1467 |
+
msgctxt "Post logger: search"
|
1468 |
+
msgid "Posts restored"
|
1469 |
+
msgstr "Herstelde berichten"
|
1470 |
+
|
1471 |
+
#: loggers/SimpleThemeLogger.php:36
|
1472 |
+
msgctxt "Theme logger: search"
|
1473 |
+
msgid "Themes & Widgets"
|
1474 |
+
msgstr "Thema's en widgets"
|
1475 |
+
|
1476 |
+
#: loggers/SimpleThemeLogger.php:38
|
1477 |
+
msgctxt "Theme logger: search"
|
1478 |
+
msgid "Switched themes"
|
1479 |
+
msgstr "Gewisselde thema's"
|
1480 |
+
|
1481 |
+
#: loggers/SimpleThemeLogger.php:41
|
1482 |
+
msgctxt "Theme logger: search"
|
1483 |
+
msgid "Changed appearance of themes"
|
1484 |
+
msgstr "Gewijzigde thema-weergave"
|
1485 |
+
|
1486 |
+
#: loggers/SimpleThemeLogger.php:44
|
1487 |
+
msgctxt "Theme logger: search"
|
1488 |
+
msgid "Added widgets"
|
1489 |
+
msgstr "Toegevoegde widgets"
|
1490 |
+
|
1491 |
+
#: loggers/SimpleThemeLogger.php:47
|
1492 |
+
msgctxt "Theme logger: search"
|
1493 |
+
msgid "Removed widgets"
|
1494 |
+
msgstr "Verwijderde widgets"
|
1495 |
+
|
1496 |
+
#: loggers/SimpleThemeLogger.php:50
|
1497 |
+
msgctxt "Theme logger: search"
|
1498 |
+
msgid "Changed widgets order"
|
1499 |
+
msgstr "Gewijzigde widgetvolgorde"
|
1500 |
+
|
1501 |
+
#: loggers/SimpleThemeLogger.php:53
|
1502 |
+
msgctxt "Theme logger: search"
|
1503 |
+
msgid "Edited widgets"
|
1504 |
+
msgstr "Bijgewerkte widgets"
|
1505 |
+
|
1506 |
+
#: loggers/SimpleThemeLogger.php:56
|
1507 |
+
msgctxt "Theme logger: search"
|
1508 |
+
msgid "Background of themes changed"
|
1509 |
+
msgstr "Gewijzigde thema-achtergrond"
|
1510 |
+
|
1511 |
+
#: loggers/SimpleUserLogger.php:36
|
1512 |
+
msgctxt "User destroys other login sessions for themself"
|
1513 |
+
msgid "Logged out from all other sessions"
|
1514 |
+
msgstr "Uitgelogd van alle andere sessies"
|
1515 |
+
|
1516 |
+
#: loggers/SimpleUserLogger.php:45
|
1517 |
+
msgctxt "User destroys all login sessions for a user"
|
1518 |
+
msgid "Logged out \"{user_display_name}\" from all sessions"
|
1519 |
+
msgstr "\"{user_display_name}\" uitgelogd van alle sessies"
|
1520 |
+
|
1521 |
+
#: templates/settings-statsRowsPerDay.php:36
|
1522 |
+
msgctxt "stats: date in rows per day chart"
|
1523 |
+
msgid "M j"
|
1524 |
+
msgstr "M j"
|
1525 |
+
|
1526 |
+
#~ msgid "Filter"
|
1527 |
+
#~ msgstr "Filteren"
|
languages/simple-history-pl_PL.mo
CHANGED
Binary file
|
languages/simple-history-pl_PL.po
CHANGED
@@ -4,733 +4,1484 @@ msgid ""
|
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: Simple History\n"
|
6 |
"Report-Msgid-Bugs-To: http://wordpress.org/tag/simple-history\n"
|
7 |
-
"POT-Creation-Date:
|
8 |
-
"
|
9 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
-
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"PO-Revision-Date: 2013-10-10 09:11+0100\n"
|
12 |
"Last-Translator: Mateusz Czardybon <mczardybon@netizens.pl>\n"
|
13 |
"Language-Team: Mateusz Czardybon <mczardybon@netizens.pl>\n"
|
14 |
-
"X-Generator: Poedit 1.5.7\n"
|
15 |
"Language: pl_PL\n"
|
|
|
|
|
|
|
|
|
16 |
"X-Poedit-SourceCharset: UTF-8\n"
|
17 |
-
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
18 |
-
"|| n%100>=20) ? 1 : 2;\n"
|
19 |
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
|
20 |
"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;"
|
21 |
"esc_attr_x:1,2c\n"
|
|
|
22 |
"X-Poedit-Basepath: ../\n"
|
23 |
-
"X-
|
24 |
-
|
25 |
-
#: index.php:88 index.php:105
|
26 |
-
msgid "added"
|
27 |
-
msgstr "dodano"
|
28 |
|
29 |
-
#:
|
30 |
-
|
31 |
-
|
|
|
|
|
32 |
|
33 |
-
#:
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
#: index.php:91 simple-history-extender/class.simple-history-extend.php:92
|
38 |
-
msgid "marked as spam"
|
39 |
-
msgstr "oznaczony jako spam"
|
40 |
-
|
41 |
-
#: index.php:92 simple-history-extender/class.simple-history-extend.php:94
|
42 |
-
msgid "trashed"
|
43 |
-
msgstr "wyrzucono do kosza"
|
44 |
-
|
45 |
-
#: index.php:93 simple-history-extender/class.simple-history-extend.php:95
|
46 |
-
msgid "untrashed"
|
47 |
-
msgstr "przywrócono z kosza"
|
48 |
-
|
49 |
-
#: index.php:94 simple-history-extender/class.simple-history-extend.php:89
|
50 |
-
msgid "created"
|
51 |
-
msgstr "utworzono"
|
52 |
|
53 |
-
#:
|
54 |
-
|
55 |
-
|
|
|
56 |
|
57 |
-
#:
|
58 |
-
msgid "
|
59 |
-
msgstr "
|
60 |
|
61 |
-
#:
|
62 |
-
msgid "
|
63 |
-
msgstr "
|
64 |
|
65 |
-
#:
|
66 |
-
msgid "
|
67 |
-
msgstr "
|
68 |
|
69 |
-
#:
|
70 |
-
msgid "
|
71 |
-
msgstr "
|
72 |
|
73 |
-
#:
|
74 |
-
msgid "
|
75 |
-
msgstr "
|
76 |
|
77 |
-
#:
|
78 |
-
msgid "
|
79 |
-
msgstr "
|
80 |
|
81 |
-
#:
|
82 |
-
msgid "
|
83 |
-
msgstr "
|
84 |
|
85 |
-
#:
|
86 |
-
msgid "
|
87 |
-
msgstr "
|
88 |
|
89 |
-
#:
|
90 |
-
msgid "
|
91 |
-
msgstr "
|
92 |
|
93 |
-
#:
|
94 |
-
msgid "
|
95 |
-
msgstr "
|
96 |
|
97 |
-
#:
|
98 |
-
msgid "
|
99 |
-
msgstr "
|
100 |
|
101 |
-
#:
|
102 |
-
msgid "
|
103 |
-
msgstr "
|
104 |
|
105 |
-
#:
|
106 |
-
msgid "History"
|
107 |
-
msgstr "Historia"
|
108 |
|
109 |
-
#:
|
110 |
-
msgid "
|
111 |
-
msgstr "
|
112 |
|
113 |
-
#:
|
114 |
-
|
115 |
-
|
|
|
116 |
|
117 |
-
#:
|
118 |
-
msgid "
|
119 |
-
msgstr "
|
120 |
|
121 |
-
#:
|
122 |
-
msgid "Show
|
123 |
-
msgstr "Pokaż
|
124 |
|
125 |
-
#:
|
126 |
msgid "Number of items per page"
|
127 |
msgstr "Liczba elementów na stronie"
|
128 |
|
129 |
-
#:
|
130 |
-
msgid "RSS feed"
|
131 |
-
msgstr "Kanał RSS"
|
132 |
-
|
133 |
-
#: index.php:298
|
134 |
msgid "Clear log"
|
135 |
msgstr "Wyczyść historię"
|
136 |
|
137 |
-
#:
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
#: index.php:391 index.php:450
|
142 |
-
msgid "History for %s"
|
143 |
-
msgstr "Historia dla %s"
|
144 |
-
|
145 |
-
#: index.php:392 index.php:451
|
146 |
-
msgid "WordPress History for %s"
|
147 |
-
msgstr "Historia WordPressa dla %s"
|
148 |
-
|
149 |
-
#: index.php:415
|
150 |
-
msgid "By %s"
|
151 |
-
msgstr "Przez %s"
|
152 |
-
|
153 |
-
#: index.php:419
|
154 |
-
msgid "%d occasions"
|
155 |
-
msgstr "%d więcej"
|
156 |
-
|
157 |
-
#: index.php:454
|
158 |
-
msgid "Wrong RSS secret"
|
159 |
-
msgstr "Błędny klucz kanału RSS"
|
160 |
-
|
161 |
-
#: index.php:455
|
162 |
-
msgid ""
|
163 |
-
"Your RSS secret for Simple History RSS feed is wrong. Please see WordPress "
|
164 |
-
"settings for current link to the RSS feed."
|
165 |
-
msgstr ""
|
166 |
-
"Twój sekretny link z dostępem do kanału RSS Historii zdarzeń jest błędny. "
|
167 |
-
"Przejdź do ustawień WordPressa, żeby zobaczyć aktualny adres tego kanału."
|
168 |
-
|
169 |
-
#: index.php:534 index.php:1448
|
170 |
-
msgid "One item"
|
171 |
-
msgid_plural "%1$d items"
|
172 |
-
msgstr[0] "1 element"
|
173 |
-
msgstr[1] "%1$d elementy"
|
174 |
-
msgstr[2] "%1$d elementów"
|
175 |
|
176 |
-
#:
|
177 |
msgid "on the dashboard"
|
178 |
msgstr "jako widget w Kokpicie"
|
179 |
|
180 |
-
#:
|
181 |
msgid "as a page under the dashboard menu"
|
182 |
msgstr "jako podstronę w menu Kokpit"
|
183 |
|
184 |
-
#:
|
185 |
-
|
186 |
-
|
|
|
187 |
|
188 |
-
#:
|
189 |
-
msgid "Items in the database are
|
190 |
-
msgstr "Zdarzenia będą usuwane
|
191 |
|
192 |
-
#:
|
193 |
-
msgid "Clear
|
194 |
-
msgstr "Wyczyść
|
195 |
|
196 |
-
#:
|
197 |
-
|
198 |
-
"
|
199 |
-
"
|
200 |
-
"\t\t\t<a href=\"http://eskapism.se/sida/donate/?"
|
201 |
-
"utm_source=wordpress&utm_medium=settingpage&utm_campaign=simplehistory\">\n"
|
202 |
-
"\t\t\tdonate\n"
|
203 |
-
"\t\t\t</a> to support the development of this plugin and to keep it free.\n"
|
204 |
-
"\t\t\tThanks!\n"
|
205 |
-
"\t\t\t"
|
206 |
-
msgstr ""
|
207 |
-
"\n"
|
208 |
-
"\t\t\tProsimy\n"
|
209 |
-
"\t\t\t<a href=\"http://eskapism.se/sida/donate/?"
|
210 |
-
"utm_source=wordpress&utm_medium=settingpage&utm_campaign=simplehistory\">\n"
|
211 |
-
"\t\t\to wsparcie\n"
|
212 |
-
"\t\t\t</a> procesu tworzenia wtyczki.\n"
|
213 |
-
"\t\t\tDzięki!!\n"
|
214 |
-
"\t\t\t"
|
215 |
-
|
216 |
-
#: index.php:675
|
217 |
-
msgid "Created new secret RSS address"
|
218 |
-
msgstr "Utworzono nowy sekretny link do kanału RSS"
|
219 |
|
220 |
-
#:
|
221 |
-
msgid ""
|
222 |
-
|
223 |
-
"people you trust"
|
224 |
-
msgstr ""
|
225 |
-
"To jest sekretny link do kanału RSS Historii zdarzeń. Nie publikuj go "
|
226 |
-
"nigdzie."
|
227 |
|
228 |
-
#:
|
229 |
-
|
230 |
-
"
|
231 |
-
"
|
232 |
-
|
233 |
-
|
234 |
-
"
|
|
|
235 |
|
236 |
-
#:
|
237 |
-
msgid "
|
238 |
msgstr ""
|
|
|
239 |
|
240 |
-
#:
|
241 |
-
msgid "
|
242 |
-
msgstr "
|
243 |
|
244 |
-
#:
|
245 |
-
|
246 |
-
|
|
|
247 |
|
248 |
-
#:
|
249 |
-
|
250 |
-
|
|
|
251 |
|
252 |
-
#:
|
253 |
-
|
254 |
-
|
|
|
255 |
|
256 |
-
#:
|
257 |
-
msgid "
|
258 |
-
msgstr "
|
259 |
|
260 |
-
#:
|
261 |
-
|
262 |
-
|
|
|
263 |
|
264 |
-
#:
|
265 |
-
|
266 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
267 |
|
268 |
-
#:
|
269 |
-
msgid "
|
270 |
-
msgstr "
|
271 |
|
272 |
-
#:
|
273 |
-
msgid "
|
274 |
-
msgstr "
|
275 |
-
|
276 |
-
#: index.php:1724
|
277 |
-
msgid "Unknown or deleted user"
|
278 |
-
msgstr "Nieznany lub usunięty użytkownik"
|
279 |
|
280 |
-
#:
|
281 |
-
msgid "
|
282 |
-
msgstr "
|
283 |
|
284 |
-
#:
|
285 |
-
msgid "
|
286 |
-
msgstr "
|
287 |
|
288 |
-
#:
|
289 |
-
msgid "
|
290 |
-
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
291 |
|
292 |
-
#:
|
293 |
-
msgid "
|
294 |
-
msgstr ""
|
295 |
|
296 |
-
#:
|
297 |
-
msgid "
|
298 |
-
msgstr "
|
299 |
|
300 |
-
#:
|
301 |
-
msgid "
|
302 |
-
msgstr "
|
303 |
|
304 |
-
#:
|
305 |
-
|
306 |
-
|
|
|
|
|
307 |
|
308 |
-
#:
|
309 |
-
|
310 |
-
|
|
|
|
|
311 |
|
312 |
-
#:
|
313 |
-
|
314 |
-
|
|
|
|
|
|
|
|
|
315 |
|
316 |
-
#:
|
317 |
-
msgid "
|
318 |
-
msgstr "
|
319 |
|
320 |
-
#:
|
321 |
-
msgid "
|
322 |
-
|
|
|
|
|
|
|
|
|
323 |
|
324 |
-
#:
|
325 |
-
msgid "
|
326 |
-
|
|
|
|
|
|
|
|
|
327 |
|
328 |
-
#:
|
329 |
-
msgid "
|
330 |
-
msgstr "
|
331 |
|
332 |
-
#:
|
333 |
-
msgid "
|
334 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
335 |
|
336 |
-
#:
|
337 |
-
msgid "
|
338 |
-
msgstr "
|
339 |
|
340 |
-
#:
|
341 |
-
msgid "
|
342 |
-
msgstr "
|
343 |
|
344 |
-
#: index.php:
|
345 |
-
|
346 |
-
|
|
|
|
|
|
|
|
|
|
|
347 |
|
348 |
-
#:
|
349 |
-
|
350 |
-
|
|
|
351 |
|
352 |
-
#:
|
353 |
-
|
354 |
-
|
|
|
355 |
|
356 |
-
#:
|
357 |
-
|
358 |
-
|
|
|
|
|
|
|
|
|
|
|
359 |
|
360 |
-
#:
|
361 |
-
|
362 |
-
|
|
|
|
|
|
|
|
|
|
|
363 |
|
364 |
-
#:
|
365 |
-
|
366 |
-
|
|
|
367 |
|
368 |
-
#:
|
|
|
369 |
msgid ""
|
370 |
-
"
|
371 |
-
"
|
372 |
msgstr ""
|
|
|
|
|
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 |
msgstr ""
|
|
|
|
|
413 |
|
414 |
-
#:
|
415 |
-
|
|
|
|
|
|
|
416 |
msgstr ""
|
|
|
|
|
417 |
|
418 |
-
#:
|
419 |
-
|
|
|
|
|
|
|
420 |
msgstr ""
|
|
|
|
|
421 |
|
422 |
-
#:
|
423 |
-
|
|
|
|
|
|
|
424 |
msgstr ""
|
|
|
|
|
425 |
|
426 |
-
#:
|
427 |
-
|
428 |
-
|
|
|
|
|
429 |
|
430 |
-
#:
|
431 |
-
|
432 |
-
|
|
|
433 |
|
434 |
-
#:
|
435 |
-
|
|
|
|
|
|
|
436 |
msgstr ""
|
|
|
|
|
437 |
|
438 |
-
#:
|
439 |
-
|
|
|
|
|
|
|
440 |
msgstr ""
|
|
|
|
|
441 |
|
442 |
-
#:
|
443 |
-
|
444 |
-
|
|
|
445 |
|
446 |
-
#:
|
447 |
-
|
|
|
|
|
|
|
448 |
msgstr ""
|
|
|
|
|
449 |
|
450 |
-
#:
|
451 |
-
|
|
|
|
|
|
|
452 |
msgstr ""
|
|
|
|
|
453 |
|
454 |
-
#:
|
455 |
-
|
|
|
|
|
|
|
456 |
msgstr ""
|
|
|
|
|
457 |
|
458 |
-
#:
|
459 |
-
|
460 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
461 |
|
462 |
-
#:
|
463 |
-
|
464 |
-
|
|
|
465 |
|
466 |
-
#:
|
467 |
-
|
468 |
-
|
|
|
469 |
|
470 |
-
#:
|
471 |
-
|
472 |
-
|
|
|
473 |
|
474 |
-
#:
|
475 |
-
msgid "
|
476 |
-
msgstr ""
|
477 |
|
478 |
-
#:
|
479 |
-
|
480 |
-
|
|
|
481 |
|
482 |
-
#:
|
483 |
-
msgid "
|
484 |
-
msgstr ""
|
485 |
|
486 |
-
#:
|
487 |
-
msgid "
|
488 |
-
msgstr ""
|
489 |
|
490 |
-
#:
|
491 |
-
|
492 |
-
|
|
|
493 |
|
494 |
-
#:
|
495 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
496 |
msgstr ""
|
|
|
|
|
497 |
|
498 |
-
#:
|
499 |
-
|
500 |
-
|
|
|
501 |
|
502 |
-
#:
|
503 |
-
|
504 |
-
|
|
|
505 |
|
506 |
-
#:
|
507 |
-
|
508 |
-
|
|
|
509 |
|
510 |
-
#:
|
511 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
512 |
msgstr ""
|
|
|
|
|
513 |
|
514 |
-
#:
|
515 |
-
msgid "
|
516 |
-
msgstr ""
|
517 |
|
518 |
-
#:
|
519 |
-
msgid "
|
520 |
-
msgstr ""
|
521 |
|
522 |
-
#:
|
523 |
-
msgid "
|
524 |
msgstr ""
|
|
|
525 |
|
526 |
-
#:
|
527 |
-
msgid "
|
528 |
-
msgstr ""
|
529 |
|
530 |
-
#:
|
531 |
-
msgid "
|
532 |
msgstr ""
|
|
|
|
|
533 |
|
534 |
-
#:
|
535 |
-
msgid "
|
536 |
-
msgstr ""
|
537 |
|
538 |
-
#:
|
539 |
-
msgid "
|
540 |
-
msgstr ""
|
541 |
|
542 |
-
#:
|
543 |
-
|
544 |
-
|
|
|
545 |
|
546 |
-
#:
|
547 |
-
|
548 |
-
|
|
|
549 |
|
550 |
-
#:
|
551 |
-
|
552 |
-
msgid "
|
553 |
-
msgstr ""
|
554 |
|
555 |
-
#:
|
556 |
-
|
557 |
-
|
|
|
558 |
|
559 |
-
#:
|
560 |
-
|
561 |
-
|
|
|
562 |
|
563 |
-
#:
|
564 |
-
|
565 |
-
|
|
|
566 |
|
567 |
-
#:
|
568 |
-
|
569 |
-
|
|
|
570 |
|
571 |
-
#:
|
572 |
-
|
573 |
-
|
|
|
574 |
|
575 |
-
#:
|
576 |
-
msgid "
|
577 |
-
msgstr ""
|
578 |
|
579 |
-
#:
|
580 |
-
msgid "
|
|
|
|
|
581 |
msgstr ""
|
|
|
|
|
582 |
|
583 |
-
#:
|
584 |
-
msgid "
|
|
|
|
|
585 |
msgstr ""
|
|
|
|
|
586 |
|
587 |
-
#:
|
588 |
-
msgid "
|
589 |
-
msgstr ""
|
590 |
|
591 |
-
#:
|
592 |
-
msgid "
|
593 |
-
msgstr ""
|
594 |
|
595 |
-
#:
|
596 |
-
msgid "
|
597 |
-
msgstr ""
|
598 |
|
599 |
-
#:
|
600 |
-
msgid "
|
601 |
-
msgstr ""
|
602 |
|
603 |
-
#:
|
604 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
605 |
msgstr ""
|
|
|
|
|
606 |
|
607 |
-
#:
|
608 |
-
|
609 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
610 |
|
611 |
-
#:
|
612 |
-
msgid "
|
613 |
-
msgstr ""
|
614 |
|
615 |
-
#:
|
616 |
-
msgid "
|
617 |
msgstr ""
|
|
|
618 |
|
619 |
-
#:
|
620 |
-
msgid "
|
621 |
-
msgstr ""
|
622 |
|
623 |
-
|
624 |
-
|
625 |
-
msgstr ""
|
626 |
|
627 |
-
|
628 |
-
|
629 |
-
msgstr ""
|
630 |
|
631 |
-
|
632 |
-
|
633 |
-
msgstr ""
|
634 |
|
635 |
-
|
636 |
-
|
637 |
-
msgstr ""
|
638 |
|
639 |
-
|
640 |
-
|
641 |
-
msgstr ""
|
642 |
|
643 |
-
|
644 |
-
|
645 |
-
msgstr ""
|
646 |
|
647 |
-
|
648 |
-
|
649 |
-
msgstr ""
|
650 |
|
651 |
-
|
652 |
-
|
653 |
-
msgstr ""
|
654 |
|
655 |
-
|
656 |
-
|
657 |
-
msgstr ""
|
658 |
|
659 |
-
|
660 |
-
|
661 |
-
msgstr ""
|
662 |
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
|
667 |
-
|
668 |
-
|
669 |
-
msgstr ""
|
|
|
|
|
670 |
|
671 |
-
|
672 |
-
|
673 |
-
msgstr ""
|
674 |
|
675 |
-
|
676 |
-
|
677 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
678 |
|
679 |
-
|
680 |
-
|
681 |
-
|
|
|
|
|
|
|
682 |
|
683 |
-
|
684 |
-
|
685 |
-
msgstr ""
|
686 |
|
687 |
-
|
688 |
-
|
689 |
-
msgstr ""
|
690 |
|
691 |
-
|
692 |
-
|
693 |
-
msgstr ""
|
694 |
|
695 |
-
|
696 |
-
|
697 |
-
msgstr ""
|
698 |
|
699 |
-
|
700 |
-
|
701 |
-
msgstr ""
|
702 |
|
703 |
-
|
704 |
-
|
705 |
-
msgstr "Ustawienia"
|
706 |
|
707 |
-
|
708 |
-
|
709 |
-
"The Simple History Extender plugin was deactivated because the Simple "
|
710 |
-
"History plugin was not found installed or active."
|
711 |
-
msgstr ""
|
712 |
|
713 |
-
|
714 |
-
|
715 |
-
msgstr ""
|
716 |
|
717 |
-
|
718 |
-
|
719 |
-
msgstr ""
|
720 |
|
721 |
-
|
722 |
-
|
723 |
-
msgstr "Historia zdarzeń - moduły rozszerzeń"
|
724 |
|
725 |
-
|
726 |
-
|
727 |
-
|
728 |
-
|
729 |
-
msgstr ""
|
730 |
-
|
731 |
-
|
732 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
733 |
|
734 |
-
|
735 |
-
|
736 |
-
msgstr "Historia zdarzeń - moduł rozszerzeń"
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: Simple History\n"
|
6 |
"Report-Msgid-Bugs-To: http://wordpress.org/tag/simple-history\n"
|
7 |
+
"POT-Creation-Date: 2014-12-29 08:36+0100\n"
|
8 |
+
"PO-Revision-Date: 2014-12-29 08:42+0100\n"
|
|
|
|
|
|
|
9 |
"Last-Translator: Mateusz Czardybon <mczardybon@netizens.pl>\n"
|
10 |
"Language-Team: Mateusz Czardybon <mczardybon@netizens.pl>\n"
|
|
|
11 |
"Language: pl_PL\n"
|
12 |
+
"MIME-Version: 1.0\n"
|
13 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
14 |
+
"Content-Transfer-Encoding: 8bit\n"
|
15 |
+
"X-Generator: Poedit 1.7.1\n"
|
16 |
"X-Poedit-SourceCharset: UTF-8\n"
|
17 |
+
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
18 |
+
"|| n%100>=20) ? 1 : 2);\n"
|
19 |
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
|
20 |
"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;"
|
21 |
"esc_attr_x:1,2c\n"
|
22 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
23 |
"X-Poedit-Basepath: ../\n"
|
24 |
+
"X-Textdomain-Support: yes\n"
|
25 |
+
"X-Poedit-SearchPath-0: .\n"
|
|
|
|
|
|
|
26 |
|
27 |
+
#: SimpleHistory.php:177
|
28 |
+
msgctxt ""
|
29 |
+
"Message visible while waiting for log to load from server the first time"
|
30 |
+
msgid "Loading history..."
|
31 |
+
msgstr "Ładowanie zdarzeń..."
|
32 |
|
33 |
+
#: SimpleHistory.php:214
|
34 |
+
msgctxt "page n of n"
|
35 |
+
msgid "of"
|
36 |
+
msgstr "z"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
|
38 |
+
#: SimpleHistory.php:285
|
39 |
+
msgctxt "API: not enought arguments passed"
|
40 |
+
msgid "Not enough args specified"
|
41 |
+
msgstr "Brak potrzebnych argumentów"
|
42 |
|
43 |
+
#: SimpleHistory.php:434 SimpleHistory.php:696
|
44 |
+
msgid "Settings"
|
45 |
+
msgstr "Ustawienia"
|
46 |
|
47 |
+
#: SimpleHistory.php:445
|
48 |
+
msgid "Log (debug)"
|
49 |
+
msgstr "Zdarzenia (debug)"
|
50 |
|
51 |
+
#: SimpleHistory.php:450
|
52 |
+
msgid "Styles example (debug)"
|
53 |
+
msgstr "Przykłady styli (debug)"
|
54 |
|
55 |
+
#: SimpleHistory.php:711
|
56 |
+
msgid "Simple History"
|
57 |
+
msgstr "Historia zdarzeń"
|
58 |
|
59 |
+
#: SimpleHistory.php:787
|
60 |
+
msgid "Remove all log items?"
|
61 |
+
msgstr "Czy na pewno chcesz usunąć wszystkie zdarzenia z bazy danych?"
|
62 |
|
63 |
+
#: SimpleHistory.php:789
|
64 |
+
msgid "Go to the first page"
|
65 |
+
msgstr "Pierwsza strona"
|
66 |
|
67 |
+
#: SimpleHistory.php:790
|
68 |
+
msgid "Go to the previous page"
|
69 |
+
msgstr "Poprzednia strona"
|
70 |
|
71 |
+
#: SimpleHistory.php:791
|
72 |
+
msgid "Go to the next page"
|
73 |
+
msgstr "Następna strona"
|
74 |
|
75 |
+
#: SimpleHistory.php:792
|
76 |
+
msgid "Go to the last page"
|
77 |
+
msgstr "Ostatnia strona"
|
78 |
|
79 |
+
#: SimpleHistory.php:793
|
80 |
+
msgid "Current page"
|
81 |
+
msgstr "Aktualna strona"
|
82 |
|
83 |
+
#: SimpleHistory.php:795
|
84 |
+
msgid "Oups, the log could not be loaded right now."
|
85 |
+
msgstr "Ups, zdarzenie nie może być teraz załadowane."
|
86 |
|
87 |
+
#: SimpleHistory.php:796
|
88 |
+
msgid "Your search did not match any history events."
|
89 |
+
msgstr "Nie ma zdarzeń odpowiadającym Twoim kryteriom wyszukiwania."
|
90 |
|
91 |
+
#: SimpleHistory.php:1090 SimpleHistory.php:1193
|
92 |
+
msgid "Simple History Settings"
|
93 |
+
msgstr "Historia zdarzeń - ustawienia"
|
94 |
|
95 |
+
#: SimpleHistory.php:1124
|
96 |
+
msgid "No valid callback found"
|
97 |
+
msgstr "Nie znaleziono odpowiedniej funkcji"
|
98 |
|
99 |
+
#: SimpleHistory.php:1178
|
100 |
+
msgctxt "dashboard menu name"
|
101 |
+
msgid "Simple History"
|
102 |
+
msgstr "Historia zdarzeń"
|
103 |
|
104 |
+
#: SimpleHistory.php:1214
|
105 |
+
msgid "Cleared database"
|
106 |
+
msgstr "Wyczyść bazę danych"
|
107 |
|
108 |
+
#: SimpleHistory.php:1241
|
109 |
+
msgid "Show history"
|
110 |
+
msgstr "Pokaż zdarzenia"
|
111 |
|
112 |
+
#: SimpleHistory.php:1254
|
113 |
msgid "Number of items per page"
|
114 |
msgstr "Liczba elementów na stronie"
|
115 |
|
116 |
+
#: SimpleHistory.php:1266
|
|
|
|
|
|
|
|
|
117 |
msgid "Clear log"
|
118 |
msgstr "Wyczyść historię"
|
119 |
|
120 |
+
#: SimpleHistory.php:1303
|
121 |
+
msgctxt "history page headline"
|
122 |
+
msgid "Simple History"
|
123 |
+
msgstr "Historia zdarzeń"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
|
125 |
+
#: SimpleHistory.php:1406
|
126 |
msgid "on the dashboard"
|
127 |
msgstr "jako widget w Kokpicie"
|
128 |
|
129 |
+
#: SimpleHistory.php:1411
|
130 |
msgid "as a page under the dashboard menu"
|
131 |
msgstr "jako podstronę w menu Kokpit"
|
132 |
|
133 |
+
#: SimpleHistory.php:1427
|
134 |
+
#, php-format
|
135 |
+
msgid "Items in the database are automatically removed after %1$s days."
|
136 |
+
msgstr "Zdarzenia będą usuwane automatycznie z bazy danych po %1$s dniach."
|
137 |
|
138 |
+
#: SimpleHistory.php:1429
|
139 |
+
msgid "Items in the database are kept forever."
|
140 |
+
msgstr "Zdarzenia nigdy nie będą usuwane z bazy danych."
|
141 |
|
142 |
+
#: SimpleHistory.php:1433
|
143 |
+
msgid "Clear log now"
|
144 |
+
msgstr "Wyczyść zdarzenia"
|
145 |
|
146 |
+
#: SimpleHistory.php:1658
|
147 |
+
#, php-format
|
148 |
+
msgid "+%1$s more"
|
149 |
+
msgstr "+%1$s więcej"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
150 |
|
151 |
+
#: SimpleHistory.php:1665
|
152 |
+
msgid "Loading…"
|
153 |
+
msgstr "Ładuję..."
|
|
|
|
|
|
|
|
|
154 |
|
155 |
+
#: SimpleHistory.php:1672
|
156 |
+
#, php-format
|
157 |
+
msgid "Showing %1$s more"
|
158 |
+
msgstr "Pokazuję %1$s więcej"
|
159 |
+
|
160 |
+
#: SimpleHistory.php:1691
|
161 |
+
msgid "Context data"
|
162 |
+
msgstr "Dane kontekstowe"
|
163 |
|
164 |
+
#: SimpleHistory.php:1692
|
165 |
+
msgid "This is potentially useful meta data that a logger have saved."
|
166 |
msgstr ""
|
167 |
+
"To są potencjalnie przydatne informacje dodane podczas zapisywania zdarzenia."
|
168 |
|
169 |
+
#: SimpleHistory.php:2029
|
170 |
+
msgid "No events today so far."
|
171 |
+
msgstr "Brak zdarzeń z dzisiejszego dnia."
|
172 |
|
173 |
+
#: SimpleHistory.php:2033
|
174 |
+
#, php-format
|
175 |
+
msgid "%1$d event today from one user."
|
176 |
+
msgstr "Dziś: %1$d zdarzenie od jednego użytkownika."
|
177 |
|
178 |
+
#: SimpleHistory.php:2037
|
179 |
+
#, php-format
|
180 |
+
msgid "%1$d events today from %2$d users."
|
181 |
+
msgstr "Dziś: %1$d zdarzeń od %2$d użytkowników."
|
182 |
|
183 |
+
#: SimpleHistory.php:2041
|
184 |
+
#, php-format
|
185 |
+
msgid "%1$d events today from one user."
|
186 |
+
msgstr "Dziś: %1$d zdarzeń od jednego użytkownika."
|
187 |
|
188 |
+
#: dropins/SimpleHistoryDonateDropin.php:36
|
189 |
+
msgid "Donate"
|
190 |
+
msgstr "Darowizna"
|
191 |
|
192 |
+
#: dropins/SimpleHistoryDonateDropin.php:51
|
193 |
+
msgctxt "donate settings headline"
|
194 |
+
msgid "Donate"
|
195 |
+
msgstr "Darowizna"
|
196 |
|
197 |
+
#: dropins/SimpleHistoryDonateDropin.php:72
|
198 |
+
#, php-format
|
199 |
+
msgid ""
|
200 |
+
"If you find Simple History useful please <a href=\"%1$s\">donate</a> or <a "
|
201 |
+
"href=\"%2$s\">buy me something from my Amazon wish list</a>."
|
202 |
+
msgstr ""
|
203 |
+
"Jeśli podoba Ci się moja wtyczka i uważasz że jest przydatna, to możesz mnie "
|
204 |
+
"wesprzeć <a href=\"%1$s\">przekazując darowiznę</a> lub <a href=\"%2$s"
|
205 |
+
"\">kupując mi coś z listy życzeń na Amazonie</a>."
|
206 |
|
207 |
+
#: dropins/SimpleHistoryFilterDropin.php:43
|
208 |
+
msgid "Filter history"
|
209 |
+
msgstr "Filtry zdarzeń"
|
210 |
|
211 |
+
#: dropins/SimpleHistoryFilterDropin.php:50
|
212 |
+
msgid "All log levels"
|
213 |
+
msgstr "Wszystkie poziomy zdarzeń"
|
|
|
|
|
|
|
|
|
214 |
|
215 |
+
#: dropins/SimpleHistoryFilterDropin.php:64
|
216 |
+
msgid "All messages"
|
217 |
+
msgstr "Wszystkie rodzaje zdarzeń"
|
218 |
|
219 |
+
#: dropins/SimpleHistoryFilterDropin.php:118
|
220 |
+
msgid "All users"
|
221 |
+
msgstr "Wszyscy użytkownicy"
|
222 |
|
223 |
+
#: dropins/SimpleHistoryFilterDropin.php:139
|
224 |
+
msgid "All dates"
|
225 |
+
msgstr "Wszystkie daty"
|
226 |
+
|
227 |
+
#: dropins/SimpleHistoryFilterDropin.php:153
|
228 |
+
msgid "Filter"
|
229 |
+
msgstr "Filtruj"
|
230 |
+
|
231 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:66
|
232 |
+
msgctxt "IP Info Dropin"
|
233 |
+
msgid "That IP address does not seem like a public one."
|
234 |
+
msgstr "Wydaje się, że ten adres IP nie jest adresem publicznym."
|
235 |
+
|
236 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:85
|
237 |
+
msgctxt "IP Info Dropin"
|
238 |
+
msgid "IP address"
|
239 |
+
msgstr "Adres IP"
|
240 |
+
|
241 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:96
|
242 |
+
msgctxt "IP Info Dropin"
|
243 |
+
msgid "Hostname"
|
244 |
+
msgstr "Nazwa hosta"
|
245 |
+
|
246 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:107
|
247 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:118
|
248 |
+
msgctxt "IP Info Dropin"
|
249 |
+
msgid "Network"
|
250 |
+
msgstr "Sieć"
|
251 |
+
|
252 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:129
|
253 |
+
msgctxt "IP Info Dropin"
|
254 |
+
msgid "City"
|
255 |
+
msgstr "Miasto"
|
256 |
+
|
257 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:140
|
258 |
+
msgctxt "IP Info Dropin"
|
259 |
+
msgid "Region"
|
260 |
+
msgstr "Region"
|
261 |
+
|
262 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:151
|
263 |
+
msgctxt "IP Info Dropin"
|
264 |
+
msgid "Country"
|
265 |
+
msgstr "Kraj"
|
266 |
+
|
267 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:162
|
268 |
+
#, php-format
|
269 |
+
msgctxt "IP Info Dropin"
|
270 |
+
msgid "IP info provided by %1$s ipinfo.io %2$s"
|
271 |
+
msgstr "Informacje o adresie IP dostarczone przez %1$s ipinfo.io %2$s"
|
272 |
+
|
273 |
+
#: dropins/SimpleHistoryNewRowsNotifier.php:38
|
274 |
+
msgctxt "New rows notifier: error while checking for new rows"
|
275 |
+
msgid "An error occured while checking for new log rows"
|
276 |
+
msgstr "Wystąpił błąd podczas sprawdzania czy są nowe zdarzenia"
|
277 |
+
|
278 |
+
#: dropins/SimpleHistoryNewRowsNotifier.php:80
|
279 |
+
#, php-format
|
280 |
+
msgid "1 new row"
|
281 |
+
msgid_plural "%d new rows"
|
282 |
+
msgstr[0] "1 nowe zdarzenie"
|
283 |
+
msgstr[1] "%d nowe zdarzenia"
|
284 |
+
msgstr[2] "%d nowych zdarzeń"
|
285 |
+
|
286 |
+
#: dropins/SimpleHistoryRSSDropin.php:47
|
287 |
+
msgctxt "rss settings headline"
|
288 |
+
msgid "RSS feed"
|
289 |
+
msgstr "Kanał RSS"
|
290 |
|
291 |
+
#: dropins/SimpleHistoryRSSDropin.php:55
|
292 |
+
msgid "Address"
|
293 |
+
msgstr "Adres URL"
|
294 |
|
295 |
+
#: dropins/SimpleHistoryRSSDropin.php:64
|
296 |
+
msgid "Regenerate"
|
297 |
+
msgstr "Resetowanie adresu URL kanału"
|
298 |
|
299 |
+
#: dropins/SimpleHistoryRSSDropin.php:81
|
300 |
+
msgid "Created new secret RSS address"
|
301 |
+
msgstr "Utworzono nowy sekretny link do kanału RSS"
|
302 |
|
303 |
+
#: dropins/SimpleHistoryRSSDropin.php:148
|
304 |
+
#: dropins/SimpleHistoryRSSDropin.php:256
|
305 |
+
#, php-format
|
306 |
+
msgid "History for %s"
|
307 |
+
msgstr "Historia dla %s"
|
308 |
|
309 |
+
#: dropins/SimpleHistoryRSSDropin.php:149
|
310 |
+
#: dropins/SimpleHistoryRSSDropin.php:257
|
311 |
+
#, php-format
|
312 |
+
msgid "WordPress History for %s"
|
313 |
+
msgstr "Historia WordPressa dla %s"
|
314 |
|
315 |
+
#: dropins/SimpleHistoryRSSDropin.php:196
|
316 |
+
#, php-format
|
317 |
+
msgid "+%1$s occasion"
|
318 |
+
msgid_plural "+%1$s occasions"
|
319 |
+
msgstr[0] "+ 1 wystąpienie"
|
320 |
+
msgstr[1] "+ %1$s wystąpienia"
|
321 |
+
msgstr[2] "+ %1$s wystąpień"
|
322 |
|
323 |
+
#: dropins/SimpleHistoryRSSDropin.php:260
|
324 |
+
msgid "Wrong RSS secret"
|
325 |
+
msgstr "Błędny klucz kanału RSS"
|
326 |
|
327 |
+
#: dropins/SimpleHistoryRSSDropin.php:261
|
328 |
+
msgid ""
|
329 |
+
"Your RSS secret for Simple History RSS feed is wrong. Please see WordPress "
|
330 |
+
"settings for current link to the RSS feed."
|
331 |
+
msgstr ""
|
332 |
+
"Twój sekretny link z dostępem do kanału RSS Historii zdarzeń jest błędny. "
|
333 |
+
"Przejdź do ustawień WordPressa, żeby zobaczyć aktualny adres tego kanału."
|
334 |
|
335 |
+
#: dropins/SimpleHistoryRSSDropin.php:312
|
336 |
+
msgid ""
|
337 |
+
"You can generate a new address for the RSS feed. This is useful if you think "
|
338 |
+
"that the address has fallen into the wrong hands."
|
339 |
+
msgstr ""
|
340 |
+
"Możesz wygenerować nowy adres kanału RSS. Ta opcja jest przydatna, jeśli "
|
341 |
+
"poprzednii link wpadł w niepowołane ręce."
|
342 |
|
343 |
+
#: dropins/SimpleHistoryRSSDropin.php:315
|
344 |
+
msgid "Generate new address"
|
345 |
+
msgstr "Utwórz nowy adres URL"
|
346 |
|
347 |
+
#: dropins/SimpleHistoryRSSDropin.php:343
|
348 |
+
msgid ""
|
349 |
+
"Simple History has a RSS feed which you can subscribe to and receive log "
|
350 |
+
"updates. Make sure you only share the feed with people you trust, since it "
|
351 |
+
"can contain sensitive or confidential information."
|
352 |
+
msgstr ""
|
353 |
+
"Wtyczka Simple History udostępnia kanał RSS, który możesz zasubskrybować i w "
|
354 |
+
"ten sposób otrzymywać powiadomienia o zdarzeniach. Upewnij się, adres tego "
|
355 |
+
"kanału znają tylko zaufane osoby, ponieważ może on zawierać dane poufne."
|
356 |
|
357 |
+
#: dropins/SimpleHistorySettingsLogtestDropin.php:20
|
358 |
+
msgid "Test data (debug)"
|
359 |
+
msgstr "Dane testowe (debug)"
|
360 |
|
361 |
+
#: dropins/SimpleHistorySettingsStatsDropin.php:27
|
362 |
+
msgid "Stats"
|
363 |
+
msgstr "Statystyki"
|
364 |
|
365 |
+
#: index.php:55
|
366 |
+
#, php-format
|
367 |
+
msgid ""
|
368 |
+
"Simple History is a great plugin, but to use it your server must have at "
|
369 |
+
"least PHP 5.3 installed (you have version %s)."
|
370 |
+
msgstr ""
|
371 |
+
"Wtyczka Simple History do prawidłowego działania wymaga serwera z obsługą "
|
372 |
+
"PHP co najmniej 5.3 (aktualnie jest %s)."
|
373 |
|
374 |
+
#: loggers/SimpleCommentsLogger.php:95
|
375 |
+
msgctxt "A comment was added to the database by a non-logged in internet user"
|
376 |
+
msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
|
377 |
+
msgstr "Dodano komentarz do {comment_post_type} \"{comment_post_title}\""
|
378 |
|
379 |
+
#: loggers/SimpleCommentsLogger.php:101
|
380 |
+
msgctxt "A comment was added to the database by a logged in user"
|
381 |
+
msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
|
382 |
+
msgstr "Dodano komentarz do {comment_post_type} \"{comment_post_title}\""
|
383 |
|
384 |
+
#: loggers/SimpleCommentsLogger.php:107
|
385 |
+
msgctxt "A comment was approved"
|
386 |
+
msgid ""
|
387 |
+
"Approved a comment to \"{comment_post_title}\" by {comment_author} "
|
388 |
+
"({comment_author_email})"
|
389 |
+
msgstr ""
|
390 |
+
"Zatwierdzono komentarz dla \"{comment_post_title}\" dodany przez "
|
391 |
+
"{comment_author} ({comment_author_email})"
|
392 |
|
393 |
+
#: loggers/SimpleCommentsLogger.php:113
|
394 |
+
msgctxt "A comment was was unapproved"
|
395 |
+
msgid ""
|
396 |
+
"Unapproved a comment to \"{comment_post_title}\" by {comment_author} "
|
397 |
+
"({comment_author_email})"
|
398 |
+
msgstr ""
|
399 |
+
"Odrzucono komentarz \"{comment_post_title}\" dodany przez {comment_author} "
|
400 |
+
"({comment_author_email})"
|
401 |
|
402 |
+
#: loggers/SimpleCommentsLogger.php:119
|
403 |
+
msgctxt "A comment was marked as spam"
|
404 |
+
msgid "Marked a comment to post \"{comment_post_title}\" as spam"
|
405 |
+
msgstr "Komentarz dodany do \"{comment_post_title}\" oznaczono jako spam"
|
406 |
|
407 |
+
#: loggers/SimpleCommentsLogger.php:125
|
408 |
+
msgctxt "A comment was marked moved to the trash"
|
409 |
msgid ""
|
410 |
+
"Trashed a comment to \"{comment_post_title}\" by {comment_author} "
|
411 |
+
"({comment_author_email})"
|
412 |
msgstr ""
|
413 |
+
"Komentarz dodany do \"{comment_post_title}\" przez {comment_author} "
|
414 |
+
"({comment_author_email}) przeniesiono do Kosza"
|
415 |
|
416 |
+
#: loggers/SimpleCommentsLogger.php:131
|
417 |
+
msgctxt "A comment was restored from the trash"
|
418 |
+
msgid ""
|
419 |
+
"Restored a comment to \"{comment_post_title}\" by {comment_author} "
|
420 |
+
"({comment_author_email}) from the trash"
|
421 |
+
msgstr ""
|
422 |
+
"Przywrócono z Kosza komentarz dodany do \"{comment_post_title}\" przez "
|
423 |
+
"{comment_author} ({comment_author_email})"
|
424 |
|
425 |
+
#: loggers/SimpleCommentsLogger.php:137
|
426 |
+
msgctxt "A comment was deleted"
|
427 |
+
msgid ""
|
428 |
+
"Deleted a comment to \"{comment_post_title}\" by {comment_author} "
|
429 |
+
"({comment_author_email})"
|
430 |
+
msgstr ""
|
431 |
+
"Usunięto komentarz dodany do \"{comment_post_title}\" przez {comment_author} "
|
432 |
+
"({comment_author_email})"
|
433 |
|
434 |
+
#: loggers/SimpleCommentsLogger.php:143
|
435 |
+
msgctxt "A comment was edited"
|
436 |
+
msgid ""
|
437 |
+
"Edited a comment to \"{comment_post_title}\" by {comment_author} "
|
438 |
+
"({comment_author_email})"
|
439 |
+
msgstr ""
|
440 |
+
"Edytowano komentarz dodany do \"{comment_post_title}\" przez "
|
441 |
+
"{comment_author} ({comment_author_email})"
|
442 |
|
443 |
+
#: loggers/SimpleCommentsLogger.php:150
|
444 |
+
msgctxt ""
|
445 |
+
"A trackback was added to the database by a non-logged in internet user"
|
446 |
+
msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
|
447 |
+
msgstr "Dodano trackback do {comment_post_type} \"{comment_post_title}\""
|
448 |
|
449 |
+
#: loggers/SimpleCommentsLogger.php:156
|
450 |
+
msgctxt "A trackback was added to the database by a logged in user"
|
451 |
+
msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
|
452 |
+
msgstr "Dodano trackback do {comment_post_type} \"{comment_post_title}\""
|
453 |
|
454 |
+
#: loggers/SimpleCommentsLogger.php:162
|
455 |
+
msgctxt "A trackback was approved"
|
456 |
+
msgid ""
|
457 |
+
"Approved a trackback to \"{comment_post_title}\" by {comment_author} "
|
458 |
+
"({comment_author_email})"
|
459 |
+
msgstr ""
|
460 |
+
"Zatwierdzono trackback do \"{comment_post_title}\" dodany przez "
|
461 |
+
"{comment_author} ({comment_author_email})"
|
462 |
|
463 |
+
#: loggers/SimpleCommentsLogger.php:168
|
464 |
+
msgctxt "A trackback was was unapproved"
|
465 |
+
msgid ""
|
466 |
+
"Unapproved a trackback to \"{comment_post_title}\" by {comment_author} "
|
467 |
+
"({comment_author_email})"
|
468 |
+
msgstr ""
|
469 |
+
"Odrzucono trackback do \"{comment_post_title}\" dodany przez "
|
470 |
+
"{comment_author} ({comment_author_email})"
|
471 |
|
472 |
+
#: loggers/SimpleCommentsLogger.php:174
|
473 |
+
msgctxt "A trackback was marked as spam"
|
474 |
+
msgid "Marked a trackback to post \"{comment_post_title}\" as spam"
|
475 |
+
msgstr "Trackback dodany do \"{comment_post_title}\" oznaczono jako spam"
|
476 |
|
477 |
+
#: loggers/SimpleCommentsLogger.php:180
|
478 |
+
msgctxt "A trackback was marked moved to the trash"
|
479 |
+
msgid ""
|
480 |
+
"Trashed a trackback to \"{comment_post_title}\" by {comment_author} "
|
481 |
+
"({comment_author_email})"
|
482 |
msgstr ""
|
483 |
+
"Przeniesiono do Kosza trackback do \"{comment_post_title}\" dodany przez "
|
484 |
+
"{comment_author} ({comment_author_email})"
|
485 |
|
486 |
+
#: loggers/SimpleCommentsLogger.php:186
|
487 |
+
msgctxt "A trackback was restored from the trash"
|
488 |
+
msgid ""
|
489 |
+
"Restored a trackback to \"{comment_post_title}\" by {comment_author} "
|
490 |
+
"({comment_author_email}) from the trash"
|
491 |
msgstr ""
|
492 |
+
"Przywrócono z Kosza trackback do \"{comment_post_title}\" dodany przez "
|
493 |
+
"{comment_author} ({comment_author_email})"
|
494 |
|
495 |
+
#: loggers/SimpleCommentsLogger.php:192
|
496 |
+
msgctxt "A trackback was deleted"
|
497 |
+
msgid ""
|
498 |
+
"Deleted a trackback to \"{comment_post_title}\" by {comment_author} "
|
499 |
+
"({comment_author_email})"
|
500 |
msgstr ""
|
501 |
+
"Usunięto trackback do \"{comment_post_title}\" dodany przez {comment_author} "
|
502 |
+
"({comment_author_email})"
|
503 |
|
504 |
+
#: loggers/SimpleCommentsLogger.php:198
|
505 |
+
msgctxt "A trackback was edited"
|
506 |
+
msgid ""
|
507 |
+
"Edited a trackback to \"{comment_post_title}\" by {comment_author} "
|
508 |
+
"({comment_author_email})"
|
509 |
msgstr ""
|
510 |
+
"Edytowano trackback do \"{comment_post_title}\" dodany przez "
|
511 |
+
"{comment_author} ({comment_author_email})"
|
512 |
|
513 |
+
#: loggers/SimpleCommentsLogger.php:205
|
514 |
+
msgctxt ""
|
515 |
+
"A trackback was added to the database by a non-logged in internet user"
|
516 |
+
msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
|
517 |
+
msgstr "Dodano pingback do {comment_post_type} \"{comment_post_title}\""
|
518 |
|
519 |
+
#: loggers/SimpleCommentsLogger.php:211
|
520 |
+
msgctxt "A pingback was added to the database by a logged in user"
|
521 |
+
msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
|
522 |
+
msgstr "Dodano pingback do {comment_post_type} \"{comment_post_title}\""
|
523 |
|
524 |
+
#: loggers/SimpleCommentsLogger.php:217
|
525 |
+
msgctxt "A pingback was approved"
|
526 |
+
msgid ""
|
527 |
+
"Approved a pingback to \"{comment_post_title}\" by "
|
528 |
+
"\"{comment_author}\"\" ({comment_author_email})"
|
529 |
msgstr ""
|
530 |
+
"Zatwierdzono pingback do \"{comment_post_title}\" dodany przez "
|
531 |
+
"\"{comment_author}\"\" ({comment_author_email})"
|
532 |
|
533 |
+
#: loggers/SimpleCommentsLogger.php:223
|
534 |
+
msgctxt "A pingback was was unapproved"
|
535 |
+
msgid ""
|
536 |
+
"Unapproved a pingback to \"{comment_post_title}\" by "
|
537 |
+
"\"{comment_author}\" ({comment_author_email})"
|
538 |
msgstr ""
|
539 |
+
"Odrzucono pingback do \"{comment_post_title}\" dodany przez "
|
540 |
+
"\"{comment_author}\" ({comment_author_email})"
|
541 |
|
542 |
+
#: loggers/SimpleCommentsLogger.php:229
|
543 |
+
msgctxt "A pingback was marked as spam"
|
544 |
+
msgid "Marked a pingback to post \"{comment_post_title}\" as spam"
|
545 |
+
msgstr "Pingback do wpisu \"{comment_post_title}\" oznaczono jako spam"
|
546 |
|
547 |
+
#: loggers/SimpleCommentsLogger.php:235
|
548 |
+
msgctxt "A pingback was marked moved to the trash"
|
549 |
+
msgid ""
|
550 |
+
"Trashed a pingback to \"{comment_post_title}\" by {comment_author} "
|
551 |
+
"({comment_author_email})"
|
552 |
msgstr ""
|
553 |
+
"Przeniesiono do Kosza pingback do \"{comment_post_title}\" dodany przez "
|
554 |
+
"{comment_author} ({comment_author_email})"
|
555 |
|
556 |
+
#: loggers/SimpleCommentsLogger.php:241
|
557 |
+
msgctxt "A pingback was restored from the trash"
|
558 |
+
msgid ""
|
559 |
+
"Restored a pingback to \"{comment_post_title}\" by {comment_author} "
|
560 |
+
"({comment_author_email}) from the trash"
|
561 |
msgstr ""
|
562 |
+
"Przywrócono z Kosza pingback do \"{comment_post_title}\" dodany przez "
|
563 |
+
"{comment_author} ({comment_author_email})"
|
564 |
|
565 |
+
#: loggers/SimpleCommentsLogger.php:247
|
566 |
+
msgctxt "A pingback was deleted"
|
567 |
+
msgid ""
|
568 |
+
"Deleted a pingback to \"{comment_post_title}\" by {comment_author} "
|
569 |
+
"({comment_author_email})"
|
570 |
msgstr ""
|
571 |
+
"Usunięto pingback do \"{comment_post_title}\" dodany przez {comment_author} "
|
572 |
+
"({comment_author_email})"
|
573 |
|
574 |
+
#: loggers/SimpleCommentsLogger.php:253
|
575 |
+
msgctxt "A pingback was edited"
|
576 |
+
msgid ""
|
577 |
+
"Edited a pingback to \"{comment_post_title}\" by {comment_author} "
|
578 |
+
"({comment_author_email})"
|
579 |
+
msgstr ""
|
580 |
+
"Edytowano pingback do \"{comment_post_title}\" dodany przez {comment_author} "
|
581 |
+
"({comment_author_email})"
|
582 |
+
|
583 |
+
#: loggers/SimpleCommentsLogger.php:263
|
584 |
+
msgctxt "Comments logger: search"
|
585 |
+
msgid "Comments"
|
586 |
+
msgstr "Komentarze"
|
587 |
+
|
588 |
+
#: loggers/SimpleCommentsLogger.php:264
|
589 |
+
msgctxt "Comments logger: search"
|
590 |
+
msgid "All comments activity"
|
591 |
+
msgstr "Wszystkie aktywności związane z komentarzami"
|
592 |
+
|
593 |
+
#: loggers/SimpleCommentsLogger.php:266
|
594 |
+
msgctxt "Comments logger: search"
|
595 |
+
msgid "Added comments"
|
596 |
+
msgstr "Dodanie komentarzy"
|
597 |
+
|
598 |
+
#: loggers/SimpleCommentsLogger.php:274
|
599 |
+
msgctxt "Comments logger: search"
|
600 |
+
msgid "Edited comments"
|
601 |
+
msgstr "Edytowanie komentarzy"
|
602 |
+
|
603 |
+
#: loggers/SimpleCommentsLogger.php:279
|
604 |
+
msgctxt "Comments logger: search"
|
605 |
+
msgid "Approved comments"
|
606 |
+
msgstr "Zatwierdzanie komentarzy"
|
607 |
+
|
608 |
+
#: loggers/SimpleCommentsLogger.php:284
|
609 |
+
msgctxt "Comments logger: search"
|
610 |
+
msgid "Held comments"
|
611 |
+
msgstr "Wstrzymanie komentarzy"
|
612 |
+
|
613 |
+
#: loggers/SimpleCommentsLogger.php:289
|
614 |
+
msgctxt "Comments logger: search"
|
615 |
+
msgid "Comments status changed to spam"
|
616 |
+
msgstr "Oznaczenie komentarzy jako spam"
|
617 |
+
|
618 |
+
#: loggers/SimpleCommentsLogger.php:294
|
619 |
+
msgctxt "Comments logger: search"
|
620 |
+
msgid "Trashed comments"
|
621 |
+
msgstr "Przeniesienie komentarzy do Kosza"
|
622 |
+
|
623 |
+
#: loggers/SimpleCommentsLogger.php:299
|
624 |
+
msgctxt "Comments logger: search"
|
625 |
+
msgid "Untrashed comments"
|
626 |
+
msgstr "Przywrócenie komentarzy z Kosza"
|
627 |
+
|
628 |
+
#: loggers/SimpleCommentsLogger.php:304
|
629 |
+
msgctxt "Comments logger: search"
|
630 |
+
msgid "Deleted comments"
|
631 |
+
msgstr "Usunięcie komentarzy"
|
632 |
+
|
633 |
+
#: loggers/SimpleCommentsLogger.php:599 loggers/SimpleCommentsLogger.php:612
|
634 |
+
#: loggers/SimpleCommentsLogger.php:626
|
635 |
+
msgctxt "comments logger - detailed output comment status"
|
636 |
+
msgid "Status"
|
637 |
+
msgstr "Status"
|
638 |
+
|
639 |
+
#: loggers/SimpleCommentsLogger.php:601 loggers/SimpleCommentsLogger.php:614
|
640 |
+
#: loggers/SimpleCommentsLogger.php:628
|
641 |
+
msgctxt "comments logger - detailed output author"
|
642 |
+
msgid "Name"
|
643 |
+
msgstr "Imię"
|
644 |
+
|
645 |
+
#: loggers/SimpleCommentsLogger.php:602 loggers/SimpleCommentsLogger.php:615
|
646 |
+
#: loggers/SimpleCommentsLogger.php:629
|
647 |
+
msgctxt "comments logger - detailed output email"
|
648 |
+
msgid "Email"
|
649 |
+
msgstr "E-mail"
|
650 |
+
|
651 |
+
#: loggers/SimpleCommentsLogger.php:603 loggers/SimpleCommentsLogger.php:616
|
652 |
+
msgctxt "comments logger - detailed output content"
|
653 |
+
msgid "Content"
|
654 |
+
msgstr "Treść"
|
655 |
+
|
656 |
+
#: loggers/SimpleCommentsLogger.php:630
|
657 |
+
msgctxt "comments logger - detailed output content"
|
658 |
+
msgid "Comment"
|
659 |
+
msgstr "Komentarz"
|
660 |
+
|
661 |
+
#: loggers/SimpleCommentsLogger.php:682
|
662 |
+
msgid "Spam"
|
663 |
+
msgstr "Spam"
|
664 |
+
|
665 |
+
#: loggers/SimpleCommentsLogger.php:684
|
666 |
+
msgid "Approved"
|
667 |
+
msgstr "Zatwierdzony"
|
668 |
+
|
669 |
+
#: loggers/SimpleCommentsLogger.php:686
|
670 |
+
msgid "Pending"
|
671 |
+
msgstr "Oczekujący"
|
672 |
+
|
673 |
+
#: loggers/SimpleCommentsLogger.php:700
|
674 |
+
msgid "Trackback"
|
675 |
+
msgstr "Trackback"
|
676 |
+
|
677 |
+
#: loggers/SimpleCommentsLogger.php:702
|
678 |
+
msgid "Pingback"
|
679 |
+
msgstr "Pingback"
|
680 |
+
|
681 |
+
#: loggers/SimpleCommentsLogger.php:704
|
682 |
+
msgid "Comment"
|
683 |
+
msgstr "Komentarz"
|
684 |
+
|
685 |
+
#: loggers/SimpleCommentsLogger.php:756
|
686 |
+
msgctxt "comments logger - edit comment"
|
687 |
+
msgid "View/Edit"
|
688 |
+
msgstr "Zobacz/Edytuj"
|
689 |
+
|
690 |
+
#: loggers/SimpleCoreUpdatesLogger.php:29
|
691 |
+
msgid "Updated WordPress from {prev_version} to {new_version}"
|
692 |
+
msgstr "Zaktualizowano WordPressa z wersji {prev_version} do {new_version}"
|
693 |
+
|
694 |
+
#: loggers/SimpleCoreUpdatesLogger.php:30
|
695 |
+
msgid "WordPress auto-updated from {prev_version} to {new_version}"
|
696 |
+
msgstr ""
|
697 |
+
"WordPress sam się zaktualizował z wersji {prev_version} do {new_version}"
|
698 |
+
|
699 |
+
#: loggers/SimpleCoreUpdatesLogger.php:34
|
700 |
+
msgctxt "User logger: search"
|
701 |
+
msgid "WordPress Core"
|
702 |
+
msgstr "WordPress"
|
703 |
+
|
704 |
+
#: loggers/SimpleCoreUpdatesLogger.php:36
|
705 |
+
msgctxt "User logger: search"
|
706 |
+
msgid "WordPress core updates"
|
707 |
+
msgstr "Aktualizacje WordPressa"
|
708 |
+
|
709 |
+
#: loggers/SimpleExportLogger.php:23
|
710 |
+
msgid "Created XML export"
|
711 |
+
msgstr "Utworzono plik eksportu XML"
|
712 |
+
|
713 |
+
#: loggers/SimpleExportLogger.php:27
|
714 |
+
msgctxt "Export logger: search"
|
715 |
+
msgid "Export"
|
716 |
+
msgstr "Eksport"
|
717 |
+
|
718 |
+
#: loggers/SimpleExportLogger.php:29
|
719 |
+
msgctxt "Export logger: search"
|
720 |
+
msgid "Created exports"
|
721 |
+
msgstr "Utworzenie plików eksportu"
|
722 |
+
|
723 |
+
#: loggers/SimpleLegacyLogger.php:88
|
724 |
+
#, php-format
|
725 |
+
msgid "By %s"
|
726 |
+
msgstr "Przez %s"
|
727 |
|
728 |
+
#: loggers/SimpleLegacyLogger.php:93
|
729 |
+
#, php-format
|
730 |
+
msgid "%d occasions"
|
731 |
+
msgstr "%d więcej"
|
732 |
|
733 |
+
#: loggers/SimpleLogger.php:192
|
734 |
+
msgctxt "header output when initiator is the currently logged in user"
|
735 |
+
msgid "You"
|
736 |
+
msgstr "Ty"
|
737 |
|
738 |
+
#: loggers/SimpleLogger.php:205
|
739 |
+
#, php-format
|
740 |
+
msgid "Deleted user (had id %1$s, email %2$s, login %3$s)"
|
741 |
+
msgstr "Usunięto użytkownika (id: %1$s, e-mail: %2$s, login: %3$s)"
|
742 |
|
743 |
+
#: loggers/SimpleLogger.php:220
|
744 |
+
msgid "Anonymous web user"
|
745 |
+
msgstr "Użytkownik anonimowy"
|
746 |
|
747 |
+
#: loggers/SimpleLogger.php:228
|
748 |
+
#, php-format
|
749 |
+
msgid "Anonymous user from %1$s"
|
750 |
+
msgstr "Nieznany użytkownik z %1$s"
|
751 |
|
752 |
+
#: loggers/SimpleLogger.php:299
|
753 |
+
msgid "Just now"
|
754 |
+
msgstr "Teraz"
|
755 |
|
756 |
+
#: loggers/SimpleLogger.php:304
|
757 |
+
msgid "M j, Y \\a\\t G:i"
|
758 |
+
msgstr "Y-m-d \\o H:i"
|
759 |
|
760 |
+
#: loggers/SimpleLogger.php:312
|
761 |
+
#, php-format
|
762 |
+
msgid "%1$s ago"
|
763 |
+
msgstr "%1$s temu"
|
764 |
|
765 |
+
#: loggers/SimpleMediaLogger.php:23
|
766 |
+
msgid "Created {post_type} \"{attachment_title}\""
|
767 |
+
msgstr "Utworzono {post_type} \"{attachment_title}\""
|
768 |
+
|
769 |
+
#: loggers/SimpleMediaLogger.php:24
|
770 |
+
msgid "Edited {post_type} \"{attachment_title}\""
|
771 |
+
msgstr "Edytowano {post_type} \"{attachment_title}\""
|
772 |
+
|
773 |
+
#: loggers/SimpleMediaLogger.php:25
|
774 |
+
msgid "Deleted {post_type} \"{attachment_title}\" (\"{attachment_filename}\")"
|
775 |
+
msgstr ""
|
776 |
+
"Usunięto {post_type} \"{attachment_title}\" (\"{attachment_filename}\")"
|
777 |
+
|
778 |
+
#: loggers/SimpleMediaLogger.php:29
|
779 |
+
msgctxt "Media logger: search"
|
780 |
+
msgid "Media"
|
781 |
+
msgstr "Media"
|
782 |
+
|
783 |
+
#: loggers/SimpleMediaLogger.php:31
|
784 |
+
msgctxt "Media logger: search"
|
785 |
+
msgid "Added media"
|
786 |
+
msgstr "Dodanie medium"
|
787 |
+
|
788 |
+
#: loggers/SimpleMediaLogger.php:34
|
789 |
+
msgctxt "Media logger: search"
|
790 |
+
msgid "Updated media"
|
791 |
+
msgstr "Zaktualizowanie medium"
|
792 |
+
|
793 |
+
#: loggers/SimpleMediaLogger.php:37
|
794 |
+
msgctxt "Media logger: search"
|
795 |
+
msgid "Deleted media"
|
796 |
+
msgstr "Usunięcie medium"
|
797 |
+
|
798 |
+
#: loggers/SimpleMediaLogger.php:81
|
799 |
+
msgid "Edited {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
|
800 |
+
msgstr ""
|
801 |
+
"Edytowano {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
|
802 |
+
|
803 |
+
#: loggers/SimpleMediaLogger.php:85
|
804 |
+
msgid "Uploaded {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
|
805 |
+
msgstr ""
|
806 |
+
"Zaktualizowano {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
|
807 |
+
|
808 |
+
#: loggers/SimpleMediaLogger.php:180
|
809 |
+
msgid "{attachment_thumb}"
|
810 |
+
msgstr "{attachment_thumb}"
|
811 |
+
|
812 |
+
#: loggers/SimpleMediaLogger.php:189
|
813 |
+
msgid "{attachment_size_format}"
|
814 |
+
msgstr "{attachment_size_format}"
|
815 |
+
|
816 |
+
#: loggers/SimpleMediaLogger.php:190
|
817 |
+
msgid "{attachment_filetype_extension}"
|
818 |
+
msgstr "{attachment_filetype_extension}"
|
819 |
+
|
820 |
+
#: loggers/SimpleMediaLogger.php:192
|
821 |
+
msgid "{full_image_width} × {full_image_height}"
|
822 |
+
msgstr "{full_image_width} × {full_image_height}"
|
823 |
+
|
824 |
+
#: loggers/SimpleMenuLogger.php:23
|
825 |
+
msgid "Created menu \"{menu_name}\""
|
826 |
+
msgstr "Utworzono menu \"{menu_name}\""
|
827 |
+
|
828 |
+
#: loggers/SimpleMenuLogger.php:24
|
829 |
+
msgid "Edited menu \"{menu_name}\""
|
830 |
+
msgstr "Edytowano menu \"{menu_name}\""
|
831 |
+
|
832 |
+
#: loggers/SimpleMenuLogger.php:25
|
833 |
+
msgid "Deleted menu \"{menu_name}\""
|
834 |
+
msgstr "Usunięto menu \"{menu_name}\""
|
835 |
+
|
836 |
+
#: loggers/SimpleMenuLogger.php:26
|
837 |
+
msgid "Edited a menu item"
|
838 |
+
msgstr "Edytowano element menu"
|
839 |
+
|
840 |
+
#: loggers/SimpleMenuLogger.php:27
|
841 |
+
msgid "Updated menu locations"
|
842 |
+
msgstr "Zaktualizowano pozycję menu"
|
843 |
+
|
844 |
+
#: loggers/SimpleMenuLogger.php:31
|
845 |
+
msgctxt "Menu logger: search"
|
846 |
+
msgid "Menus"
|
847 |
+
msgstr "Menu"
|
848 |
+
|
849 |
+
#: loggers/SimpleMenuLogger.php:33
|
850 |
+
msgctxt "Menu updates logger: search"
|
851 |
+
msgid "Created menus"
|
852 |
+
msgstr "Utworzenie menu"
|
853 |
+
|
854 |
+
#: loggers/SimpleMenuLogger.php:36
|
855 |
+
msgctxt "Menu updates logger: search"
|
856 |
+
msgid "Edited menus"
|
857 |
+
msgstr "Edytowanie menu"
|
858 |
+
|
859 |
+
#: loggers/SimpleMenuLogger.php:41
|
860 |
+
msgctxt "Menu updates logger: search"
|
861 |
+
msgid "Deleted menus"
|
862 |
+
msgstr "Usunięcie menu"
|
863 |
+
|
864 |
+
#: loggers/SimpleMenuLogger.php:326
|
865 |
+
#, php-format
|
866 |
+
msgctxt "menu logger"
|
867 |
+
msgid "%1$s menu item added"
|
868 |
+
msgid_plural "%1$s menu items added"
|
869 |
+
msgstr[0] "%1$s element menu został dodany"
|
870 |
+
msgstr[1] "%1$s elementy menu zostały dodane"
|
871 |
+
msgstr[2] "%1$s elementów menu zostało dodanych"
|
872 |
+
|
873 |
+
#: loggers/SimpleMenuLogger.php:333
|
874 |
+
#, php-format
|
875 |
+
msgctxt "menu logger"
|
876 |
+
msgid "%1$s menu item removed"
|
877 |
+
msgid_plural "%1$s menu items removed"
|
878 |
+
msgstr[0] "%1$s element menu został usunięty"
|
879 |
+
msgstr[1] "%1$s elementy menu zostały usunięte"
|
880 |
+
msgstr[2] "%1$s elementów menu zostało usuniętych"
|
881 |
+
|
882 |
+
#: loggers/SimpleOptionsLogger.php:140
|
883 |
+
msgid "Updated option \"{option}\""
|
884 |
+
msgstr "Zaktualizowano opcję \"{option}\""
|
885 |
+
|
886 |
+
#: loggers/SimpleOptionsLogger.php:153
|
887 |
+
msgctxt "Options logger: search"
|
888 |
+
msgid "Options"
|
889 |
+
msgstr "Opcje"
|
890 |
+
|
891 |
+
#: loggers/SimpleOptionsLogger.php:155
|
892 |
+
msgctxt "Options logger: search"
|
893 |
+
msgid "Changed options"
|
894 |
+
msgstr "Zmiana opcji"
|
895 |
+
|
896 |
+
#: loggers/SimpleOptionsLogger.php:242 loggers/SimpleThemeLogger.php:570
|
897 |
+
msgid "New value"
|
898 |
+
msgstr "Nowa wartość"
|
899 |
+
|
900 |
+
#: loggers/SimpleOptionsLogger.php:253 loggers/SimpleThemeLogger.php:582
|
901 |
+
msgid "Old value"
|
902 |
+
msgstr "Stara wartość"
|
903 |
+
|
904 |
+
#: loggers/SimpleOptionsLogger.php:268 loggers/SimpleOptionsLogger.php:285
|
905 |
+
msgid "Settings page"
|
906 |
+
msgstr "Strona ustawień"
|
907 |
+
|
908 |
+
#: loggers/SimplePluginLogger.php:52
|
909 |
+
msgctxt "Plugin was non-silently activated by a user"
|
910 |
+
msgid "Activated plugin \"{plugin_name}\""
|
911 |
+
msgstr "Załączono wtyczkę \"{plugin_name}\""
|
912 |
+
|
913 |
+
#: loggers/SimplePluginLogger.php:58
|
914 |
+
msgctxt "Plugin was non-silently deactivated by a user"
|
915 |
+
msgid "Deactivated plugin \"{plugin_name}\""
|
916 |
+
msgstr "Wyłączono wtyczkę \"{plugin_name}\""
|
917 |
+
|
918 |
+
#: loggers/SimplePluginLogger.php:64
|
919 |
+
msgctxt "Plugin was installed"
|
920 |
+
msgid "Installed plugin \"{plugin_name}\""
|
921 |
+
msgstr "Zainstalowano wtyczkę \"{plugin_name}\""
|
922 |
+
|
923 |
+
#: loggers/SimplePluginLogger.php:70
|
924 |
+
msgctxt "Plugin failed to install"
|
925 |
+
msgid "Failed to install plugin \"{plugin_name}\""
|
926 |
+
msgstr "Nie udało się zainstalować wtyczki \"{plugin_name}\""
|
927 |
+
|
928 |
+
#: loggers/SimplePluginLogger.php:76
|
929 |
+
msgctxt "Plugin was updated"
|
930 |
+
msgid ""
|
931 |
+
"Updated plugin \"{plugin_name}\" to version {plugin_version} from "
|
932 |
+
"{plugin_prev_version}"
|
933 |
msgstr ""
|
934 |
+
"Zaktualizowano wtyczkę \"{plugin_name}\" z wersji {plugin_prev_version} do "
|
935 |
+
"{plugin_version}"
|
936 |
|
937 |
+
#: loggers/SimplePluginLogger.php:82
|
938 |
+
msgctxt "Plugin update failed"
|
939 |
+
msgid "Updated plugin \"{plugin_name}\""
|
940 |
+
msgstr "Zaktualizowano wtyczkę \"{plugin_name}\""
|
941 |
|
942 |
+
#: loggers/SimplePluginLogger.php:88
|
943 |
+
msgctxt "Plugin file edited"
|
944 |
+
msgid "Edited plugin file \"{plugin_edited_file}\""
|
945 |
+
msgstr "Edytowano plik wtyczki \"{plugin_edited_file}\""
|
946 |
|
947 |
+
#: loggers/SimplePluginLogger.php:94
|
948 |
+
msgctxt "Plugin files was deleted"
|
949 |
+
msgid "Deleted plugin \"{plugin_name}\""
|
950 |
+
msgstr "Usunięto wtyczkę \"{plugin_name}\""
|
951 |
|
952 |
+
#: loggers/SimplePluginLogger.php:101
|
953 |
+
msgctxt "Plugin was updated in bulk"
|
954 |
+
msgid ""
|
955 |
+
"Updated plugin \"{plugin_name}\" to {plugin_version} from "
|
956 |
+
"{plugin_prev_version}"
|
957 |
+
msgstr ""
|
958 |
+
"Zaktualizowano wtyczkę \"{plugin_name}\" z wersji {plugin_prev_version} do "
|
959 |
+
"{plugin_version}"
|
960 |
+
|
961 |
+
#: loggers/SimplePluginLogger.php:108
|
962 |
+
msgctxt "Plugin logger: search"
|
963 |
+
msgid "Plugins"
|
964 |
+
msgstr "Wtyczki"
|
965 |
+
|
966 |
+
#: loggers/SimplePluginLogger.php:110
|
967 |
+
msgctxt "Plugin logger: search"
|
968 |
+
msgid "Activated plugins"
|
969 |
+
msgstr "Załączenie wtyczek"
|
970 |
+
|
971 |
+
#: loggers/SimplePluginLogger.php:113
|
972 |
+
msgctxt "Plugin logger: search"
|
973 |
+
msgid "Deactivated plugins"
|
974 |
+
msgstr "Wyłączenie wtyczkek"
|
975 |
+
|
976 |
+
#: loggers/SimplePluginLogger.php:116
|
977 |
+
msgctxt "Plugin logger: search"
|
978 |
+
msgid "Installed plugins"
|
979 |
+
msgstr "Instalacje wtyczek"
|
980 |
+
|
981 |
+
#: loggers/SimplePluginLogger.php:119
|
982 |
+
msgctxt "Plugin logger: search"
|
983 |
+
msgid "Failed plugin installs"
|
984 |
+
msgstr "Nieudane instalacje wtyczek"
|
985 |
+
|
986 |
+
#: loggers/SimplePluginLogger.php:122
|
987 |
+
msgctxt "Plugin logger: search"
|
988 |
+
msgid "Updated plugins"
|
989 |
+
msgstr "Zaktualizowanie wtyczek"
|
990 |
+
|
991 |
+
#: loggers/SimplePluginLogger.php:126
|
992 |
+
msgctxt "Plugin logger: search"
|
993 |
+
msgid "Failed plugin updates"
|
994 |
+
msgstr "Nieudane zaktualizowanie wtyczek"
|
995 |
+
|
996 |
+
#: loggers/SimplePluginLogger.php:129
|
997 |
+
msgctxt "Plugin logger: search"
|
998 |
+
msgid "Edited plugin files"
|
999 |
+
msgstr "Edycja plików wtyczek"
|
1000 |
+
|
1001 |
+
#: loggers/SimplePluginLogger.php:132
|
1002 |
+
msgctxt "Plugin logger: search"
|
1003 |
+
msgid "Deleted plugins"
|
1004 |
+
msgstr "Usunięcie wtyczek"
|
1005 |
+
|
1006 |
+
#: loggers/SimplePluginLogger.php:858
|
1007 |
+
msgctxt "plugin logger - detailed output version"
|
1008 |
+
msgid "Version"
|
1009 |
+
msgstr "Wersja"
|
1010 |
+
|
1011 |
+
#: loggers/SimplePluginLogger.php:860
|
1012 |
+
msgctxt "plugin logger - detailed output author"
|
1013 |
+
msgid "Author"
|
1014 |
+
msgstr "Autor"
|
1015 |
+
|
1016 |
+
#: loggers/SimplePluginLogger.php:861
|
1017 |
+
msgctxt "plugin logger - detailed output url"
|
1018 |
+
msgid "URL"
|
1019 |
+
msgstr "Adres URL"
|
1020 |
+
|
1021 |
+
#: loggers/SimplePluginLogger.php:862
|
1022 |
+
msgctxt "plugin logger - detailed output author"
|
1023 |
+
msgid "Requires"
|
1024 |
+
msgstr "Wymagania"
|
1025 |
+
|
1026 |
+
#: loggers/SimplePluginLogger.php:863
|
1027 |
+
msgctxt "plugin logger - detailed output compatible"
|
1028 |
+
msgid "Compatible up to"
|
1029 |
+
msgstr "Kompatybilna do"
|
1030 |
+
|
1031 |
+
#: loggers/SimplePluginLogger.php:864
|
1032 |
+
msgctxt "plugin logger - detailed output downloaded"
|
1033 |
+
msgid "Downloads"
|
1034 |
+
msgstr "Pobrania"
|
1035 |
+
|
1036 |
+
#: loggers/SimplePostLogger.php:30
|
1037 |
+
msgid "Created {post_type} \"{post_title}\""
|
1038 |
+
msgstr "Utworzono {post_type} \"{post_title}\""
|
1039 |
+
|
1040 |
+
#: loggers/SimplePostLogger.php:31
|
1041 |
+
msgid "Updated {post_type} \"{post_title}\""
|
1042 |
+
msgstr "Zaktualizowano {post_type} \"{post_title}\""
|
1043 |
+
|
1044 |
+
#: loggers/SimplePostLogger.php:32
|
1045 |
+
msgid "Restored {post_type} \"{post_title}\" from trash"
|
1046 |
+
msgstr "Przywrócono {post_type} \"{post_title}\" z Kosza"
|
1047 |
+
|
1048 |
+
#: loggers/SimplePostLogger.php:33 loggers/SimplePostLogger.php:236
|
1049 |
+
msgid "Deleted {post_type} \"{post_title}\""
|
1050 |
+
msgstr "Usunięto {post_type} \"{post_title}\""
|
1051 |
+
|
1052 |
+
#: loggers/SimplePostLogger.php:34
|
1053 |
+
msgid "Moved {post_type} \"{post_title}\" to the trash"
|
1054 |
+
msgstr "Przeniesiono {post_type} \"{post_title}\" do Kosza"
|
1055 |
+
|
1056 |
+
#: loggers/SimplePostLogger.php:38
|
1057 |
+
msgctxt "Post logger: search"
|
1058 |
+
msgid "Posts & Pages"
|
1059 |
+
msgstr "Wpisy i Strony"
|
1060 |
+
|
1061 |
+
#: loggers/SimplePostLogger.php:40
|
1062 |
+
msgctxt "Post logger: search"
|
1063 |
+
msgid "Posts created"
|
1064 |
+
msgstr "Dodanie wpisów"
|
1065 |
+
|
1066 |
+
#: loggers/SimplePostLogger.php:43
|
1067 |
+
msgctxt "Post logger: search"
|
1068 |
+
msgid "Posts updated"
|
1069 |
+
msgstr "Aktualizacja wpisów"
|
1070 |
+
|
1071 |
+
#: loggers/SimplePostLogger.php:46
|
1072 |
+
msgctxt "Post logger: search"
|
1073 |
+
msgid "Posts trashed"
|
1074 |
+
msgstr "Przeniesienie wpisów do Kosza"
|
1075 |
+
|
1076 |
+
#: loggers/SimplePostLogger.php:49
|
1077 |
+
msgctxt "Post logger: search"
|
1078 |
+
msgid "Posts deleted"
|
1079 |
+
msgstr "Usunięcie wpisów"
|
1080 |
+
|
1081 |
+
#: loggers/SimplePostLogger.php:52
|
1082 |
+
msgctxt "Post logger: search"
|
1083 |
+
msgid "Posts restored"
|
1084 |
+
msgstr "Przywrócenie wpisów z Kosza"
|
1085 |
+
|
1086 |
+
#: loggers/SimplePostLogger.php:232
|
1087 |
+
msgid "Updated {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a>"
|
1088 |
+
msgstr ""
|
1089 |
+
"Zaktualizowano {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a>"
|
1090 |
+
|
1091 |
+
#: loggers/SimplePostLogger.php:240
|
1092 |
+
msgid "Created {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a>"
|
1093 |
+
msgstr "Utworzono {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a>"
|
1094 |
+
|
1095 |
+
#: loggers/SimplePostLogger.php:245
|
1096 |
+
msgid ""
|
1097 |
+
"Moved {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a> to the trash"
|
1098 |
msgstr ""
|
1099 |
+
"Przeniesiono {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a> do "
|
1100 |
+
"Kosza"
|
1101 |
|
1102 |
+
#: loggers/SimpleThemeLogger.php:26
|
1103 |
+
msgid "Switched theme to \"{theme_name}\" from \"{prev_theme_name}\""
|
1104 |
+
msgstr "Przełączono motyw z \"{theme_name}\" na \"{prev_theme_name}\""
|
1105 |
|
1106 |
+
#: loggers/SimpleThemeLogger.php:27
|
1107 |
+
msgid "Customized theme appearance \"{setting_id}\""
|
1108 |
+
msgstr "Zmieniono ustawienia motywu \"{setting_id}\""
|
1109 |
|
1110 |
+
#: loggers/SimpleThemeLogger.php:28
|
1111 |
+
msgid "Removed widget \"{widget_id_base}\" from sidebar \"{sidebar_id}\""
|
1112 |
msgstr ""
|
1113 |
+
"Usunięto widżet \"{widget_id_base}\" z panelu bocznego \"{sidebar_id}\""
|
1114 |
|
1115 |
+
#: loggers/SimpleThemeLogger.php:29
|
1116 |
+
msgid "Added widget \"{widget_id_base}\" to sidebar \"{sidebar_id}\""
|
1117 |
+
msgstr "Dodano widżet \"{widget_id_base}\" do panelu bocznego \"{sidebar_id}\""
|
1118 |
|
1119 |
+
#: loggers/SimpleThemeLogger.php:30
|
1120 |
+
msgid "Changed widget order \"{widget_id_base}\" in sidebar \"{sidebar_id}\""
|
1121 |
msgstr ""
|
1122 |
+
"Zmienino kolejność widżetu \"{widget_id_base}\" w panelu bocznym "
|
1123 |
+
"\"{sidebar_id}\""
|
1124 |
|
1125 |
+
#: loggers/SimpleThemeLogger.php:31
|
1126 |
+
msgid "Changed widget \"{widget_id_base}\" in sidebar \"{sidebar_id}\""
|
1127 |
+
msgstr "Zmienono widżet \"{widget_id_base}\" w panelu bocznym \"{sidebar_id}\""
|
1128 |
|
1129 |
+
#: loggers/SimpleThemeLogger.php:32
|
1130 |
+
msgid "Changed settings for the theme custom background"
|
1131 |
+
msgstr "Zmieniono ustawienia dotyczące tła motywu"
|
1132 |
|
1133 |
+
#: loggers/SimpleThemeLogger.php:36
|
1134 |
+
msgctxt "Theme logger: search"
|
1135 |
+
msgid "Themes & Widgets"
|
1136 |
+
msgstr "Motywy i Widżety"
|
1137 |
|
1138 |
+
#: loggers/SimpleThemeLogger.php:38
|
1139 |
+
msgctxt "Theme logger: search"
|
1140 |
+
msgid "Switched themes"
|
1141 |
+
msgstr "Zmiany motywów"
|
1142 |
|
1143 |
+
#: loggers/SimpleThemeLogger.php:41
|
1144 |
+
msgctxt "Theme logger: search"
|
1145 |
+
msgid "Changed appearance of themes"
|
1146 |
+
msgstr "Zmiany wyglądu motywów"
|
1147 |
|
1148 |
+
#: loggers/SimpleThemeLogger.php:44
|
1149 |
+
msgctxt "Theme logger: search"
|
1150 |
+
msgid "Added widgets"
|
1151 |
+
msgstr "Dodanie widżetów"
|
1152 |
|
1153 |
+
#: loggers/SimpleThemeLogger.php:47
|
1154 |
+
msgctxt "Theme logger: search"
|
1155 |
+
msgid "Removed widgets"
|
1156 |
+
msgstr "Usunięcie widżetów"
|
1157 |
|
1158 |
+
#: loggers/SimpleThemeLogger.php:50
|
1159 |
+
msgctxt "Theme logger: search"
|
1160 |
+
msgid "Changed widgets order"
|
1161 |
+
msgstr "Zmiana kolejności widżetów"
|
1162 |
|
1163 |
+
#: loggers/SimpleThemeLogger.php:53
|
1164 |
+
msgctxt "Theme logger: search"
|
1165 |
+
msgid "Edited widgets"
|
1166 |
+
msgstr "Edycje widżetów"
|
1167 |
|
1168 |
+
#: loggers/SimpleThemeLogger.php:56
|
1169 |
+
msgctxt "Theme logger: search"
|
1170 |
+
msgid "Background of themes changed"
|
1171 |
+
msgstr "Zmiany tła motywów"
|
1172 |
|
1173 |
+
#: loggers/SimpleThemeLogger.php:532
|
1174 |
+
msgid "Section"
|
1175 |
+
msgstr "Sekcja"
|
1176 |
|
1177 |
+
#: loggers/SimpleUserLogger.php:23
|
1178 |
+
msgid ""
|
1179 |
+
"Failed to login to account with username \"{login_user_login}\" because an "
|
1180 |
+
"incorrect password was entered"
|
1181 |
msgstr ""
|
1182 |
+
"Wystąpił błąd logowania użytkownika z loginem \"{login_user_login}\" z "
|
1183 |
+
"powodu wpisania błędnego hasła"
|
1184 |
|
1185 |
+
#: loggers/SimpleUserLogger.php:24
|
1186 |
+
msgid ""
|
1187 |
+
"Failed to login with username \"{failed_login_username}\" because no user "
|
1188 |
+
"with that username exist"
|
1189 |
msgstr ""
|
1190 |
+
"Wystąpił błąd logowania z wykorzystaniem loginu \"{login_user_login}\" "
|
1191 |
+
"ponieważ taki nie istnieje"
|
1192 |
|
1193 |
+
#: loggers/SimpleUserLogger.php:25
|
1194 |
+
msgid "Logged in"
|
1195 |
+
msgstr "Zalogowano"
|
1196 |
|
1197 |
+
#: loggers/SimpleUserLogger.php:26
|
1198 |
+
msgid "Unknown user logged in"
|
1199 |
+
msgstr "Zalogował się nieznany użytkownik"
|
1200 |
|
1201 |
+
#: loggers/SimpleUserLogger.php:27
|
1202 |
+
msgid "Logged out"
|
1203 |
+
msgstr "Wylogowano"
|
1204 |
|
1205 |
+
#: loggers/SimpleUserLogger.php:28
|
1206 |
+
msgid "Edited the profile for user {edited_user_login} ({edited_user_email})"
|
1207 |
+
msgstr "Edytowano profil użytkownika {edited_user_login} ({edited_user_email})"
|
1208 |
|
1209 |
+
#: loggers/SimpleUserLogger.php:29
|
1210 |
+
msgid ""
|
1211 |
+
"Created user {created_user_login} ({created_user_email}) with role "
|
1212 |
+
"{created_user_role}"
|
1213 |
+
msgstr ""
|
1214 |
+
"Utworzono użytkonika {created_user_login} ({created_user_email}) z rolą "
|
1215 |
+
"{created_user_role}"
|
1216 |
+
|
1217 |
+
#: loggers/SimpleUserLogger.php:30
|
1218 |
+
msgid "Deleted user {deleted_user_login} ({deleted_user_email})"
|
1219 |
+
msgstr "Usunięto użytkonika {deleted_user_login} ({deleted_user_email})"
|
1220 |
+
|
1221 |
+
#: loggers/SimpleUserLogger.php:38
|
1222 |
+
msgctxt "User destroys other login sessions for themself"
|
1223 |
+
msgid "Logged out from all other sessions"
|
1224 |
+
msgstr "Wylogowano z pozostałych sesji"
|
1225 |
+
|
1226 |
+
#: loggers/SimpleUserLogger.php:47
|
1227 |
+
msgctxt "User destroys all login sessions for a user"
|
1228 |
+
msgid "Logged out \"{user_display_name}\" from all sessions"
|
1229 |
+
msgstr "Wylogowano użytkownika \"{user_display_name}\" z pozostałch sesji"
|
1230 |
+
|
1231 |
+
#: loggers/SimpleUserLogger.php:55
|
1232 |
+
msgctxt "User logger: search"
|
1233 |
+
msgid "Users"
|
1234 |
+
msgstr "Użytkownicy"
|
1235 |
+
|
1236 |
+
#: loggers/SimpleUserLogger.php:56
|
1237 |
+
msgctxt "User logger: search"
|
1238 |
+
msgid "All user activity"
|
1239 |
+
msgstr "Aktywność użytkowniów"
|
1240 |
+
|
1241 |
+
#: loggers/SimpleUserLogger.php:58
|
1242 |
+
msgctxt "User logger: search"
|
1243 |
+
msgid "Successful user logins"
|
1244 |
+
msgstr "Udane logowania"
|
1245 |
+
|
1246 |
+
#: loggers/SimpleUserLogger.php:62
|
1247 |
+
msgctxt "User logger: search"
|
1248 |
+
msgid "Failed user logins"
|
1249 |
+
msgstr "Nieudane logowania"
|
1250 |
+
|
1251 |
+
#: loggers/SimpleUserLogger.php:66
|
1252 |
+
msgctxt "User logger: search"
|
1253 |
+
msgid "User logouts"
|
1254 |
+
msgstr "Wylogowania"
|
1255 |
+
|
1256 |
+
#: loggers/SimpleUserLogger.php:69
|
1257 |
+
msgctxt "User logger: search"
|
1258 |
+
msgid "Created users"
|
1259 |
+
msgstr "Dodanie użytkowników"
|
1260 |
+
|
1261 |
+
#: loggers/SimpleUserLogger.php:72
|
1262 |
+
msgctxt "User logger: search"
|
1263 |
+
msgid "User profile updates"
|
1264 |
+
msgstr "Aktualizacje profilów użytkowników"
|
1265 |
+
|
1266 |
+
#: loggers/SimpleUserLogger.php:75
|
1267 |
+
msgctxt "User logger: search"
|
1268 |
+
msgid "User deletions"
|
1269 |
+
msgstr "Usunięcie użytkowników"
|
1270 |
+
|
1271 |
+
#: loggers/SimpleUserLogger.php:229
|
1272 |
+
msgid "Edited <a href=\"{edit_profile_link}\">your profile</a>"
|
1273 |
+
msgstr "Edytowano <a href=\"{edit_profile_link}\">Twój profil</a>"
|
1274 |
+
|
1275 |
+
#: loggers/SimpleUserLogger.php:233
|
1276 |
+
msgid "Edited <a href=\"{edit_profile_link}\">their profile</a>"
|
1277 |
+
msgstr "Edytowano <a href=\"{edit_profile_link}\">jego profil</a>"
|
1278 |
+
|
1279 |
+
#: loggers/SimpleUserLogger.php:242
|
1280 |
+
msgid "Edited your profile"
|
1281 |
+
msgstr "Edycja Twojego profilu"
|
1282 |
+
|
1283 |
+
#: loggers/SimpleUserLogger.php:253
|
1284 |
+
msgid ""
|
1285 |
+
"Edited the profile for user <a href="
|
1286 |
+
"\"{edit_profile_link}\">{edited_user_login} ({edited_user_email})</a>"
|
1287 |
msgstr ""
|
1288 |
+
"Edytowano profil użytkownika <a href="
|
1289 |
+
"\"{edit_profile_link}\">{edited_user_login} ({edited_user_email})</a>"
|
1290 |
|
1291 |
+
#: templates/settings-statsIntro.php:19
|
1292 |
+
#, php-format
|
1293 |
+
msgid "<b>%1$s rows</b> have been logged the last <b>%2$s days</b>"
|
1294 |
+
msgstr ""
|
1295 |
+
"<b>%1$s zdarzeń</b> zostało zalogowanych w ostatnich <b>%2$s dniach</b>"
|
1296 |
+
|
1297 |
+
#: templates/settings-statsLogLevels.php:4
|
1298 |
+
msgid "Log levels"
|
1299 |
+
msgstr "Poziomy zdarzeń"
|
1300 |
+
|
1301 |
+
#: templates/settings-statsLogLevels.php:6
|
1302 |
+
msgid "Number of rows logged for each log level."
|
1303 |
+
msgstr "Liczba zdarzeń zalogowanych dla każdego poziomu logowania."
|
1304 |
+
|
1305 |
+
#: templates/settings-statsLoggers.php:4
|
1306 |
+
msgid "Loggers"
|
1307 |
+
msgstr "Moduły logowania zdarzeń"
|
1308 |
+
|
1309 |
+
#: templates/settings-statsRowsPerDay.php:4
|
1310 |
+
msgid "Rows per day"
|
1311 |
+
msgstr "Zdarzenia na dzień"
|
1312 |
+
|
1313 |
+
#: templates/settings-statsRowsPerDay.php:36
|
1314 |
+
msgctxt "stats: date in rows per day chart"
|
1315 |
+
msgid "M j"
|
1316 |
+
msgstr "d.m.Y \\o H:i"
|
1317 |
|
1318 |
+
#: templates/settings-statsUsers.php:4
|
1319 |
+
msgid "Users"
|
1320 |
+
msgstr "Użytkownicy"
|
1321 |
|
1322 |
+
#: templates/settings-statsUsers.php:6
|
1323 |
+
msgid "Number of logged items for the 5 users with most logged rows."
|
1324 |
msgstr ""
|
1325 |
+
"Liczba zalogowanych zdarzeń dla 5 użytkowników z największą liczbą zdarzeń."
|
1326 |
|
1327 |
+
#: templates/settings-statsUsers.php:7
|
1328 |
+
msgid "Deleted users are also included."
|
1329 |
+
msgstr "Usunięci użytkownicy również zostali uwzględnieni."
|
1330 |
|
1331 |
+
#~ msgid "added"
|
1332 |
+
#~ msgstr "dodano"
|
|
|
1333 |
|
1334 |
+
#~ msgid "unapproved"
|
1335 |
+
#~ msgstr "niezatwierdzony"
|
|
|
1336 |
|
1337 |
+
#~ msgid "marked as spam"
|
1338 |
+
#~ msgstr "oznaczony jako spam"
|
|
|
1339 |
|
1340 |
+
#~ msgid "untrashed"
|
1341 |
+
#~ msgstr "przywrócono z kosza"
|
|
|
1342 |
|
1343 |
+
#~ msgid "nav_menu_item"
|
1344 |
+
#~ msgstr "element menu"
|
|
|
1345 |
|
1346 |
+
#~ msgid "user"
|
1347 |
+
#~ msgstr "użytkownik"
|
|
|
1348 |
|
1349 |
+
#~ msgid "edited"
|
1350 |
+
#~ msgstr "edytowano"
|
|
|
1351 |
|
1352 |
+
#~ msgid "modified"
|
1353 |
+
#~ msgstr "zmienono"
|
|
|
1354 |
|
1355 |
+
#~ msgid "upgraded it\\'s database"
|
1356 |
+
#~ msgstr "zaktualizował swoją bazę danych"
|
|
|
1357 |
|
1358 |
+
#~ msgid "History"
|
1359 |
+
#~ msgstr "Historia"
|
|
|
1360 |
|
1361 |
+
#~ msgid "failed to log in because they entered the wrong password"
|
1362 |
+
#~ msgstr ""
|
1363 |
+
#~ "nie umiał(-a) się zalogować, ponieważ wpisywane hasło było niepoprawne"
|
1364 |
|
1365 |
+
#~ msgid "One item"
|
1366 |
+
#~ msgid_plural "%1$d items"
|
1367 |
+
#~ msgstr[0] "1 element"
|
1368 |
+
#~ msgstr[1] "%1$d elementy"
|
1369 |
+
#~ msgstr[2] "%1$d elementów"
|
1370 |
|
1371 |
+
#~ msgid "Clear it now."
|
1372 |
+
#~ msgstr "Wyczyść teraz."
|
|
|
1373 |
|
1374 |
+
#~ msgid ""
|
1375 |
+
#~ "\n"
|
1376 |
+
#~ "\t\t\tPlease\n"
|
1377 |
+
#~ "\t\t\t<a href=\"http://eskapism.se/sida/donate/?"
|
1378 |
+
#~ "utm_source=wordpress&utm_medium=settingpage&utm_campaign=simplehistory"
|
1379 |
+
#~ "\">\n"
|
1380 |
+
#~ "\t\t\tdonate\n"
|
1381 |
+
#~ "\t\t\t</a> to support the development of this plugin and to keep it "
|
1382 |
+
#~ "free.\n"
|
1383 |
+
#~ "\t\t\tThanks!\n"
|
1384 |
+
#~ "\t\t\t"
|
1385 |
+
#~ msgstr ""
|
1386 |
+
#~ "\n"
|
1387 |
+
#~ "\t\t\tProsimy\n"
|
1388 |
+
#~ "\t\t\t<a href=\"http://eskapism.se/sida/donate/?"
|
1389 |
+
#~ "utm_source=wordpress&utm_medium=settingpage&utm_campaign=simplehistory"
|
1390 |
+
#~ "\">\n"
|
1391 |
+
#~ "\t\t\to wsparcie\n"
|
1392 |
+
#~ "\t\t\t</a> procesu tworzenia wtyczki.\n"
|
1393 |
+
#~ "\t\t\tDzięki!!\n"
|
1394 |
+
#~ "\t\t\t"
|
1395 |
|
1396 |
+
#~ msgid ""
|
1397 |
+
#~ "This is a secret RSS feed for Simple History. Only share the link with "
|
1398 |
+
#~ "people you trust"
|
1399 |
+
#~ msgstr ""
|
1400 |
+
#~ "To jest sekretny link do kanału RSS Historii zdarzeń. Nie publikuj go "
|
1401 |
+
#~ "nigdzie."
|
1402 |
|
1403 |
+
#~ msgid "Search"
|
1404 |
+
#~ msgstr "Szukaj"
|
|
|
1405 |
|
1406 |
+
#~ msgid "File name:"
|
1407 |
+
#~ msgstr "Nazwa pliku:"
|
|
|
1408 |
|
1409 |
+
#~ msgid "File size:"
|
1410 |
+
#~ msgstr "Rozmiar pliku:"
|
|
|
1411 |
|
1412 |
+
#~ msgid "enabled"
|
1413 |
+
#~ msgstr "włączono"
|
|
|
1414 |
|
1415 |
+
#~ msgid "disabled"
|
1416 |
+
#~ msgstr "wyłączono"
|
|
|
1417 |
|
1418 |
+
#~ msgid "<span class=\"when\">%1$s ago</span> by %2$s"
|
1419 |
+
#~ msgstr "<span class=\"when\">%1$s temu</span> przez %2$s"
|
|
|
1420 |
|
1421 |
+
#~ msgid "%s at %s"
|
1422 |
+
#~ msgstr "%s o %s"
|
|
|
|
|
|
|
1423 |
|
1424 |
+
#~ msgid "Details"
|
1425 |
+
#~ msgstr "Szczegóły"
|
|
|
1426 |
|
1427 |
+
#~ msgid "+ %d occasions"
|
1428 |
+
#~ msgstr "+ %d więcej"
|
|
|
1429 |
|
1430 |
+
#~ msgid "%s ago (%s at %s)"
|
1431 |
+
#~ msgstr "%s temu (%s o %s)"
|
|
|
1432 |
|
1433 |
+
#~ msgid "Show 5 more"
|
1434 |
+
#~ msgstr "Pokaż 5 więcej"
|
1435 |
+
|
1436 |
+
#~ msgid "Show 50 more"
|
1437 |
+
#~ msgstr "Pokaż 50 więcej"
|
1438 |
+
|
1439 |
+
#~ msgid "Show 100 more"
|
1440 |
+
#~ msgstr "Pokaż 100 więcej"
|
1441 |
+
|
1442 |
+
#~ msgid "No matching items found."
|
1443 |
+
#~ msgstr "Brak pasujących wyników"
|
1444 |
+
|
1445 |
+
#~ msgid "Show"
|
1446 |
+
#~ msgstr "Pokaż"
|
1447 |
+
|
1448 |
+
#~ msgid "No history items found."
|
1449 |
+
#~ msgstr "Nie ma elementów w historii."
|
1450 |
+
|
1451 |
+
#~ msgid "General Settings"
|
1452 |
+
#~ msgstr "Ustawienia ogólne"
|
1453 |
+
|
1454 |
+
#~ msgid "Writing Settings"
|
1455 |
+
#~ msgstr "Ustawienia pisania"
|
1456 |
+
|
1457 |
+
#~ msgid "Reading Settings"
|
1458 |
+
#~ msgstr "Ustawienia czytania"
|
1459 |
+
|
1460 |
+
#~ msgid "Discussion Settings"
|
1461 |
+
#~ msgstr "Ustawienia dyskusji"
|
1462 |
+
|
1463 |
+
#~ msgid "Media Settings"
|
1464 |
+
#~ msgstr "Ustawienia mediów"
|
1465 |
+
|
1466 |
+
#~ msgid "Privacy Settings"
|
1467 |
+
#~ msgstr "Ustawienia prywatności"
|
1468 |
+
|
1469 |
+
#~ msgid "Permalink Settings"
|
1470 |
+
#~ msgstr "Ustawienia odnośników bezpośrednich"
|
1471 |
+
|
1472 |
+
#~ msgid "Log events for the %s plugin."
|
1473 |
+
#~ msgstr "Loguj zdarzenia dla wtyczki: %s."
|
1474 |
+
|
1475 |
+
#~ msgid "Simple History Extender Modules"
|
1476 |
+
#~ msgstr "Historia zdarzeń - moduły rozszerzeń"
|
1477 |
+
|
1478 |
+
#~ msgid ""
|
1479 |
+
#~ "Activate or deactivate the events you want to log. Read the Help tab if "
|
1480 |
+
#~ "you want to know which actions are supported and which aren't."
|
1481 |
+
#~ msgstr ""
|
1482 |
+
#~ "Zaznacz te zdarzenia, które mają być zapisywane w historii. Otwórz "
|
1483 |
+
#~ "zakładnkę Pomoc u góry ekranu, aby dowiedzieć się jakie akcje są "
|
1484 |
+
#~ "wspierane w ramach danego rozszerzenia."
|
1485 |
|
1486 |
+
#~ msgid "Simple History Extender Module"
|
1487 |
+
#~ msgstr "Historia zdarzeń - moduł rozszerzeń"
|
|
languages/simple-history-sv_SE.mo
CHANGED
Binary file
|
languages/simple-history-sv_SE.po
CHANGED
@@ -4,15 +4,15 @@ msgid ""
|
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: Simple History 2\n"
|
6 |
"Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/Simple-History\n"
|
7 |
-
"POT-Creation-Date:
|
8 |
-
"PO-Revision-Date:
|
9 |
"Last-Translator: Pär Thernström <par.thernstrom@gmail.com>\n"
|
10 |
"Language-Team: \n"
|
11 |
"Language: sv\n"
|
12 |
"MIME-Version: 1.0\n"
|
13 |
"Content-Type: text/plain; charset=UTF-8\n"
|
14 |
"Content-Transfer-Encoding: 8bit\n"
|
15 |
-
"X-Generator: Poedit 1.7.
|
16 |
"X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;"
|
17 |
"_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;"
|
18 |
"esc_html_x:1,2c\n"
|
@@ -22,134 +22,157 @@ msgstr ""
|
|
22 |
"X-Textdomain-Support: yes\n"
|
23 |
"X-Poedit-SearchPath-0: .\n"
|
24 |
|
25 |
-
#: SimpleHistory.php:
|
26 |
msgid "Settings"
|
27 |
msgstr "Inställningar"
|
28 |
|
29 |
-
#: SimpleHistory.php:
|
30 |
msgid "Log (debug)"
|
31 |
msgstr "Logg (debug)"
|
32 |
|
33 |
-
#: SimpleHistory.php:
|
34 |
msgid "Styles example (debug)"
|
35 |
msgstr "Stilexempel (debug)"
|
36 |
|
37 |
-
|
38 |
-
|
39 |
-
|
|
|
40 |
|
41 |
-
#: SimpleHistory.php:
|
42 |
msgid "Remove all log items?"
|
43 |
msgstr "Ta bort alla händelser?"
|
44 |
|
45 |
-
#: SimpleHistory.php:
|
46 |
msgid "Go to the first page"
|
47 |
msgstr "Gå till första sidan"
|
48 |
|
49 |
-
#: SimpleHistory.php:
|
50 |
msgid "Go to the previous page"
|
51 |
msgstr "Gå till föregående sida"
|
52 |
|
53 |
-
#: SimpleHistory.php:
|
54 |
msgid "Go to the next page"
|
55 |
msgstr "Gå till nästa sida"
|
56 |
|
57 |
-
#: SimpleHistory.php:
|
58 |
msgid "Go to the last page"
|
59 |
msgstr "Gå till sista sidan"
|
60 |
|
61 |
-
#: SimpleHistory.php:
|
62 |
msgid "Current page"
|
63 |
msgstr "Aktuell sida"
|
64 |
|
65 |
-
#: SimpleHistory.php:
|
66 |
msgid "Oups, the log could not be loaded right now."
|
67 |
msgstr "Hoppsan, historiken kunde inte laddas just nu."
|
68 |
|
69 |
-
#: SimpleHistory.php:
|
70 |
msgid "Your search did not match any history events."
|
71 |
msgstr "Din sökning matchade inte några händelser i historiken."
|
72 |
|
73 |
-
#: SimpleHistory.php:
|
74 |
msgid "Simple History Settings"
|
75 |
msgstr "Inställningar för Simple History"
|
76 |
|
77 |
-
#: SimpleHistory.php:
|
78 |
msgid "No valid callback found"
|
79 |
msgstr "Inget giltigt callback hittades."
|
80 |
|
81 |
-
#: SimpleHistory.php:
|
82 |
msgid "Cleared database"
|
83 |
msgstr "Databasen rensades"
|
84 |
|
85 |
-
#: SimpleHistory.php:
|
86 |
msgid "Show history"
|
87 |
msgstr "Visa historik"
|
88 |
|
89 |
-
#: SimpleHistory.php:
|
90 |
msgid "Number of items per page"
|
91 |
msgstr "Antal händelser per sida"
|
92 |
|
93 |
-
#: SimpleHistory.php:
|
94 |
msgid "Clear log"
|
95 |
msgstr "Rensa logg"
|
96 |
|
97 |
-
#: SimpleHistory.php:
|
98 |
msgid "on the dashboard"
|
99 |
msgstr "i panelen"
|
100 |
|
101 |
-
#: SimpleHistory.php:
|
102 |
msgid "as a page under the dashboard menu"
|
103 |
msgstr "som en sida under panel-menyn"
|
104 |
|
105 |
-
#: SimpleHistory.php:
|
106 |
msgid "Items in the database are automatically removed after %1$s days."
|
107 |
msgstr "Händelser i databasen tas automatiskt bort efter %1$s dagar."
|
108 |
|
109 |
-
#: SimpleHistory.php:
|
110 |
msgid "Items in the database are kept forever."
|
111 |
msgstr "Händelser i databasen lagras för evigt."
|
112 |
|
113 |
-
#: SimpleHistory.php:
|
114 |
msgid "Clear log now"
|
115 |
msgstr "Rensa loggen nu"
|
116 |
|
117 |
-
#: SimpleHistory.php:
|
118 |
-
msgid "
|
119 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
120 |
|
121 |
-
#: SimpleHistory.php:
|
122 |
msgid "Loading…"
|
123 |
msgstr "Laddar historik..."
|
124 |
|
125 |
-
#: SimpleHistory.php:
|
126 |
msgid "Showing %1$s more"
|
127 |
msgstr "+%1$s fler"
|
128 |
|
129 |
-
#: SimpleHistory.php:
|
130 |
msgid "Context data"
|
131 |
msgstr "Kontextuell data"
|
132 |
|
133 |
-
#: SimpleHistory.php:
|
134 |
-
msgid "This is potentially useful meta data that a logger
|
135 |
msgstr "Detta eventuellt användbar metadata som en logger har sparat."
|
136 |
|
137 |
-
#: SimpleHistory.php:
|
138 |
msgid "No events today so far."
|
139 |
msgstr "Inga händelser idag ännu."
|
140 |
|
141 |
-
#: SimpleHistory.php:
|
142 |
-
msgid "
|
143 |
-
msgstr "
|
144 |
|
145 |
-
#: SimpleHistory.php:
|
146 |
-
msgid "
|
147 |
-
msgstr "
|
148 |
|
149 |
-
#: SimpleHistory.php:
|
150 |
msgid "%1$d events today from one user."
|
151 |
msgstr "%1$d händelser idag från en användare."
|
152 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
153 |
#: dropins/SimpleHistoryDonateDropin.php:36
|
154 |
msgid "Donate"
|
155 |
msgstr "Donera"
|
@@ -162,29 +185,34 @@ msgstr ""
|
|
162 |
"Om Simple History är användbar för dig så <a href=\"%1$s\">donera</a> eller "
|
163 |
"<a href=\"%2$s\">köp mig något från min Amazon wish list</a>."
|
164 |
|
165 |
-
#: dropins/SimpleHistoryFilterDropin.php:
|
166 |
msgid "Filter history"
|
167 |
msgstr "Filtrera historik"
|
168 |
|
169 |
-
#: dropins/SimpleHistoryFilterDropin.php:
|
|
|
|
|
|
|
|
|
|
|
170 |
msgid "All log levels"
|
171 |
msgstr "Alla loggnivåer"
|
172 |
|
173 |
-
#: dropins/SimpleHistoryFilterDropin.php:
|
174 |
msgid "All messages"
|
175 |
msgstr "Alla meddelanden"
|
176 |
|
177 |
-
#: dropins/SimpleHistoryFilterDropin.php:
|
178 |
msgid "All users"
|
179 |
msgstr "Alla användare"
|
180 |
|
181 |
-
#: dropins/SimpleHistoryFilterDropin.php:
|
182 |
msgid "All dates"
|
183 |
msgstr "Alla datum"
|
184 |
|
185 |
-
#: dropins/SimpleHistoryFilterDropin.php:
|
186 |
-
msgid "
|
187 |
-
msgstr "
|
188 |
|
189 |
#: dropins/SimpleHistoryNewRowsNotifier.php:80
|
190 |
msgid "1 new row"
|
@@ -205,12 +233,12 @@ msgid "Created new secret RSS address"
|
|
205 |
msgstr "Skapade en ny hemlig RSS-adress"
|
206 |
|
207 |
#: dropins/SimpleHistoryRSSDropin.php:148
|
208 |
-
#: dropins/SimpleHistoryRSSDropin.php:
|
209 |
msgid "History for %s"
|
210 |
msgstr "Historik för %s"
|
211 |
|
212 |
#: dropins/SimpleHistoryRSSDropin.php:149
|
213 |
-
#: dropins/SimpleHistoryRSSDropin.php:
|
214 |
msgid "WordPress History for %s"
|
215 |
msgstr "WordPress-historik för %s"
|
216 |
|
@@ -220,11 +248,11 @@ msgid_plural "+%1$s occasions"
|
|
220 |
msgstr[0] "+%1$s tillfälle"
|
221 |
msgstr[1] "+%1$s tillfällen"
|
222 |
|
223 |
-
#: dropins/SimpleHistoryRSSDropin.php:
|
224 |
msgid "Wrong RSS secret"
|
225 |
msgstr "Fel RSS-lösenord"
|
226 |
|
227 |
-
#: dropins/SimpleHistoryRSSDropin.php:
|
228 |
msgid ""
|
229 |
"Your RSS secret for Simple History RSS feed is wrong. Please see WordPress "
|
230 |
"settings for current link to the RSS feed."
|
@@ -232,7 +260,7 @@ msgstr ""
|
|
232 |
"Ditt RSS-lösenord för RSS-flödet för Simple History är felaktigt. Gå till "
|
233 |
"WordPress-inställningarna för att få en aktuell länk till RSS-flöded."
|
234 |
|
235 |
-
#: dropins/SimpleHistoryRSSDropin.php:
|
236 |
msgid ""
|
237 |
"You can generate a new address for the RSS feed. This is useful if you think "
|
238 |
"that the address has fallen into the wrong hands."
|
@@ -240,11 +268,11 @@ msgstr ""
|
|
240 |
"Du kan skapa en ny adress för RSS-flödet. Detta är användbart om du "
|
241 |
"misstänker att adressen kommit i orätta händer."
|
242 |
|
243 |
-
#: dropins/SimpleHistoryRSSDropin.php:
|
244 |
msgid "Generate new address"
|
245 |
msgstr "Skapa ny adress"
|
246 |
|
247 |
-
#: dropins/SimpleHistoryRSSDropin.php:
|
248 |
msgid ""
|
249 |
"Simple History has a RSS feed which you can subscribe to and receive log "
|
250 |
"updates. Make sure you only share the feed with people you trust, since it "
|
@@ -262,7 +290,11 @@ msgstr "Testdata (debug)"
|
|
262 |
msgid "Stats"
|
263 |
msgstr "Statistik"
|
264 |
|
265 |
-
#:
|
|
|
|
|
|
|
|
|
266 |
msgid ""
|
267 |
"Simple History is a great plugin, but to use it your server must have at "
|
268 |
"least PHP 5.3 installed (you have version %s)."
|
@@ -270,27 +302,27 @@ msgstr ""
|
|
270 |
"Simple History är en rackarns bra plugin, men för att använda den måste din "
|
271 |
"server ha minst PHP 5.3 installerat (du har version %s)."
|
272 |
|
273 |
-
#: loggers/SimpleCommentsLogger.php:
|
274 |
msgid "Spam"
|
275 |
msgstr "Skräp"
|
276 |
|
277 |
-
#: loggers/SimpleCommentsLogger.php:
|
278 |
msgid "Approved"
|
279 |
msgstr "Godkänd"
|
280 |
|
281 |
-
#: loggers/SimpleCommentsLogger.php:
|
282 |
msgid "Pending"
|
283 |
msgstr "Väntande"
|
284 |
|
285 |
-
#: loggers/SimpleCommentsLogger.php:
|
286 |
msgid "Trackback"
|
287 |
msgstr "Trackback"
|
288 |
|
289 |
-
#: loggers/SimpleCommentsLogger.php:
|
290 |
msgid "Pingback"
|
291 |
msgstr "Pingback"
|
292 |
|
293 |
-
#: loggers/SimpleCommentsLogger.php:
|
294 |
msgid "Comment"
|
295 |
msgstr "Kommentar"
|
296 |
|
@@ -315,29 +347,25 @@ msgstr "Av %s"
|
|
315 |
msgid "%d occasions"
|
316 |
msgstr "%d tillfällen"
|
317 |
|
318 |
-
#: loggers/SimpleLogger.php:
|
319 |
msgid "Deleted user (had id %1$s, email %2$s, login %3$s)"
|
320 |
msgstr "Raderad användare (hade id %1$s, epost %2$s, login %3$s)"
|
321 |
|
322 |
-
#: loggers/SimpleLogger.php:
|
323 |
msgid "Anonymous web user"
|
324 |
msgstr "Anonym webbanvändare"
|
325 |
|
326 |
-
#: loggers/SimpleLogger.php:
|
327 |
msgid "Anonymous user from %1$s"
|
328 |
msgstr "Anonym användare från %1$s"
|
329 |
|
330 |
-
#: loggers/SimpleLogger.php:299
|
331 |
-
msgid "Just now"
|
332 |
-
msgstr "Just nu"
|
333 |
-
|
334 |
#. translators: Date format for log row header, see http:php.net/date
|
335 |
-
#: loggers/SimpleLogger.php:
|
336 |
msgid "M j, Y \\a\\t G:i"
|
337 |
msgstr "M j, Y \\a\\t G:i"
|
338 |
|
339 |
#. translators: 1: last modified date and time in human time diff-format
|
340 |
-
#: loggers/SimpleLogger.php:
|
341 |
msgid "%1$s ago"
|
342 |
msgstr "%1$s sedan"
|
343 |
|
@@ -363,19 +391,19 @@ msgid "Uploaded {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
|
|
363 |
msgstr ""
|
364 |
"Laddade upp {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
|
365 |
|
366 |
-
#: loggers/SimpleMediaLogger.php:
|
367 |
msgid "{attachment_thumb}"
|
368 |
msgstr "{attachment_thumb}"
|
369 |
|
370 |
-
#: loggers/SimpleMediaLogger.php:
|
371 |
msgid "{attachment_size_format}"
|
372 |
msgstr "{attachment_size_format}"
|
373 |
|
374 |
-
#: loggers/SimpleMediaLogger.php:
|
375 |
msgid "{attachment_filetype_extension}"
|
376 |
msgstr "{attachment_filetype_extension}"
|
377 |
|
378 |
-
#: loggers/SimpleMediaLogger.php:
|
379 |
msgid "{full_image_width} × {full_image_height}"
|
380 |
msgstr "{full_image_width} × {full_image_height}"
|
381 |
|
@@ -483,7 +511,7 @@ msgstr "Ändrade inställningar för temats anpassade bakgrund"
|
|
483 |
msgid "Section"
|
484 |
msgstr "Sektion"
|
485 |
|
486 |
-
#: loggers/SimpleUserLogger.php:
|
487 |
msgid ""
|
488 |
"Failed to login to account with username \"{login_user_login}\" because an "
|
489 |
"incorrect password was entered"
|
@@ -491,32 +519,32 @@ msgstr ""
|
|
491 |
"Misslyckades att logga in på kontot med användarnamnet \"{login_user_login}\" "
|
492 |
"eftersom ett felaktigt lösenord angavs"
|
493 |
|
494 |
-
#: loggers/SimpleUserLogger.php:
|
495 |
msgid ""
|
496 |
"Failed to login with username \"{failed_login_username}\" because no user "
|
497 |
-
"with that username
|
498 |
msgstr ""
|
499 |
-
"
|
500 |
-
"eftersom ingen användare med det användarnamnet
|
501 |
|
502 |
-
#: loggers/SimpleUserLogger.php:
|
503 |
msgid "Logged in"
|
504 |
msgstr "Loggade in"
|
505 |
|
506 |
-
#: loggers/SimpleUserLogger.php:
|
507 |
msgid "Unknown user logged in"
|
508 |
msgstr "Okänd användare loggade in"
|
509 |
|
510 |
-
#: loggers/SimpleUserLogger.php:
|
511 |
msgid "Logged out"
|
512 |
msgstr "Loggade ut"
|
513 |
|
514 |
-
#: loggers/SimpleUserLogger.php:
|
515 |
msgid "Edited the profile for user {edited_user_login} ({edited_user_email})"
|
516 |
msgstr ""
|
517 |
"Redigerade profilen för användaren {edited_user_login} ({edited_user_email})"
|
518 |
|
519 |
-
#: loggers/SimpleUserLogger.php:
|
520 |
msgid ""
|
521 |
"Created user {created_user_login} ({created_user_email}) with role "
|
522 |
"{created_user_role}"
|
@@ -524,23 +552,23 @@ msgstr ""
|
|
524 |
"Skapade användare {created_user_login} ({created_user_email}) med rollen "
|
525 |
"{created_user_role}"
|
526 |
|
527 |
-
#: loggers/SimpleUserLogger.php:
|
528 |
msgid "Deleted user {deleted_user_login} ({deleted_user_email})"
|
529 |
msgstr "Raderade användaren {deleted_user_login} ({deleted_user_email})"
|
530 |
|
531 |
-
#: loggers/SimpleUserLogger.php:
|
532 |
msgid "Edited <a href=\"{edit_profile_link}\">your profile</a>"
|
533 |
msgstr "Redigerade <a href=\"{edit_profile_link}\">din profl</a>"
|
534 |
|
535 |
-
#: loggers/SimpleUserLogger.php:
|
536 |
msgid "Edited <a href=\"{edit_profile_link}\">their profile</a>"
|
537 |
msgstr "Redigerade <a href=\"{edit_profile_link}\">sin profil</a>"
|
538 |
|
539 |
-
#: loggers/SimpleUserLogger.php:
|
540 |
msgid "Edited your profile"
|
541 |
msgstr "Redigerade din profil"
|
542 |
|
543 |
-
#: loggers/SimpleUserLogger.php:
|
544 |
msgid ""
|
545 |
"Edited the profile for user <a href="
|
546 |
"\"{edit_profile_link}\">{edited_user_login} ({edited_user_email})</a>"
|
@@ -596,10 +624,6 @@ msgstr ""
|
|
596 |
msgid "Deleted users are also included."
|
597 |
msgstr "Raderade användare är också inkluderade."
|
598 |
|
599 |
-
#. Plugin Name of the plugin/theme
|
600 |
-
msgid "Simple History"
|
601 |
-
msgstr "Simple History"
|
602 |
-
|
603 |
#. Plugin URI of the plugin/theme
|
604 |
msgid "http://simple-history.com"
|
605 |
msgstr "http://simple-history.com"
|
@@ -620,37 +644,177 @@ msgstr "Pär Thernström"
|
|
620 |
msgid "http://simple-history.com/"
|
621 |
msgstr "http://simple-history.com"
|
622 |
|
623 |
-
#: SimpleHistory.php:
|
624 |
msgctxt ""
|
625 |
"Message visible while waiting for log to load from server the first time"
|
626 |
msgid "Loading history..."
|
627 |
msgstr "Laddar historik..."
|
628 |
|
629 |
-
#: SimpleHistory.php:
|
630 |
msgctxt "page n of n"
|
631 |
msgid "of"
|
632 |
msgstr "av"
|
633 |
|
634 |
-
#: SimpleHistory.php:
|
635 |
msgctxt "API: not enought arguments passed"
|
636 |
msgid "Not enough args specified"
|
637 |
msgstr "Inte tillräckligt med arguments specifierade"
|
638 |
|
639 |
-
#: SimpleHistory.php:
|
640 |
msgctxt "dashboard menu name"
|
641 |
msgid "Simple History"
|
642 |
msgstr "Simple History"
|
643 |
|
644 |
-
#: SimpleHistory.php:
|
645 |
msgctxt "history page headline"
|
646 |
msgid "Simple History"
|
647 |
msgstr "Simple History"
|
648 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
649 |
#: dropins/SimpleHistoryDonateDropin.php:51
|
650 |
msgctxt "donate settings headline"
|
651 |
msgid "Donate"
|
652 |
msgstr "Donera"
|
653 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
654 |
#: dropins/SimpleHistoryNewRowsNotifier.php:38
|
655 |
msgctxt "New rows notifier: error while checking for new rows"
|
656 |
msgid "An error occured while checking for new log rows"
|
@@ -661,19 +825,70 @@ msgctxt "rss settings headline"
|
|
661 |
msgid "RSS feed"
|
662 |
msgstr "RSS-flöde"
|
663 |
|
664 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
665 |
msgctxt "A comment was added to the database by a non-logged in internet user"
|
666 |
msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
|
667 |
msgstr ""
|
668 |
"Lade till en kommentar till {comment_post_type} \"{comment_post_title}\""
|
669 |
|
670 |
-
#: loggers/SimpleCommentsLogger.php:
|
671 |
msgctxt "A comment was added to the database by a logged in user"
|
672 |
msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
|
673 |
msgstr ""
|
674 |
"Lade till en kommentar till {comment_post_type} \"{comment_post_title}\""
|
675 |
|
676 |
-
#: loggers/SimpleCommentsLogger.php:
|
677 |
msgctxt "A comment was approved"
|
678 |
msgid ""
|
679 |
"Approved a comment to \"{comment_post_title}\" by {comment_author} "
|
@@ -682,7 +897,7 @@ msgstr ""
|
|
682 |
"Godkände en kommentar till \"{comment_post_title}\" av {comment_author} "
|
683 |
"({comment_author_email})"
|
684 |
|
685 |
-
#: loggers/SimpleCommentsLogger.php:
|
686 |
msgctxt "A comment was was unapproved"
|
687 |
msgid ""
|
688 |
"Unapproved a comment to \"{comment_post_title}\" by {comment_author} "
|
@@ -691,12 +906,12 @@ msgstr ""
|
|
691 |
"Godkände inte en kommentar till \"{comment_post_title}\" av {comment_author} "
|
692 |
"({comment_author_email})"
|
693 |
|
694 |
-
#: loggers/SimpleCommentsLogger.php:
|
695 |
msgctxt "A comment was marked as spam"
|
696 |
msgid "Marked a comment to post \"{comment_post_title}\" as spam"
|
697 |
msgstr "Markerade en kommentar till \"{comment_post_title}\" som spam"
|
698 |
|
699 |
-
#: loggers/SimpleCommentsLogger.php:
|
700 |
msgctxt "A comment was marked moved to the trash"
|
701 |
msgid ""
|
702 |
"Trashed a comment to \"{comment_post_title}\" by {comment_author} "
|
@@ -705,7 +920,7 @@ msgstr ""
|
|
705 |
"Kastade en kommentar till \"{comment_post_title}\" av {comment_author} "
|
706 |
"({comment_author_email}) i papperskorgen"
|
707 |
|
708 |
-
#: loggers/SimpleCommentsLogger.php:
|
709 |
msgctxt "A comment was restored from the trash"
|
710 |
msgid ""
|
711 |
"Restored a comment to \"{comment_post_title}\" by {comment_author} "
|
@@ -714,7 +929,7 @@ msgstr ""
|
|
714 |
"Återställde en kommentar till \"{comment_post_title}\" av {comment_author} "
|
715 |
"({comment_author_email}) från papperskorgen"
|
716 |
|
717 |
-
#: loggers/SimpleCommentsLogger.php:
|
718 |
msgctxt "A comment was deleted"
|
719 |
msgid ""
|
720 |
"Deleted a comment to \"{comment_post_title}\" by {comment_author} "
|
@@ -723,7 +938,7 @@ msgstr ""
|
|
723 |
"Raderade en kommentar kommentar till \"{comment_post_title}\" av "
|
724 |
"{comment_author} ({comment_author_email})"
|
725 |
|
726 |
-
#: loggers/SimpleCommentsLogger.php:
|
727 |
msgctxt "A comment was edited"
|
728 |
msgid ""
|
729 |
"Edited a comment to \"{comment_post_title}\" by {comment_author} "
|
@@ -732,24 +947,24 @@ msgstr ""
|
|
732 |
"Redigerade en kommentar till \"{comment_post_title}\" av {comment_author} "
|
733 |
"({comment_author_email})"
|
734 |
|
735 |
-
#: loggers/SimpleCommentsLogger.php:
|
736 |
msgctxt "A trackback was added to the database by a non-logged in internet user"
|
737 |
msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
|
738 |
msgstr ""
|
739 |
"Lade till en trackback till {comment_post_type} \"{comment_post_title}\""
|
740 |
|
741 |
-
#: loggers/SimpleCommentsLogger.php:
|
742 |
msgctxt "A trackback was added to the database by a non-logged in internet user"
|
743 |
msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
|
744 |
msgstr "Lade till en pingback till {comment_post_type} \"{comment_post_title}\""
|
745 |
|
746 |
-
#: loggers/SimpleCommentsLogger.php:
|
747 |
msgctxt "A trackback was added to the database by a logged in user"
|
748 |
msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
|
749 |
msgstr ""
|
750 |
"Lade till en trackback till {comment_post_type} \"{comment_post_title}\""
|
751 |
|
752 |
-
#: loggers/SimpleCommentsLogger.php:
|
753 |
msgctxt "A trackback was approved"
|
754 |
msgid ""
|
755 |
"Approved a trackback to \"{comment_post_title}\" by {comment_author} "
|
@@ -758,7 +973,7 @@ msgstr ""
|
|
758 |
"Godkände en trackback till \"{comment_post_title}\" av {comment_author} "
|
759 |
"({comment_author_email})"
|
760 |
|
761 |
-
#: loggers/SimpleCommentsLogger.php:
|
762 |
msgctxt "A trackback was was unapproved"
|
763 |
msgid ""
|
764 |
"Unapproved a trackback to \"{comment_post_title}\" by {comment_author} "
|
@@ -767,12 +982,12 @@ msgstr ""
|
|
767 |
"Godkände inte en trackback till \"{comment_post_title}\" av {comment_author} "
|
768 |
"({comment_author_email})"
|
769 |
|
770 |
-
#: loggers/SimpleCommentsLogger.php:
|
771 |
msgctxt "A trackback was marked as spam"
|
772 |
msgid "Marked a trackback to post \"{comment_post_title}\" as spam"
|
773 |
msgstr "Markerade en trackback till \"{comment_post_title}\" som spam"
|
774 |
|
775 |
-
#: loggers/SimpleCommentsLogger.php:
|
776 |
msgctxt "A trackback was marked moved to the trash"
|
777 |
msgid ""
|
778 |
"Trashed a trackback to \"{comment_post_title}\" by {comment_author} "
|
@@ -781,7 +996,7 @@ msgstr ""
|
|
781 |
"Kastade en trackback till \"{comment_post_title}\" av {comment_author} "
|
782 |
"({comment_author_email}) i papperskorgen"
|
783 |
|
784 |
-
#: loggers/SimpleCommentsLogger.php:
|
785 |
msgctxt "A trackback was restored from the trash"
|
786 |
msgid ""
|
787 |
"Restored a trackback to \"{comment_post_title}\" by {comment_author} "
|
@@ -790,7 +1005,7 @@ msgstr ""
|
|
790 |
"Återställde en trackback till \"{comment_post_title}\" av {comment_author} "
|
791 |
"({comment_author_email}) från papperskorgen"
|
792 |
|
793 |
-
#: loggers/SimpleCommentsLogger.php:
|
794 |
msgctxt "A trackback was deleted"
|
795 |
msgid ""
|
796 |
"Deleted a trackback to \"{comment_post_title}\" by {comment_author} "
|
@@ -799,7 +1014,7 @@ msgstr ""
|
|
799 |
"Raderade en trackback till \"{comment_post_title}\" av {comment_author} "
|
800 |
"({comment_author_email})"
|
801 |
|
802 |
-
#: loggers/SimpleCommentsLogger.php:
|
803 |
msgctxt "A trackback was edited"
|
804 |
msgid ""
|
805 |
"Edited a trackback to \"{comment_post_title}\" by {comment_author} "
|
@@ -808,12 +1023,12 @@ msgstr ""
|
|
808 |
"Redigerade en trackback till \"{comment_post_title}\" av {comment_author} "
|
809 |
"({comment_author_email})"
|
810 |
|
811 |
-
#: loggers/SimpleCommentsLogger.php:
|
812 |
msgctxt "A pingback was added to the database by a logged in user"
|
813 |
msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
|
814 |
msgstr "Lade till en pingback till {comment_post_type} \"{comment_post_title}\""
|
815 |
|
816 |
-
#: loggers/SimpleCommentsLogger.php:
|
817 |
msgctxt "A pingback was approved"
|
818 |
msgid ""
|
819 |
"Approved a pingback to \"{comment_post_title}\" by "
|
@@ -822,7 +1037,7 @@ msgstr ""
|
|
822 |
"Godkände en pingback till \"{comment_post_title}\" av {comment_author} "
|
823 |
"({comment_author_email}) från papperskorgen"
|
824 |
|
825 |
-
#: loggers/SimpleCommentsLogger.php:
|
826 |
msgctxt "A pingback was was unapproved"
|
827 |
msgid ""
|
828 |
"Unapproved a pingback to \"{comment_post_title}\" by "
|
@@ -831,12 +1046,12 @@ msgstr ""
|
|
831 |
"Ångrade godkännande av en pingack till \"{comment_post_title}\" av "
|
832 |
"{comment_author} ({comment_author_email})"
|
833 |
|
834 |
-
#: loggers/SimpleCommentsLogger.php:
|
835 |
msgctxt "A pingback was marked as spam"
|
836 |
msgid "Marked a pingback to post \"{comment_post_title}\" as spam"
|
837 |
msgstr "Markerade en pingback till \"{comment_post_title}\" som spam"
|
838 |
|
839 |
-
#: loggers/SimpleCommentsLogger.php:
|
840 |
msgctxt "A pingback was marked moved to the trash"
|
841 |
msgid ""
|
842 |
"Trashed a pingback to \"{comment_post_title}\" by {comment_author} "
|
@@ -845,7 +1060,7 @@ msgstr ""
|
|
845 |
"Kastade en pingback till \"{comment_post_title}\" av {comment_author} "
|
846 |
"({comment_author_email}) i papperskorgen"
|
847 |
|
848 |
-
#: loggers/SimpleCommentsLogger.php:
|
849 |
msgctxt "A pingback was restored from the trash"
|
850 |
msgid ""
|
851 |
"Restored a pingback to \"{comment_post_title}\" by {comment_author} "
|
@@ -854,7 +1069,7 @@ msgstr ""
|
|
854 |
"Ångrade godkännandet av en kommentar till \"{comment_post_title}\" av "
|
855 |
"{comment_author} ({comment_author_email})"
|
856 |
|
857 |
-
#: loggers/SimpleCommentsLogger.php:
|
858 |
msgctxt "A pingback was deleted"
|
859 |
msgid ""
|
860 |
"Deleted a pingback to \"{comment_post_title}\" by {comment_author} "
|
@@ -863,7 +1078,7 @@ msgstr ""
|
|
863 |
"Raderade en pingback till \"{comment_post_title}\" av {comment_author} "
|
864 |
"({comment_author_email})"
|
865 |
|
866 |
-
#: loggers/SimpleCommentsLogger.php:
|
867 |
msgctxt "A pingback was edited"
|
868 |
msgid ""
|
869 |
"Edited a pingback to \"{comment_post_title}\" by {comment_author} "
|
@@ -872,85 +1087,85 @@ msgstr ""
|
|
872 |
"Redigerade en pingback till \"{comment_post_title}\" av {comment_author} "
|
873 |
"({comment_author_email})"
|
874 |
|
875 |
-
#: loggers/SimpleCommentsLogger.php:
|
876 |
msgctxt "Comments logger: search"
|
877 |
msgid "Comments"
|
878 |
msgstr "Kommentarer"
|
879 |
|
880 |
-
#: loggers/SimpleCommentsLogger.php:
|
881 |
msgctxt "Comments logger: search"
|
882 |
msgid "All comments activity"
|
883 |
msgstr "Alla kommentarshändelser"
|
884 |
|
885 |
-
#: loggers/SimpleCommentsLogger.php:
|
886 |
msgctxt "Comments logger: search"
|
887 |
msgid "Added comments"
|
888 |
msgstr "Tillagda kommentarer"
|
889 |
|
890 |
-
#: loggers/SimpleCommentsLogger.php:
|
891 |
msgctxt "Comments logger: search"
|
892 |
msgid "Edited comments"
|
893 |
msgstr "Redigerade kommentarer"
|
894 |
|
895 |
-
#: loggers/SimpleCommentsLogger.php:
|
896 |
msgctxt "Comments logger: search"
|
897 |
msgid "Approved comments"
|
898 |
msgstr "Godkända kommentarer"
|
899 |
|
900 |
-
#: loggers/SimpleCommentsLogger.php:
|
901 |
msgctxt "Comments logger: search"
|
902 |
msgid "Held comments"
|
903 |
msgstr "Tillbakahållna kommentar"
|
904 |
|
905 |
-
#: loggers/SimpleCommentsLogger.php:
|
906 |
msgctxt "Comments logger: search"
|
907 |
msgid "Comments status changed to spam"
|
908 |
msgstr "Status på kommentar ändrad till spam"
|
909 |
|
910 |
-
#: loggers/SimpleCommentsLogger.php:
|
911 |
msgctxt "Comments logger: search"
|
912 |
msgid "Trashed comments"
|
913 |
msgstr "Kastade kommentarer"
|
914 |
|
915 |
-
#: loggers/SimpleCommentsLogger.php:
|
916 |
msgctxt "Comments logger: search"
|
917 |
msgid "Untrashed comments"
|
918 |
msgstr "Kommentarer tillbakatagna från papperskorgen"
|
919 |
|
920 |
-
#: loggers/SimpleCommentsLogger.php:
|
921 |
msgctxt "Comments logger: search"
|
922 |
msgid "Deleted comments"
|
923 |
msgstr "Borttagna kommentarer"
|
924 |
|
925 |
-
#: loggers/SimpleCommentsLogger.php:
|
926 |
-
#: loggers/SimpleCommentsLogger.php:
|
927 |
msgctxt "comments logger - detailed output comment status"
|
928 |
msgid "Status"
|
929 |
msgstr "Status"
|
930 |
|
931 |
-
#: loggers/SimpleCommentsLogger.php:
|
932 |
-
#: loggers/SimpleCommentsLogger.php:
|
933 |
msgctxt "comments logger - detailed output author"
|
934 |
msgid "Name"
|
935 |
msgstr "Namn"
|
936 |
|
937 |
-
#: loggers/SimpleCommentsLogger.php:
|
938 |
-
#: loggers/SimpleCommentsLogger.php:
|
939 |
msgctxt "comments logger - detailed output email"
|
940 |
msgid "Email"
|
941 |
msgstr "E-post"
|
942 |
|
943 |
-
#: loggers/SimpleCommentsLogger.php:
|
944 |
msgctxt "comments logger - detailed output content"
|
945 |
msgid "Content"
|
946 |
msgstr "Innehåll"
|
947 |
|
948 |
-
#: loggers/SimpleCommentsLogger.php:
|
949 |
msgctxt "comments logger - detailed output content"
|
950 |
msgid "Comment"
|
951 |
msgstr "Kommentar"
|
952 |
|
953 |
-
#: loggers/SimpleCommentsLogger.php:
|
954 |
msgctxt "comments logger - edit comment"
|
955 |
msgid "View/Edit"
|
956 |
msgstr "Visa/Redigera"
|
@@ -965,42 +1180,42 @@ msgctxt "User logger: search"
|
|
965 |
msgid "WordPress core updates"
|
966 |
msgstr "WordPress core uppdateringar"
|
967 |
|
968 |
-
#: loggers/SimpleUserLogger.php:
|
969 |
msgctxt "User logger: search"
|
970 |
msgid "Users"
|
971 |
msgstr "Användare"
|
972 |
|
973 |
-
#: loggers/SimpleUserLogger.php:
|
974 |
msgctxt "User logger: search"
|
975 |
msgid "All user activity"
|
976 |
msgstr "All användaraktivitet"
|
977 |
|
978 |
-
#: loggers/SimpleUserLogger.php:
|
979 |
msgctxt "User logger: search"
|
980 |
msgid "Successful user logins"
|
981 |
msgstr "Lyckade inloggningar av användare"
|
982 |
|
983 |
-
#: loggers/SimpleUserLogger.php:
|
984 |
msgctxt "User logger: search"
|
985 |
msgid "Failed user logins"
|
986 |
msgstr "Misslyckade inloggningar av användare"
|
987 |
|
988 |
-
#: loggers/SimpleUserLogger.php:
|
989 |
msgctxt "User logger: search"
|
990 |
msgid "User logouts"
|
991 |
msgstr "Utloggning av användare"
|
992 |
|
993 |
-
#: loggers/SimpleUserLogger.php:
|
994 |
msgctxt "User logger: search"
|
995 |
msgid "Created users"
|
996 |
msgstr "Skapade användare"
|
997 |
|
998 |
-
#: loggers/SimpleUserLogger.php:
|
999 |
msgctxt "User logger: search"
|
1000 |
msgid "User profile updates"
|
1001 |
msgstr "Uppdateringar av användarprofiler"
|
1002 |
|
1003 |
-
#: loggers/SimpleUserLogger.php:
|
1004 |
msgctxt "User logger: search"
|
1005 |
msgid "User deletions"
|
1006 |
msgstr "Radering av användare"
|
@@ -1015,7 +1230,7 @@ msgctxt "Export logger: search"
|
|
1015 |
msgid "Created exports"
|
1016 |
msgstr "Skapade exporter"
|
1017 |
|
1018 |
-
#: loggers/SimpleLogger.php:
|
1019 |
msgctxt "header output when initiator is the currently logged in user"
|
1020 |
msgid "You"
|
1021 |
msgstr "Du"
|
@@ -1116,7 +1331,7 @@ msgstr ""
|
|
1116 |
#: loggers/SimplePluginLogger.php:81
|
1117 |
msgctxt "Plugin update failed"
|
1118 |
msgid "Updated plugin \"{plugin_name}\""
|
1119 |
-
msgstr "Uppdaterade
|
1120 |
|
1121 |
#: loggers/SimplePluginLogger.php:87
|
1122 |
msgctxt "Plugin file edited"
|
@@ -1134,7 +1349,7 @@ msgid ""
|
|
1134 |
"Updated plugin \"{plugin_name}\" to {plugin_version} from "
|
1135 |
"{plugin_prev_version}"
|
1136 |
msgstr ""
|
1137 |
-
"Uppdaterade
|
1138 |
"{plugin_prev_version}"
|
1139 |
|
1140 |
#: loggers/SimplePluginLogger.php:108
|
@@ -1182,47 +1397,47 @@ msgctxt "Plugin logger: search"
|
|
1182 |
msgid "Deleted plugins"
|
1183 |
msgstr "Raderade plugins"
|
1184 |
|
1185 |
-
#: loggers/SimplePluginLogger.php:
|
1186 |
msgctxt "plugin logger - detailed output version"
|
1187 |
msgid "Version"
|
1188 |
msgstr "Version"
|
1189 |
|
1190 |
-
#: loggers/SimplePluginLogger.php:
|
1191 |
msgctxt "plugin logger - detailed output author"
|
1192 |
msgid "Author"
|
1193 |
msgstr "Författare"
|
1194 |
|
1195 |
-
#: loggers/SimplePluginLogger.php:
|
1196 |
msgctxt "plugin logger - detailed output author"
|
1197 |
msgid "Requires"
|
1198 |
msgstr "Kräver"
|
1199 |
|
1200 |
-
#: loggers/SimplePluginLogger.php:
|
1201 |
msgctxt "plugin logger - detailed output url"
|
1202 |
msgid "URL"
|
1203 |
msgstr "URL"
|
1204 |
|
1205 |
-
#: loggers/SimplePluginLogger.php:
|
1206 |
msgctxt "plugin logger - detailed output compatible"
|
1207 |
msgid "Compatible up to"
|
1208 |
msgstr "Kompatibel upp till"
|
1209 |
|
1210 |
-
#: loggers/SimplePluginLogger.php:
|
1211 |
msgctxt "plugin logger - detailed output downloaded"
|
1212 |
msgid "Downloads"
|
1213 |
msgstr "Nedladdningar"
|
1214 |
|
1215 |
-
#: loggers/SimplePluginLogger.php:
|
1216 |
msgctxt "plugin logger: plugin info thickbox title view all info"
|
1217 |
msgid "View plugin info"
|
1218 |
msgstr "Visa information om plugin"
|
1219 |
|
1220 |
-
#: loggers/SimplePluginLogger.php:
|
1221 |
msgctxt "plugin logger: plugin info thickbox title"
|
1222 |
msgid "View plugin info"
|
1223 |
msgstr "Visa information om plugin"
|
1224 |
|
1225 |
-
#: loggers/SimplePluginLogger.php:
|
1226 |
msgctxt "plugin logger: plugin info thickbox title"
|
1227 |
msgid "View changelog"
|
1228 |
msgstr "Visa ändringslogg"
|
@@ -1297,11 +1512,30 @@ msgctxt "Theme logger: search"
|
|
1297 |
msgid "Background of themes changed"
|
1298 |
msgstr "Ändrade bakgrunder för teman"
|
1299 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1300 |
#: templates/settings-statsRowsPerDay.php:36
|
1301 |
msgctxt "stats: date in rows per day chart"
|
1302 |
msgid "M j"
|
1303 |
msgstr "M j"
|
1304 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1305 |
#~ msgctxt "dashboard menu name"
|
1306 |
#~ msgid "History"
|
1307 |
#~ msgstr "Historik"
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: Simple History 2\n"
|
6 |
"Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/Simple-History\n"
|
7 |
+
"POT-Creation-Date: 2015-01-26 15:41:57+00:00\n"
|
8 |
+
"PO-Revision-Date: 2015-02-11 13:42+0100\n"
|
9 |
"Last-Translator: Pär Thernström <par.thernstrom@gmail.com>\n"
|
10 |
"Language-Team: \n"
|
11 |
"Language: sv\n"
|
12 |
"MIME-Version: 1.0\n"
|
13 |
"Content-Type: text/plain; charset=UTF-8\n"
|
14 |
"Content-Transfer-Encoding: 8bit\n"
|
15 |
+
"X-Generator: Poedit 1.7.3\n"
|
16 |
"X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;"
|
17 |
"_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;"
|
18 |
"esc_html_x:1,2c\n"
|
22 |
"X-Textdomain-Support: yes\n"
|
23 |
"X-Poedit-SearchPath-0: .\n"
|
24 |
|
25 |
+
#: SimpleHistory.php:504 SimpleHistory.php:765
|
26 |
msgid "Settings"
|
27 |
msgstr "Inställningar"
|
28 |
|
29 |
+
#: SimpleHistory.php:515
|
30 |
msgid "Log (debug)"
|
31 |
msgstr "Logg (debug)"
|
32 |
|
33 |
+
#: SimpleHistory.php:520
|
34 |
msgid "Styles example (debug)"
|
35 |
msgstr "Stilexempel (debug)"
|
36 |
|
37 |
+
#. Plugin Name of the plugin/theme
|
38 |
+
#: SimpleHistory.php:780
|
39 |
+
msgid "Simple History"
|
40 |
+
msgstr "Simple History"
|
41 |
|
42 |
+
#: SimpleHistory.php:856
|
43 |
msgid "Remove all log items?"
|
44 |
msgstr "Ta bort alla händelser?"
|
45 |
|
46 |
+
#: SimpleHistory.php:858
|
47 |
msgid "Go to the first page"
|
48 |
msgstr "Gå till första sidan"
|
49 |
|
50 |
+
#: SimpleHistory.php:859
|
51 |
msgid "Go to the previous page"
|
52 |
msgstr "Gå till föregående sida"
|
53 |
|
54 |
+
#: SimpleHistory.php:860
|
55 |
msgid "Go to the next page"
|
56 |
msgstr "Gå till nästa sida"
|
57 |
|
58 |
+
#: SimpleHistory.php:861
|
59 |
msgid "Go to the last page"
|
60 |
msgstr "Gå till sista sidan"
|
61 |
|
62 |
+
#: SimpleHistory.php:862
|
63 |
msgid "Current page"
|
64 |
msgstr "Aktuell sida"
|
65 |
|
66 |
+
#: SimpleHistory.php:864
|
67 |
msgid "Oups, the log could not be loaded right now."
|
68 |
msgstr "Hoppsan, historiken kunde inte laddas just nu."
|
69 |
|
70 |
+
#: SimpleHistory.php:865
|
71 |
msgid "Your search did not match any history events."
|
72 |
msgstr "Din sökning matchade inte några händelser i historiken."
|
73 |
|
74 |
+
#: SimpleHistory.php:1149 SimpleHistory.php:1250
|
75 |
msgid "Simple History Settings"
|
76 |
msgstr "Inställningar för Simple History"
|
77 |
|
78 |
+
#: SimpleHistory.php:1183
|
79 |
msgid "No valid callback found"
|
80 |
msgstr "Inget giltigt callback hittades."
|
81 |
|
82 |
+
#: SimpleHistory.php:1271
|
83 |
msgid "Cleared database"
|
84 |
msgstr "Databasen rensades"
|
85 |
|
86 |
+
#: SimpleHistory.php:1298
|
87 |
msgid "Show history"
|
88 |
msgstr "Visa historik"
|
89 |
|
90 |
+
#: SimpleHistory.php:1311
|
91 |
msgid "Number of items per page"
|
92 |
msgstr "Antal händelser per sida"
|
93 |
|
94 |
+
#: SimpleHistory.php:1323
|
95 |
msgid "Clear log"
|
96 |
msgstr "Rensa logg"
|
97 |
|
98 |
+
#: SimpleHistory.php:1462
|
99 |
msgid "on the dashboard"
|
100 |
msgstr "i panelen"
|
101 |
|
102 |
+
#: SimpleHistory.php:1467
|
103 |
msgid "as a page under the dashboard menu"
|
104 |
msgstr "som en sida under panel-menyn"
|
105 |
|
106 |
+
#: SimpleHistory.php:1483
|
107 |
msgid "Items in the database are automatically removed after %1$s days."
|
108 |
msgstr "Händelser i databasen tas automatiskt bort efter %1$s dagar."
|
109 |
|
110 |
+
#: SimpleHistory.php:1485
|
111 |
msgid "Items in the database are kept forever."
|
112 |
msgstr "Händelser i databasen lagras för evigt."
|
113 |
|
114 |
+
#: SimpleHistory.php:1489
|
115 |
msgid "Clear log now"
|
116 |
msgstr "Rensa loggen nu"
|
117 |
|
118 |
+
#: SimpleHistory.php:1533
|
119 |
+
msgid "The log for Simple History was cleared ({num_rows} rows were removed)."
|
120 |
+
msgstr "Rensade historiken för Simple History. ({num_rows} rader togs bort)."
|
121 |
+
|
122 |
+
#: SimpleHistory.php:1793
|
123 |
+
msgid "+%1$s similar event"
|
124 |
+
msgid_plural "+%1$s similar events"
|
125 |
+
msgstr[0] "+%1$s liknande händelse"
|
126 |
+
msgstr[1] "+%1$s liknande händelser"
|
127 |
|
128 |
+
#: SimpleHistory.php:1800
|
129 |
msgid "Loading…"
|
130 |
msgstr "Laddar historik..."
|
131 |
|
132 |
+
#: SimpleHistory.php:1807
|
133 |
msgid "Showing %1$s more"
|
134 |
msgstr "+%1$s fler"
|
135 |
|
136 |
+
#: SimpleHistory.php:1826
|
137 |
msgid "Context data"
|
138 |
msgstr "Kontextuell data"
|
139 |
|
140 |
+
#: SimpleHistory.php:1827
|
141 |
+
msgid "This is potentially useful meta data that a logger has saved."
|
142 |
msgstr "Detta eventuellt användbar metadata som en logger har sparat."
|
143 |
|
144 |
+
#: SimpleHistory.php:2302
|
145 |
msgid "No events today so far."
|
146 |
msgstr "Inga händelser idag ännu."
|
147 |
|
148 |
+
#: SimpleHistory.php:2321
|
149 |
+
msgid "One event today from one user."
|
150 |
+
msgstr "En händelse idag från en användare."
|
151 |
|
152 |
+
#: SimpleHistory.php:2327
|
153 |
+
msgid "One event today from one source."
|
154 |
+
msgstr "En händelse idag från en källa."
|
155 |
|
156 |
+
#: SimpleHistory.php:2333
|
157 |
msgid "%1$d events today from one user."
|
158 |
msgstr "%1$d händelser idag från en användare."
|
159 |
|
160 |
+
#: SimpleHistory.php:2339
|
161 |
+
msgid "%1$d events today from %2$d users."
|
162 |
+
msgstr "%1$d händelser idag från %2$d användare."
|
163 |
+
|
164 |
+
#: SimpleHistory.php:2345 SimpleHistory.php:2351
|
165 |
+
msgid "%1$d events today from one user and one other source."
|
166 |
+
msgstr "%1$d händelser idag från en användare och från en annan källa."
|
167 |
+
|
168 |
+
#: SimpleHistory.php:2357
|
169 |
+
msgid "%1$d events today from one user and %3$d other sources."
|
170 |
+
msgstr "%1$d händelser idag från en användare och från %3$d andra källor."
|
171 |
+
|
172 |
+
#: SimpleHistory.php:2363
|
173 |
+
msgid "%1$s events today from %2$d users and %3$d other sources."
|
174 |
+
msgstr "%1$s händelser idag från %2$d användare och %3$d andra källor."
|
175 |
+
|
176 |
#: dropins/SimpleHistoryDonateDropin.php:36
|
177 |
msgid "Donate"
|
178 |
msgstr "Donera"
|
185 |
"Om Simple History är användbar för dig så <a href=\"%1$s\">donera</a> eller "
|
186 |
"<a href=\"%2$s\">köp mig något från min Amazon wish list</a>."
|
187 |
|
188 |
+
#: dropins/SimpleHistoryFilterDropin.php:44
|
189 |
msgid "Filter history"
|
190 |
msgstr "Filtrera historik"
|
191 |
|
192 |
+
#: dropins/SimpleHistoryFilterDropin.php:48
|
193 |
+
#: dropins/SimpleHistoryFilterDropin.php:159
|
194 |
+
msgid "Search events"
|
195 |
+
msgstr "Sök händelser"
|
196 |
+
|
197 |
+
#: dropins/SimpleHistoryFilterDropin.php:56
|
198 |
msgid "All log levels"
|
199 |
msgstr "Alla loggnivåer"
|
200 |
|
201 |
+
#: dropins/SimpleHistoryFilterDropin.php:70
|
202 |
msgid "All messages"
|
203 |
msgstr "Alla meddelanden"
|
204 |
|
205 |
+
#: dropins/SimpleHistoryFilterDropin.php:124
|
206 |
msgid "All users"
|
207 |
msgstr "Alla användare"
|
208 |
|
209 |
+
#: dropins/SimpleHistoryFilterDropin.php:145
|
210 |
msgid "All dates"
|
211 |
msgstr "Alla datum"
|
212 |
|
213 |
+
#: dropins/SimpleHistoryFilterDropin.php:168
|
214 |
+
msgid "Search"
|
215 |
+
msgstr "Sök"
|
216 |
|
217 |
#: dropins/SimpleHistoryNewRowsNotifier.php:80
|
218 |
msgid "1 new row"
|
233 |
msgstr "Skapade en ny hemlig RSS-adress"
|
234 |
|
235 |
#: dropins/SimpleHistoryRSSDropin.php:148
|
236 |
+
#: dropins/SimpleHistoryRSSDropin.php:259
|
237 |
msgid "History for %s"
|
238 |
msgstr "Historik för %s"
|
239 |
|
240 |
#: dropins/SimpleHistoryRSSDropin.php:149
|
241 |
+
#: dropins/SimpleHistoryRSSDropin.php:260
|
242 |
msgid "WordPress History for %s"
|
243 |
msgstr "WordPress-historik för %s"
|
244 |
|
248 |
msgstr[0] "+%1$s tillfälle"
|
249 |
msgstr[1] "+%1$s tillfällen"
|
250 |
|
251 |
+
#: dropins/SimpleHistoryRSSDropin.php:263
|
252 |
msgid "Wrong RSS secret"
|
253 |
msgstr "Fel RSS-lösenord"
|
254 |
|
255 |
+
#: dropins/SimpleHistoryRSSDropin.php:264
|
256 |
msgid ""
|
257 |
"Your RSS secret for Simple History RSS feed is wrong. Please see WordPress "
|
258 |
"settings for current link to the RSS feed."
|
260 |
"Ditt RSS-lösenord för RSS-flödet för Simple History är felaktigt. Gå till "
|
261 |
"WordPress-inställningarna för att få en aktuell länk till RSS-flöded."
|
262 |
|
263 |
+
#: dropins/SimpleHistoryRSSDropin.php:315
|
264 |
msgid ""
|
265 |
"You can generate a new address for the RSS feed. This is useful if you think "
|
266 |
"that the address has fallen into the wrong hands."
|
268 |
"Du kan skapa en ny adress för RSS-flödet. Detta är användbart om du "
|
269 |
"misstänker att adressen kommit i orätta händer."
|
270 |
|
271 |
+
#: dropins/SimpleHistoryRSSDropin.php:318
|
272 |
msgid "Generate new address"
|
273 |
msgstr "Skapa ny adress"
|
274 |
|
275 |
+
#: dropins/SimpleHistoryRSSDropin.php:346
|
276 |
msgid ""
|
277 |
"Simple History has a RSS feed which you can subscribe to and receive log "
|
278 |
"updates. Make sure you only share the feed with people you trust, since it "
|
290 |
msgid "Stats"
|
291 |
msgstr "Statistik"
|
292 |
|
293 |
+
#: dropins/SimpleHistorySidebarDropin.php:159 loggers/SimpleLogger.php:296
|
294 |
+
msgid "Just now"
|
295 |
+
msgstr "Just nu"
|
296 |
+
|
297 |
+
#: index.php:59
|
298 |
msgid ""
|
299 |
"Simple History is a great plugin, but to use it your server must have at "
|
300 |
"least PHP 5.3 installed (you have version %s)."
|
302 |
"Simple History är en rackarns bra plugin, men för att använda den måste din "
|
303 |
"server ha minst PHP 5.3 installerat (du har version %s)."
|
304 |
|
305 |
+
#: loggers/SimpleCommentsLogger.php:685
|
306 |
msgid "Spam"
|
307 |
msgstr "Skräp"
|
308 |
|
309 |
+
#: loggers/SimpleCommentsLogger.php:687
|
310 |
msgid "Approved"
|
311 |
msgstr "Godkänd"
|
312 |
|
313 |
+
#: loggers/SimpleCommentsLogger.php:689
|
314 |
msgid "Pending"
|
315 |
msgstr "Väntande"
|
316 |
|
317 |
+
#: loggers/SimpleCommentsLogger.php:703
|
318 |
msgid "Trackback"
|
319 |
msgstr "Trackback"
|
320 |
|
321 |
+
#: loggers/SimpleCommentsLogger.php:705
|
322 |
msgid "Pingback"
|
323 |
msgstr "Pingback"
|
324 |
|
325 |
+
#: loggers/SimpleCommentsLogger.php:707
|
326 |
msgid "Comment"
|
327 |
msgstr "Kommentar"
|
328 |
|
347 |
msgid "%d occasions"
|
348 |
msgstr "%d tillfällen"
|
349 |
|
350 |
+
#: loggers/SimpleLogger.php:203
|
351 |
msgid "Deleted user (had id %1$s, email %2$s, login %3$s)"
|
352 |
msgstr "Raderad användare (hade id %1$s, epost %2$s, login %3$s)"
|
353 |
|
354 |
+
#: loggers/SimpleLogger.php:218
|
355 |
msgid "Anonymous web user"
|
356 |
msgstr "Anonym webbanvändare"
|
357 |
|
358 |
+
#: loggers/SimpleLogger.php:226
|
359 |
msgid "Anonymous user from %1$s"
|
360 |
msgstr "Anonym användare från %1$s"
|
361 |
|
|
|
|
|
|
|
|
|
362 |
#. translators: Date format for log row header, see http:php.net/date
|
363 |
+
#: loggers/SimpleLogger.php:301
|
364 |
msgid "M j, Y \\a\\t G:i"
|
365 |
msgstr "M j, Y \\a\\t G:i"
|
366 |
|
367 |
#. translators: 1: last modified date and time in human time diff-format
|
368 |
+
#: loggers/SimpleLogger.php:309
|
369 |
msgid "%1$s ago"
|
370 |
msgstr "%1$s sedan"
|
371 |
|
391 |
msgstr ""
|
392 |
"Laddade upp {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
|
393 |
|
394 |
+
#: loggers/SimpleMediaLogger.php:197
|
395 |
msgid "{attachment_thumb}"
|
396 |
msgstr "{attachment_thumb}"
|
397 |
|
398 |
+
#: loggers/SimpleMediaLogger.php:206
|
399 |
msgid "{attachment_size_format}"
|
400 |
msgstr "{attachment_size_format}"
|
401 |
|
402 |
+
#: loggers/SimpleMediaLogger.php:207
|
403 |
msgid "{attachment_filetype_extension}"
|
404 |
msgstr "{attachment_filetype_extension}"
|
405 |
|
406 |
+
#: loggers/SimpleMediaLogger.php:209
|
407 |
msgid "{full_image_width} × {full_image_height}"
|
408 |
msgstr "{full_image_width} × {full_image_height}"
|
409 |
|
511 |
msgid "Section"
|
512 |
msgstr "Sektion"
|
513 |
|
514 |
+
#: loggers/SimpleUserLogger.php:22
|
515 |
msgid ""
|
516 |
"Failed to login to account with username \"{login_user_login}\" because an "
|
517 |
"incorrect password was entered"
|
519 |
"Misslyckades att logga in på kontot med användarnamnet \"{login_user_login}\" "
|
520 |
"eftersom ett felaktigt lösenord angavs"
|
521 |
|
522 |
+
#: loggers/SimpleUserLogger.php:23
|
523 |
msgid ""
|
524 |
"Failed to login with username \"{failed_login_username}\" because no user "
|
525 |
+
"with that username exists"
|
526 |
msgstr ""
|
527 |
+
"Det gick inte att logga in med användarnamn \"{failed_login_username}\" "
|
528 |
+
"eftersom ingen användare med det användarnamnet existerar"
|
529 |
|
530 |
+
#: loggers/SimpleUserLogger.php:24
|
531 |
msgid "Logged in"
|
532 |
msgstr "Loggade in"
|
533 |
|
534 |
+
#: loggers/SimpleUserLogger.php:25
|
535 |
msgid "Unknown user logged in"
|
536 |
msgstr "Okänd användare loggade in"
|
537 |
|
538 |
+
#: loggers/SimpleUserLogger.php:26
|
539 |
msgid "Logged out"
|
540 |
msgstr "Loggade ut"
|
541 |
|
542 |
+
#: loggers/SimpleUserLogger.php:27
|
543 |
msgid "Edited the profile for user {edited_user_login} ({edited_user_email})"
|
544 |
msgstr ""
|
545 |
"Redigerade profilen för användaren {edited_user_login} ({edited_user_email})"
|
546 |
|
547 |
+
#: loggers/SimpleUserLogger.php:28
|
548 |
msgid ""
|
549 |
"Created user {created_user_login} ({created_user_email}) with role "
|
550 |
"{created_user_role}"
|
552 |
"Skapade användare {created_user_login} ({created_user_email}) med rollen "
|
553 |
"{created_user_role}"
|
554 |
|
555 |
+
#: loggers/SimpleUserLogger.php:29
|
556 |
msgid "Deleted user {deleted_user_login} ({deleted_user_email})"
|
557 |
msgstr "Raderade användaren {deleted_user_login} ({deleted_user_email})"
|
558 |
|
559 |
+
#: loggers/SimpleUserLogger.php:227
|
560 |
msgid "Edited <a href=\"{edit_profile_link}\">your profile</a>"
|
561 |
msgstr "Redigerade <a href=\"{edit_profile_link}\">din profl</a>"
|
562 |
|
563 |
+
#: loggers/SimpleUserLogger.php:231
|
564 |
msgid "Edited <a href=\"{edit_profile_link}\">their profile</a>"
|
565 |
msgstr "Redigerade <a href=\"{edit_profile_link}\">sin profil</a>"
|
566 |
|
567 |
+
#: loggers/SimpleUserLogger.php:240
|
568 |
msgid "Edited your profile"
|
569 |
msgstr "Redigerade din profil"
|
570 |
|
571 |
+
#: loggers/SimpleUserLogger.php:251
|
572 |
msgid ""
|
573 |
"Edited the profile for user <a href="
|
574 |
"\"{edit_profile_link}\">{edited_user_login} ({edited_user_email})</a>"
|
624 |
msgid "Deleted users are also included."
|
625 |
msgstr "Raderade användare är också inkluderade."
|
626 |
|
|
|
|
|
|
|
|
|
627 |
#. Plugin URI of the plugin/theme
|
628 |
msgid "http://simple-history.com"
|
629 |
msgstr "http://simple-history.com"
|
644 |
msgid "http://simple-history.com/"
|
645 |
msgstr "http://simple-history.com"
|
646 |
|
647 |
+
#: SimpleHistory.php:249
|
648 |
msgctxt ""
|
649 |
"Message visible while waiting for log to load from server the first time"
|
650 |
msgid "Loading history..."
|
651 |
msgstr "Laddar historik..."
|
652 |
|
653 |
+
#: SimpleHistory.php:286
|
654 |
msgctxt "page n of n"
|
655 |
msgid "of"
|
656 |
msgstr "av"
|
657 |
|
658 |
+
#: SimpleHistory.php:357
|
659 |
msgctxt "API: not enought arguments passed"
|
660 |
msgid "Not enough args specified"
|
661 |
msgstr "Inte tillräckligt med arguments specifierade"
|
662 |
|
663 |
+
#: SimpleHistory.php:1235
|
664 |
msgctxt "dashboard menu name"
|
665 |
msgid "Simple History"
|
666 |
msgstr "Simple History"
|
667 |
|
668 |
+
#: SimpleHistory.php:1359
|
669 |
msgctxt "history page headline"
|
670 |
msgid "Simple History"
|
671 |
msgstr "Simple History"
|
672 |
|
673 |
+
#: SimpleHistory.php:1619
|
674 |
+
msgctxt "simple-history"
|
675 |
+
msgid "Simple History removed one event that were older than {days} days"
|
676 |
+
msgid_plural ""
|
677 |
+
"Simple History removed {num_rows} events that were older than {days} days"
|
678 |
+
msgstr[0] "Simple History raderade en händelse som var äldre än {days} dagar."
|
679 |
+
msgstr[1] ""
|
680 |
+
"Simple History radera {num_rows} händelser som var äldre än {days} dagar"
|
681 |
+
|
682 |
+
#: SimpleHistory.php:1963
|
683 |
+
msgctxt "Log level in gui"
|
684 |
+
msgid "emergency"
|
685 |
+
msgstr "kritiskt"
|
686 |
+
|
687 |
+
#: SimpleHistory.php:1967
|
688 |
+
msgctxt "Log level in gui"
|
689 |
+
msgid "alert"
|
690 |
+
msgstr "alert"
|
691 |
+
|
692 |
+
#: SimpleHistory.php:1971
|
693 |
+
msgctxt "Log level in gui"
|
694 |
+
msgid "critical"
|
695 |
+
msgstr "kritiskt"
|
696 |
+
|
697 |
+
#: SimpleHistory.php:1975
|
698 |
+
msgctxt "Log level in gui"
|
699 |
+
msgid "error"
|
700 |
+
msgstr "error"
|
701 |
+
|
702 |
+
#: SimpleHistory.php:1979
|
703 |
+
msgctxt "Log level in gui"
|
704 |
+
msgid "warning"
|
705 |
+
msgstr "warning"
|
706 |
+
|
707 |
+
#: SimpleHistory.php:1983
|
708 |
+
msgctxt "Log level in gui"
|
709 |
+
msgid "notice"
|
710 |
+
msgstr "notice"
|
711 |
+
|
712 |
+
#: SimpleHistory.php:1987
|
713 |
+
msgctxt "Log level in gui"
|
714 |
+
msgid "info"
|
715 |
+
msgstr "info"
|
716 |
+
|
717 |
+
#: SimpleHistory.php:1991
|
718 |
+
msgctxt "Log level in gui"
|
719 |
+
msgid "debug"
|
720 |
+
msgstr "debug"
|
721 |
+
|
722 |
+
#: SimpleHistory.php:1996
|
723 |
+
msgctxt "Log level in gui"
|
724 |
+
msgid "Emergency"
|
725 |
+
msgstr "Emergency"
|
726 |
+
|
727 |
+
#: SimpleHistory.php:2000
|
728 |
+
msgctxt "Log level in gui"
|
729 |
+
msgid "Alert"
|
730 |
+
msgstr "Alert"
|
731 |
+
|
732 |
+
#: SimpleHistory.php:2004
|
733 |
+
msgctxt "Log level in gui"
|
734 |
+
msgid "Critical"
|
735 |
+
msgstr "Critical"
|
736 |
+
|
737 |
+
#: SimpleHistory.php:2008
|
738 |
+
msgctxt "Log level in gui"
|
739 |
+
msgid "Error"
|
740 |
+
msgstr "Error"
|
741 |
+
|
742 |
+
#: SimpleHistory.php:2012
|
743 |
+
msgctxt "Log level in gui"
|
744 |
+
msgid "Warning"
|
745 |
+
msgstr "Warning"
|
746 |
+
|
747 |
+
#: SimpleHistory.php:2016
|
748 |
+
msgctxt "Log level in gui"
|
749 |
+
msgid "Notice"
|
750 |
+
msgstr "Notice"
|
751 |
+
|
752 |
+
#: SimpleHistory.php:2020
|
753 |
+
msgctxt "Log level in gui"
|
754 |
+
msgid "Info"
|
755 |
+
msgstr "Info"
|
756 |
+
|
757 |
+
#: SimpleHistory.php:2024
|
758 |
+
msgctxt "Log level in gui"
|
759 |
+
msgid "Debug"
|
760 |
+
msgstr "Debug"
|
761 |
+
|
762 |
#: dropins/SimpleHistoryDonateDropin.php:51
|
763 |
msgctxt "donate settings headline"
|
764 |
msgid "Donate"
|
765 |
msgstr "Donera"
|
766 |
|
767 |
+
#: dropins/SimpleHistoryFilterDropin.php:50
|
768 |
+
msgctxt "Filter dropin: button to show more search options"
|
769 |
+
msgid "Show options"
|
770 |
+
msgstr "Visa alternativ"
|
771 |
+
|
772 |
+
#: dropins/SimpleHistoryFilterDropin.php:160
|
773 |
+
msgctxt "Filter dropin: button to hide more search options"
|
774 |
+
msgid "Hide options"
|
775 |
+
msgstr "Göm alternativ"
|
776 |
+
|
777 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:66
|
778 |
+
msgctxt "IP Info Dropin"
|
779 |
+
msgid "That IP address does not seem like a public one."
|
780 |
+
msgstr "Det IP-numret verkar inte vara publikt."
|
781 |
+
|
782 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:85
|
783 |
+
msgctxt "IP Info Dropin"
|
784 |
+
msgid "IP address"
|
785 |
+
msgstr "IP-adress"
|
786 |
+
|
787 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:96
|
788 |
+
msgctxt "IP Info Dropin"
|
789 |
+
msgid "Hostname"
|
790 |
+
msgstr "Värdnamn"
|
791 |
+
|
792 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:107
|
793 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:118
|
794 |
+
msgctxt "IP Info Dropin"
|
795 |
+
msgid "Network"
|
796 |
+
msgstr "Nätverk"
|
797 |
+
|
798 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:129
|
799 |
+
msgctxt "IP Info Dropin"
|
800 |
+
msgid "City"
|
801 |
+
msgstr "Stad"
|
802 |
+
|
803 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:140
|
804 |
+
msgctxt "IP Info Dropin"
|
805 |
+
msgid "Region"
|
806 |
+
msgstr "Region"
|
807 |
+
|
808 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:151
|
809 |
+
msgctxt "IP Info Dropin"
|
810 |
+
msgid "Country"
|
811 |
+
msgstr "Land"
|
812 |
+
|
813 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:162
|
814 |
+
msgctxt "IP Info Dropin"
|
815 |
+
msgid "IP info provided by %1$s ipinfo.io %2$s"
|
816 |
+
msgstr "IP-informationen kommer från %1$s ipinfo.io %2$s"
|
817 |
+
|
818 |
#: dropins/SimpleHistoryNewRowsNotifier.php:38
|
819 |
msgctxt "New rows notifier: error while checking for new rows"
|
820 |
msgid "An error occured while checking for new log rows"
|
825 |
msgid "RSS feed"
|
826 |
msgstr "RSS-flöde"
|
827 |
|
828 |
+
#: dropins/SimpleHistorySidebarDropin.php:31
|
829 |
+
msgctxt "Sidebar box"
|
830 |
+
msgid "Simple History is on GitHub"
|
831 |
+
msgstr "Simple History finns på GitHub"
|
832 |
+
|
833 |
+
#: dropins/SimpleHistorySidebarDropin.php:34
|
834 |
+
msgctxt "Sidebar box"
|
835 |
+
msgid ""
|
836 |
+
"You can star, fork, or report issues with this plugin over at the <a href="
|
837 |
+
"\"%1$s\">GitHub page</a>."
|
838 |
+
msgstr ""
|
839 |
+
"Du kan stjärnmärka, forka, eller rapportera problem med tillägget på dess "
|
840 |
+
"sida på <a href=\"%1$s\">GitHub</a>."
|
841 |
+
|
842 |
+
#: dropins/SimpleHistorySidebarDropin.php:48
|
843 |
+
msgctxt "Sidebar box"
|
844 |
+
msgid "Donate to support development"
|
845 |
+
msgstr "Donera för att stödja utvecklingen"
|
846 |
+
|
847 |
+
#: dropins/SimpleHistorySidebarDropin.php:51
|
848 |
+
msgctxt "Sidebar box"
|
849 |
+
msgid ""
|
850 |
+
"If you like and use Simple History you should <a href=\"%1$s\">donate to keep "
|
851 |
+
"this plugin free</a>."
|
852 |
+
msgstr ""
|
853 |
+
"Om du gillar och använder Simple History så <a href=\"%1$s\">donera så att "
|
854 |
+
"tillägget kan fortsätta vara gratis</a>."
|
855 |
+
|
856 |
+
#: dropins/SimpleHistorySidebarDropin.php:65
|
857 |
+
msgctxt "Sidebar box"
|
858 |
+
msgid "Review this plugin if you like it"
|
859 |
+
msgstr "Recensera tillägget om du gillar det"
|
860 |
+
|
861 |
+
#: dropins/SimpleHistorySidebarDropin.php:68
|
862 |
+
msgctxt "Sidebar box"
|
863 |
+
msgid ""
|
864 |
+
"If you like Simple History then please <a href=\"%1$s\">give it a nice review "
|
865 |
+
"over at wordpress.org</a>."
|
866 |
+
msgstr ""
|
867 |
+
"Om du gillar Simple History så <a href=\"%1$s\">ge gärna en positiv recension "
|
868 |
+
"på wordpress.org</a>."
|
869 |
+
|
870 |
+
#: dropins/SimpleHistorySidebarDropin.php:72
|
871 |
+
msgctxt "Sidebar box"
|
872 |
+
msgid ""
|
873 |
+
"A good review will help new users find this plugin. And it will make the "
|
874 |
+
"plugin author very happy :)"
|
875 |
+
msgstr ""
|
876 |
+
"En bra recension hjälper nya användare att hitta tillägget. Och det kommer "
|
877 |
+
"göra utvecklaren väldigt glad!"
|
878 |
+
|
879 |
+
#: loggers/SimpleCommentsLogger.php:95
|
880 |
msgctxt "A comment was added to the database by a non-logged in internet user"
|
881 |
msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
|
882 |
msgstr ""
|
883 |
"Lade till en kommentar till {comment_post_type} \"{comment_post_title}\""
|
884 |
|
885 |
+
#: loggers/SimpleCommentsLogger.php:101
|
886 |
msgctxt "A comment was added to the database by a logged in user"
|
887 |
msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
|
888 |
msgstr ""
|
889 |
"Lade till en kommentar till {comment_post_type} \"{comment_post_title}\""
|
890 |
|
891 |
+
#: loggers/SimpleCommentsLogger.php:107
|
892 |
msgctxt "A comment was approved"
|
893 |
msgid ""
|
894 |
"Approved a comment to \"{comment_post_title}\" by {comment_author} "
|
897 |
"Godkände en kommentar till \"{comment_post_title}\" av {comment_author} "
|
898 |
"({comment_author_email})"
|
899 |
|
900 |
+
#: loggers/SimpleCommentsLogger.php:113
|
901 |
msgctxt "A comment was was unapproved"
|
902 |
msgid ""
|
903 |
"Unapproved a comment to \"{comment_post_title}\" by {comment_author} "
|
906 |
"Godkände inte en kommentar till \"{comment_post_title}\" av {comment_author} "
|
907 |
"({comment_author_email})"
|
908 |
|
909 |
+
#: loggers/SimpleCommentsLogger.php:119
|
910 |
msgctxt "A comment was marked as spam"
|
911 |
msgid "Marked a comment to post \"{comment_post_title}\" as spam"
|
912 |
msgstr "Markerade en kommentar till \"{comment_post_title}\" som spam"
|
913 |
|
914 |
+
#: loggers/SimpleCommentsLogger.php:125
|
915 |
msgctxt "A comment was marked moved to the trash"
|
916 |
msgid ""
|
917 |
"Trashed a comment to \"{comment_post_title}\" by {comment_author} "
|
920 |
"Kastade en kommentar till \"{comment_post_title}\" av {comment_author} "
|
921 |
"({comment_author_email}) i papperskorgen"
|
922 |
|
923 |
+
#: loggers/SimpleCommentsLogger.php:131
|
924 |
msgctxt "A comment was restored from the trash"
|
925 |
msgid ""
|
926 |
"Restored a comment to \"{comment_post_title}\" by {comment_author} "
|
929 |
"Återställde en kommentar till \"{comment_post_title}\" av {comment_author} "
|
930 |
"({comment_author_email}) från papperskorgen"
|
931 |
|
932 |
+
#: loggers/SimpleCommentsLogger.php:137
|
933 |
msgctxt "A comment was deleted"
|
934 |
msgid ""
|
935 |
"Deleted a comment to \"{comment_post_title}\" by {comment_author} "
|
938 |
"Raderade en kommentar kommentar till \"{comment_post_title}\" av "
|
939 |
"{comment_author} ({comment_author_email})"
|
940 |
|
941 |
+
#: loggers/SimpleCommentsLogger.php:143
|
942 |
msgctxt "A comment was edited"
|
943 |
msgid ""
|
944 |
"Edited a comment to \"{comment_post_title}\" by {comment_author} "
|
947 |
"Redigerade en kommentar till \"{comment_post_title}\" av {comment_author} "
|
948 |
"({comment_author_email})"
|
949 |
|
950 |
+
#: loggers/SimpleCommentsLogger.php:150
|
951 |
msgctxt "A trackback was added to the database by a non-logged in internet user"
|
952 |
msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
|
953 |
msgstr ""
|
954 |
"Lade till en trackback till {comment_post_type} \"{comment_post_title}\""
|
955 |
|
956 |
+
#: loggers/SimpleCommentsLogger.php:205
|
957 |
msgctxt "A trackback was added to the database by a non-logged in internet user"
|
958 |
msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
|
959 |
msgstr "Lade till en pingback till {comment_post_type} \"{comment_post_title}\""
|
960 |
|
961 |
+
#: loggers/SimpleCommentsLogger.php:156
|
962 |
msgctxt "A trackback was added to the database by a logged in user"
|
963 |
msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
|
964 |
msgstr ""
|
965 |
"Lade till en trackback till {comment_post_type} \"{comment_post_title}\""
|
966 |
|
967 |
+
#: loggers/SimpleCommentsLogger.php:162
|
968 |
msgctxt "A trackback was approved"
|
969 |
msgid ""
|
970 |
"Approved a trackback to \"{comment_post_title}\" by {comment_author} "
|
973 |
"Godkände en trackback till \"{comment_post_title}\" av {comment_author} "
|
974 |
"({comment_author_email})"
|
975 |
|
976 |
+
#: loggers/SimpleCommentsLogger.php:168
|
977 |
msgctxt "A trackback was was unapproved"
|
978 |
msgid ""
|
979 |
"Unapproved a trackback to \"{comment_post_title}\" by {comment_author} "
|
982 |
"Godkände inte en trackback till \"{comment_post_title}\" av {comment_author} "
|
983 |
"({comment_author_email})"
|
984 |
|
985 |
+
#: loggers/SimpleCommentsLogger.php:174
|
986 |
msgctxt "A trackback was marked as spam"
|
987 |
msgid "Marked a trackback to post \"{comment_post_title}\" as spam"
|
988 |
msgstr "Markerade en trackback till \"{comment_post_title}\" som spam"
|
989 |
|
990 |
+
#: loggers/SimpleCommentsLogger.php:180
|
991 |
msgctxt "A trackback was marked moved to the trash"
|
992 |
msgid ""
|
993 |
"Trashed a trackback to \"{comment_post_title}\" by {comment_author} "
|
996 |
"Kastade en trackback till \"{comment_post_title}\" av {comment_author} "
|
997 |
"({comment_author_email}) i papperskorgen"
|
998 |
|
999 |
+
#: loggers/SimpleCommentsLogger.php:186
|
1000 |
msgctxt "A trackback was restored from the trash"
|
1001 |
msgid ""
|
1002 |
"Restored a trackback to \"{comment_post_title}\" by {comment_author} "
|
1005 |
"Återställde en trackback till \"{comment_post_title}\" av {comment_author} "
|
1006 |
"({comment_author_email}) från papperskorgen"
|
1007 |
|
1008 |
+
#: loggers/SimpleCommentsLogger.php:192
|
1009 |
msgctxt "A trackback was deleted"
|
1010 |
msgid ""
|
1011 |
"Deleted a trackback to \"{comment_post_title}\" by {comment_author} "
|
1014 |
"Raderade en trackback till \"{comment_post_title}\" av {comment_author} "
|
1015 |
"({comment_author_email})"
|
1016 |
|
1017 |
+
#: loggers/SimpleCommentsLogger.php:198
|
1018 |
msgctxt "A trackback was edited"
|
1019 |
msgid ""
|
1020 |
"Edited a trackback to \"{comment_post_title}\" by {comment_author} "
|
1023 |
"Redigerade en trackback till \"{comment_post_title}\" av {comment_author} "
|
1024 |
"({comment_author_email})"
|
1025 |
|
1026 |
+
#: loggers/SimpleCommentsLogger.php:211
|
1027 |
msgctxt "A pingback was added to the database by a logged in user"
|
1028 |
msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
|
1029 |
msgstr "Lade till en pingback till {comment_post_type} \"{comment_post_title}\""
|
1030 |
|
1031 |
+
#: loggers/SimpleCommentsLogger.php:217
|
1032 |
msgctxt "A pingback was approved"
|
1033 |
msgid ""
|
1034 |
"Approved a pingback to \"{comment_post_title}\" by "
|
1037 |
"Godkände en pingback till \"{comment_post_title}\" av {comment_author} "
|
1038 |
"({comment_author_email}) från papperskorgen"
|
1039 |
|
1040 |
+
#: loggers/SimpleCommentsLogger.php:223
|
1041 |
msgctxt "A pingback was was unapproved"
|
1042 |
msgid ""
|
1043 |
"Unapproved a pingback to \"{comment_post_title}\" by "
|
1046 |
"Ångrade godkännande av en pingack till \"{comment_post_title}\" av "
|
1047 |
"{comment_author} ({comment_author_email})"
|
1048 |
|
1049 |
+
#: loggers/SimpleCommentsLogger.php:229
|
1050 |
msgctxt "A pingback was marked as spam"
|
1051 |
msgid "Marked a pingback to post \"{comment_post_title}\" as spam"
|
1052 |
msgstr "Markerade en pingback till \"{comment_post_title}\" som spam"
|
1053 |
|
1054 |
+
#: loggers/SimpleCommentsLogger.php:235
|
1055 |
msgctxt "A pingback was marked moved to the trash"
|
1056 |
msgid ""
|
1057 |
"Trashed a pingback to \"{comment_post_title}\" by {comment_author} "
|
1060 |
"Kastade en pingback till \"{comment_post_title}\" av {comment_author} "
|
1061 |
"({comment_author_email}) i papperskorgen"
|
1062 |
|
1063 |
+
#: loggers/SimpleCommentsLogger.php:241
|
1064 |
msgctxt "A pingback was restored from the trash"
|
1065 |
msgid ""
|
1066 |
"Restored a pingback to \"{comment_post_title}\" by {comment_author} "
|
1069 |
"Ångrade godkännandet av en kommentar till \"{comment_post_title}\" av "
|
1070 |
"{comment_author} ({comment_author_email})"
|
1071 |
|
1072 |
+
#: loggers/SimpleCommentsLogger.php:247
|
1073 |
msgctxt "A pingback was deleted"
|
1074 |
msgid ""
|
1075 |
"Deleted a pingback to \"{comment_post_title}\" by {comment_author} "
|
1078 |
"Raderade en pingback till \"{comment_post_title}\" av {comment_author} "
|
1079 |
"({comment_author_email})"
|
1080 |
|
1081 |
+
#: loggers/SimpleCommentsLogger.php:253
|
1082 |
msgctxt "A pingback was edited"
|
1083 |
msgid ""
|
1084 |
"Edited a pingback to \"{comment_post_title}\" by {comment_author} "
|
1087 |
"Redigerade en pingback till \"{comment_post_title}\" av {comment_author} "
|
1088 |
"({comment_author_email})"
|
1089 |
|
1090 |
+
#: loggers/SimpleCommentsLogger.php:264
|
1091 |
msgctxt "Comments logger: search"
|
1092 |
msgid "Comments"
|
1093 |
msgstr "Kommentarer"
|
1094 |
|
1095 |
+
#: loggers/SimpleCommentsLogger.php:265
|
1096 |
msgctxt "Comments logger: search"
|
1097 |
msgid "All comments activity"
|
1098 |
msgstr "Alla kommentarshändelser"
|
1099 |
|
1100 |
+
#: loggers/SimpleCommentsLogger.php:267
|
1101 |
msgctxt "Comments logger: search"
|
1102 |
msgid "Added comments"
|
1103 |
msgstr "Tillagda kommentarer"
|
1104 |
|
1105 |
+
#: loggers/SimpleCommentsLogger.php:275
|
1106 |
msgctxt "Comments logger: search"
|
1107 |
msgid "Edited comments"
|
1108 |
msgstr "Redigerade kommentarer"
|
1109 |
|
1110 |
+
#: loggers/SimpleCommentsLogger.php:280
|
1111 |
msgctxt "Comments logger: search"
|
1112 |
msgid "Approved comments"
|
1113 |
msgstr "Godkända kommentarer"
|
1114 |
|
1115 |
+
#: loggers/SimpleCommentsLogger.php:285
|
1116 |
msgctxt "Comments logger: search"
|
1117 |
msgid "Held comments"
|
1118 |
msgstr "Tillbakahållna kommentar"
|
1119 |
|
1120 |
+
#: loggers/SimpleCommentsLogger.php:290
|
1121 |
msgctxt "Comments logger: search"
|
1122 |
msgid "Comments status changed to spam"
|
1123 |
msgstr "Status på kommentar ändrad till spam"
|
1124 |
|
1125 |
+
#: loggers/SimpleCommentsLogger.php:295
|
1126 |
msgctxt "Comments logger: search"
|
1127 |
msgid "Trashed comments"
|
1128 |
msgstr "Kastade kommentarer"
|
1129 |
|
1130 |
+
#: loggers/SimpleCommentsLogger.php:300
|
1131 |
msgctxt "Comments logger: search"
|
1132 |
msgid "Untrashed comments"
|
1133 |
msgstr "Kommentarer tillbakatagna från papperskorgen"
|
1134 |
|
1135 |
+
#: loggers/SimpleCommentsLogger.php:305
|
1136 |
msgctxt "Comments logger: search"
|
1137 |
msgid "Deleted comments"
|
1138 |
msgstr "Borttagna kommentarer"
|
1139 |
|
1140 |
+
#: loggers/SimpleCommentsLogger.php:602 loggers/SimpleCommentsLogger.php:615
|
1141 |
+
#: loggers/SimpleCommentsLogger.php:629
|
1142 |
msgctxt "comments logger - detailed output comment status"
|
1143 |
msgid "Status"
|
1144 |
msgstr "Status"
|
1145 |
|
1146 |
+
#: loggers/SimpleCommentsLogger.php:604 loggers/SimpleCommentsLogger.php:617
|
1147 |
+
#: loggers/SimpleCommentsLogger.php:631
|
1148 |
msgctxt "comments logger - detailed output author"
|
1149 |
msgid "Name"
|
1150 |
msgstr "Namn"
|
1151 |
|
1152 |
+
#: loggers/SimpleCommentsLogger.php:605 loggers/SimpleCommentsLogger.php:618
|
1153 |
+
#: loggers/SimpleCommentsLogger.php:632
|
1154 |
msgctxt "comments logger - detailed output email"
|
1155 |
msgid "Email"
|
1156 |
msgstr "E-post"
|
1157 |
|
1158 |
+
#: loggers/SimpleCommentsLogger.php:606 loggers/SimpleCommentsLogger.php:619
|
1159 |
msgctxt "comments logger - detailed output content"
|
1160 |
msgid "Content"
|
1161 |
msgstr "Innehåll"
|
1162 |
|
1163 |
+
#: loggers/SimpleCommentsLogger.php:633
|
1164 |
msgctxt "comments logger - detailed output content"
|
1165 |
msgid "Comment"
|
1166 |
msgstr "Kommentar"
|
1167 |
|
1168 |
+
#: loggers/SimpleCommentsLogger.php:759
|
1169 |
msgctxt "comments logger - edit comment"
|
1170 |
msgid "View/Edit"
|
1171 |
msgstr "Visa/Redigera"
|
1180 |
msgid "WordPress core updates"
|
1181 |
msgstr "WordPress core uppdateringar"
|
1182 |
|
1183 |
+
#: loggers/SimpleUserLogger.php:54
|
1184 |
msgctxt "User logger: search"
|
1185 |
msgid "Users"
|
1186 |
msgstr "Användare"
|
1187 |
|
1188 |
+
#: loggers/SimpleUserLogger.php:55
|
1189 |
msgctxt "User logger: search"
|
1190 |
msgid "All user activity"
|
1191 |
msgstr "All användaraktivitet"
|
1192 |
|
1193 |
+
#: loggers/SimpleUserLogger.php:57
|
1194 |
msgctxt "User logger: search"
|
1195 |
msgid "Successful user logins"
|
1196 |
msgstr "Lyckade inloggningar av användare"
|
1197 |
|
1198 |
+
#: loggers/SimpleUserLogger.php:61
|
1199 |
msgctxt "User logger: search"
|
1200 |
msgid "Failed user logins"
|
1201 |
msgstr "Misslyckade inloggningar av användare"
|
1202 |
|
1203 |
+
#: loggers/SimpleUserLogger.php:65
|
1204 |
msgctxt "User logger: search"
|
1205 |
msgid "User logouts"
|
1206 |
msgstr "Utloggning av användare"
|
1207 |
|
1208 |
+
#: loggers/SimpleUserLogger.php:68
|
1209 |
msgctxt "User logger: search"
|
1210 |
msgid "Created users"
|
1211 |
msgstr "Skapade användare"
|
1212 |
|
1213 |
+
#: loggers/SimpleUserLogger.php:71
|
1214 |
msgctxt "User logger: search"
|
1215 |
msgid "User profile updates"
|
1216 |
msgstr "Uppdateringar av användarprofiler"
|
1217 |
|
1218 |
+
#: loggers/SimpleUserLogger.php:74
|
1219 |
msgctxt "User logger: search"
|
1220 |
msgid "User deletions"
|
1221 |
msgstr "Radering av användare"
|
1230 |
msgid "Created exports"
|
1231 |
msgstr "Skapade exporter"
|
1232 |
|
1233 |
+
#: loggers/SimpleLogger.php:190
|
1234 |
msgctxt "header output when initiator is the currently logged in user"
|
1235 |
msgid "You"
|
1236 |
msgstr "Du"
|
1331 |
#: loggers/SimplePluginLogger.php:81
|
1332 |
msgctxt "Plugin update failed"
|
1333 |
msgid "Updated plugin \"{plugin_name}\""
|
1334 |
+
msgstr "Uppdaterade tillägget \"{plugin_name}\""
|
1335 |
|
1336 |
#: loggers/SimplePluginLogger.php:87
|
1337 |
msgctxt "Plugin file edited"
|
1349 |
"Updated plugin \"{plugin_name}\" to {plugin_version} from "
|
1350 |
"{plugin_prev_version}"
|
1351 |
msgstr ""
|
1352 |
+
"Uppdaterade tillägget \"{plugin_name}\" till {plugin_version} från "
|
1353 |
"{plugin_prev_version}"
|
1354 |
|
1355 |
#: loggers/SimplePluginLogger.php:108
|
1397 |
msgid "Deleted plugins"
|
1398 |
msgstr "Raderade plugins"
|
1399 |
|
1400 |
+
#: loggers/SimplePluginLogger.php:887
|
1401 |
msgctxt "plugin logger - detailed output version"
|
1402 |
msgid "Version"
|
1403 |
msgstr "Version"
|
1404 |
|
1405 |
+
#: loggers/SimplePluginLogger.php:889
|
1406 |
msgctxt "plugin logger - detailed output author"
|
1407 |
msgid "Author"
|
1408 |
msgstr "Författare"
|
1409 |
|
1410 |
+
#: loggers/SimplePluginLogger.php:891
|
1411 |
msgctxt "plugin logger - detailed output author"
|
1412 |
msgid "Requires"
|
1413 |
msgstr "Kräver"
|
1414 |
|
1415 |
+
#: loggers/SimplePluginLogger.php:890
|
1416 |
msgctxt "plugin logger - detailed output url"
|
1417 |
msgid "URL"
|
1418 |
msgstr "URL"
|
1419 |
|
1420 |
+
#: loggers/SimplePluginLogger.php:892
|
1421 |
msgctxt "plugin logger - detailed output compatible"
|
1422 |
msgid "Compatible up to"
|
1423 |
msgstr "Kompatibel upp till"
|
1424 |
|
1425 |
+
#: loggers/SimplePluginLogger.php:893
|
1426 |
msgctxt "plugin logger - detailed output downloaded"
|
1427 |
msgid "Downloads"
|
1428 |
msgstr "Nedladdningar"
|
1429 |
|
1430 |
+
#: loggers/SimplePluginLogger.php:953
|
1431 |
msgctxt "plugin logger: plugin info thickbox title view all info"
|
1432 |
msgid "View plugin info"
|
1433 |
msgstr "Visa information om plugin"
|
1434 |
|
1435 |
+
#: loggers/SimplePluginLogger.php:968
|
1436 |
msgctxt "plugin logger: plugin info thickbox title"
|
1437 |
msgid "View plugin info"
|
1438 |
msgstr "Visa information om plugin"
|
1439 |
|
1440 |
+
#: loggers/SimplePluginLogger.php:972
|
1441 |
msgctxt "plugin logger: plugin info thickbox title"
|
1442 |
msgid "View changelog"
|
1443 |
msgstr "Visa ändringslogg"
|
1512 |
msgid "Background of themes changed"
|
1513 |
msgstr "Ändrade bakgrunder för teman"
|
1514 |
|
1515 |
+
#: loggers/SimpleUserLogger.php:36
|
1516 |
+
msgctxt "User destroys other login sessions for themself"
|
1517 |
+
msgid "Logged out from all other sessions"
|
1518 |
+
msgstr "Loggade ut från alla andra sessioner"
|
1519 |
+
|
1520 |
+
#: loggers/SimpleUserLogger.php:45
|
1521 |
+
msgctxt "User destroys all login sessions for a user"
|
1522 |
+
msgid "Logged out \"{user_display_name}\" from all sessions"
|
1523 |
+
msgstr "Loggade ut \"{user_display_name}\" från alla sessioner"
|
1524 |
+
|
1525 |
#: templates/settings-statsRowsPerDay.php:36
|
1526 |
msgctxt "stats: date in rows per day chart"
|
1527 |
msgid "M j"
|
1528 |
msgstr "M j"
|
1529 |
|
1530 |
+
#~ msgid "Filter"
|
1531 |
+
#~ msgstr "Filtrera"
|
1532 |
+
|
1533 |
+
#~ msgid "%1$d events today from one user and %3$d other source."
|
1534 |
+
#~ msgstr "%1$d händelser idag från en användare och från en annan källa."
|
1535 |
+
|
1536 |
+
#~ msgid "History"
|
1537 |
+
#~ msgstr "Historik"
|
1538 |
+
|
1539 |
#~ msgctxt "dashboard menu name"
|
1540 |
#~ msgid "History"
|
1541 |
#~ msgstr "Historik"
|
languages/simple-history.pot
CHANGED
@@ -1,14 +1,14 @@
|
|
1 |
-
# Copyright (C)
|
2 |
# This file is distributed under the same license as the Simple History package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Simple History 2.0.
|
6 |
"Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/Simple-History\n"
|
7 |
-
"POT-Creation-Date:
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"PO-Revision-Date:
|
12 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
13 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
14 |
"X-Generator: grunt-wp-i18n 0.4.9\n"
|
@@ -24,264 +24,309 @@ msgstr ""
|
|
24 |
"X-Poedit-Bookmarks: \n"
|
25 |
"X-Textdomain-Support: yes\n"
|
26 |
|
27 |
-
#:
|
28 |
-
msgid "
|
29 |
msgstr ""
|
30 |
|
31 |
-
#:
|
32 |
-
msgid "
|
|
|
|
|
33 |
msgstr ""
|
34 |
|
35 |
-
#:
|
36 |
-
msgid "
|
37 |
msgstr ""
|
38 |
|
39 |
-
#:
|
40 |
-
|
|
|
41 |
msgstr ""
|
42 |
|
43 |
-
#:
|
44 |
-
msgid "
|
45 |
msgstr ""
|
46 |
|
47 |
-
#:
|
48 |
-
msgid "
|
49 |
msgstr ""
|
50 |
|
51 |
-
#:
|
52 |
-
msgid "
|
53 |
msgstr ""
|
54 |
|
55 |
-
#:
|
56 |
-
msgid "
|
57 |
msgstr ""
|
58 |
|
59 |
-
#:
|
60 |
-
msgid "
|
61 |
msgstr ""
|
62 |
|
63 |
-
#:
|
64 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
msgstr ""
|
66 |
|
67 |
-
#:
|
68 |
-
msgid "
|
69 |
msgstr ""
|
70 |
|
71 |
-
#:
|
72 |
-
msgid "
|
73 |
msgstr ""
|
74 |
|
75 |
-
#:
|
76 |
-
|
|
|
77 |
msgstr ""
|
78 |
|
79 |
-
#:
|
80 |
-
|
|
|
81 |
msgstr ""
|
82 |
|
83 |
-
#:
|
84 |
-
msgid "
|
85 |
msgstr ""
|
86 |
|
87 |
-
#:
|
88 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
msgstr ""
|
90 |
|
91 |
-
#:
|
92 |
-
msgid "
|
|
|
|
|
93 |
msgstr ""
|
94 |
|
95 |
-
#:
|
96 |
-
msgid "
|
|
|
|
|
97 |
msgstr ""
|
98 |
|
99 |
-
#:
|
100 |
-
msgid "
|
101 |
msgstr ""
|
102 |
|
103 |
-
#:
|
104 |
-
msgid "
|
|
|
|
|
|
|
105 |
msgstr ""
|
106 |
|
107 |
-
#:
|
108 |
-
msgid "
|
109 |
msgstr ""
|
110 |
|
111 |
-
#:
|
112 |
-
msgid "
|
113 |
msgstr ""
|
114 |
|
115 |
-
#:
|
116 |
-
msgid "
|
117 |
msgstr ""
|
118 |
|
119 |
-
#:
|
120 |
-
msgid "
|
121 |
msgstr ""
|
122 |
|
123 |
-
#:
|
124 |
-
msgid "
|
125 |
msgstr ""
|
126 |
|
127 |
-
#: SimpleHistory.php:
|
128 |
-
msgid "
|
129 |
msgstr ""
|
130 |
|
131 |
-
#: SimpleHistory.php:
|
132 |
-
msgid "
|
133 |
msgstr ""
|
134 |
|
135 |
-
#: SimpleHistory.php:
|
136 |
-
msgid "
|
137 |
msgstr ""
|
138 |
|
139 |
-
#: SimpleHistory.php:
|
140 |
-
|
|
|
|
|
141 |
msgstr ""
|
142 |
|
143 |
-
#: SimpleHistory.php:
|
144 |
-
msgid "
|
145 |
msgstr ""
|
146 |
|
147 |
-
#: SimpleHistory.php:
|
148 |
-
msgid "
|
149 |
msgstr ""
|
150 |
|
151 |
-
#: SimpleHistory.php:
|
152 |
-
msgid "
|
153 |
msgstr ""
|
154 |
|
155 |
-
#:
|
156 |
-
msgid "
|
157 |
msgstr ""
|
158 |
|
159 |
-
#:
|
160 |
-
msgid ""
|
161 |
-
"If you find Simple History useful please <a href=\"%1$s\">donate</a> or <a "
|
162 |
-
"href=\"%2$s\">buy me something from my Amazon wish list</a>."
|
163 |
msgstr ""
|
164 |
|
165 |
-
#:
|
166 |
-
msgid "
|
167 |
msgstr ""
|
168 |
|
169 |
-
#:
|
170 |
-
msgid "
|
171 |
msgstr ""
|
172 |
|
173 |
-
#:
|
174 |
-
msgid "
|
175 |
msgstr ""
|
176 |
|
177 |
-
#:
|
178 |
-
msgid "
|
179 |
msgstr ""
|
180 |
|
181 |
-
#:
|
182 |
-
msgid "
|
183 |
msgstr ""
|
184 |
|
185 |
-
#:
|
186 |
-
msgid "
|
187 |
msgstr ""
|
188 |
|
189 |
-
#:
|
190 |
-
msgid "
|
191 |
-
|
192 |
-
msgstr[0] ""
|
193 |
-
msgstr[1] ""
|
194 |
|
195 |
-
#:
|
196 |
-
msgid "
|
197 |
msgstr ""
|
198 |
|
199 |
-
#:
|
200 |
-
msgid "
|
201 |
msgstr ""
|
202 |
|
203 |
-
#:
|
204 |
-
msgid "
|
205 |
msgstr ""
|
206 |
|
207 |
-
#:
|
208 |
-
|
209 |
-
msgid "History for %s"
|
210 |
msgstr ""
|
211 |
|
212 |
-
#:
|
213 |
-
|
214 |
-
msgid "WordPress History for %s"
|
215 |
msgstr ""
|
216 |
|
217 |
-
#:
|
218 |
-
msgid "
|
219 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
220 |
msgstr[0] ""
|
221 |
msgstr[1] ""
|
222 |
|
223 |
-
#:
|
224 |
-
msgid "
|
225 |
msgstr ""
|
226 |
|
227 |
-
#:
|
228 |
-
msgid ""
|
229 |
-
"Your RSS secret for Simple History RSS feed is wrong. Please see WordPress "
|
230 |
-
"settings for current link to the RSS feed."
|
231 |
msgstr ""
|
232 |
|
233 |
-
#:
|
234 |
-
msgid ""
|
235 |
-
"You can generate a new address for the RSS feed. This is useful if you "
|
236 |
-
"think that the address has fallen into the wrong hands."
|
237 |
msgstr ""
|
238 |
|
239 |
-
#:
|
240 |
-
msgid "
|
241 |
msgstr ""
|
242 |
|
243 |
-
#:
|
244 |
-
msgid ""
|
245 |
-
"Simple History has a RSS feed which you can subscribe to and receive log "
|
246 |
-
"updates. Make sure you only share the feed with people you trust, since it "
|
247 |
-
"can contain sensitive or confidential information."
|
248 |
msgstr ""
|
249 |
|
250 |
-
#:
|
251 |
-
msgid "
|
252 |
msgstr ""
|
253 |
|
254 |
-
#:
|
255 |
-
msgid "
|
256 |
msgstr ""
|
257 |
|
258 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
259 |
msgid ""
|
260 |
"Simple History is a great plugin, but to use it your server must have at "
|
261 |
"least PHP 5.3 installed (you have version %s)."
|
262 |
msgstr ""
|
263 |
|
264 |
-
#: loggers/SimpleCommentsLogger.php:
|
265 |
msgid "Spam"
|
266 |
msgstr ""
|
267 |
|
268 |
-
#: loggers/SimpleCommentsLogger.php:
|
269 |
msgid "Approved"
|
270 |
msgstr ""
|
271 |
|
272 |
-
#: loggers/SimpleCommentsLogger.php:
|
273 |
msgid "Pending"
|
274 |
msgstr ""
|
275 |
|
276 |
-
#: loggers/SimpleCommentsLogger.php:
|
277 |
msgid "Trackback"
|
278 |
msgstr ""
|
279 |
|
280 |
-
#: loggers/SimpleCommentsLogger.php:
|
281 |
msgid "Pingback"
|
282 |
msgstr ""
|
283 |
|
284 |
-
#: loggers/SimpleCommentsLogger.php:
|
285 |
msgid "Comment"
|
286 |
msgstr ""
|
287 |
|
@@ -290,7 +335,7 @@ msgid "Updated WordPress from {prev_version} to {new_version}"
|
|
290 |
msgstr ""
|
291 |
|
292 |
#: loggers/SimpleCoreUpdatesLogger.php:30
|
293 |
-
msgid "WordPress auto-updated
|
294 |
msgstr ""
|
295 |
|
296 |
#: loggers/SimpleExportLogger.php:23
|
@@ -305,28 +350,24 @@ msgstr ""
|
|
305 |
msgid "%d occasions"
|
306 |
msgstr ""
|
307 |
|
308 |
-
#: loggers/SimpleLogger.php:
|
309 |
msgid "Deleted user (had id %1$s, email %2$s, login %3$s)"
|
310 |
msgstr ""
|
311 |
|
312 |
-
#: loggers/SimpleLogger.php:
|
313 |
msgid "Anonymous web user"
|
314 |
msgstr ""
|
315 |
|
316 |
-
#: loggers/SimpleLogger.php:
|
317 |
msgid "Anonymous user from %1$s"
|
318 |
msgstr ""
|
319 |
|
320 |
-
#: loggers/SimpleLogger.php:
|
321 |
-
msgid "Just now"
|
322 |
-
msgstr ""
|
323 |
-
|
324 |
-
#: loggers/SimpleLogger.php:304
|
325 |
#. translators: Date format for log row header, see http:php.net/date
|
326 |
msgid "M j, Y \\a\\t G:i"
|
327 |
msgstr ""
|
328 |
|
329 |
-
#: loggers/SimpleLogger.php:
|
330 |
#. translators: 1: last modified date and time in human time diff-format
|
331 |
msgid "%1$s ago"
|
332 |
msgstr ""
|
@@ -343,27 +384,27 @@ msgstr ""
|
|
343 |
msgid "Deleted {post_type} \"{attachment_title}\" (\"{attachment_filename}\")"
|
344 |
msgstr ""
|
345 |
|
346 |
-
#: loggers/SimpleMediaLogger.php:
|
347 |
msgid "Edited {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
|
348 |
msgstr ""
|
349 |
|
350 |
-
#: loggers/SimpleMediaLogger.php:
|
351 |
msgid "Uploaded {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
|
352 |
msgstr ""
|
353 |
|
354 |
-
#: loggers/SimpleMediaLogger.php:
|
355 |
msgid "{attachment_thumb}"
|
356 |
msgstr ""
|
357 |
|
358 |
-
#: loggers/SimpleMediaLogger.php:
|
359 |
msgid "{attachment_size_format}"
|
360 |
msgstr ""
|
361 |
|
362 |
-
#: loggers/SimpleMediaLogger.php:
|
363 |
msgid "{attachment_filetype_extension}"
|
364 |
msgstr ""
|
365 |
|
366 |
-
#: loggers/SimpleMediaLogger.php:
|
367 |
msgid "{full_image_width} × {full_image_height}"
|
368 |
msgstr ""
|
369 |
|
@@ -403,35 +444,39 @@ msgstr ""
|
|
403 |
msgid "Settings page"
|
404 |
msgstr ""
|
405 |
|
406 |
-
#: loggers/
|
|
|
|
|
|
|
|
|
407 |
msgid "Created {post_type} \"{post_title}\""
|
408 |
msgstr ""
|
409 |
|
410 |
-
#: loggers/SimplePostLogger.php:
|
411 |
msgid "Updated {post_type} \"{post_title}\""
|
412 |
msgstr ""
|
413 |
|
414 |
-
#: loggers/SimplePostLogger.php:
|
415 |
msgid "Restored {post_type} \"{post_title}\" from trash"
|
416 |
msgstr ""
|
417 |
|
418 |
-
#: loggers/SimplePostLogger.php:
|
419 |
msgid "Deleted {post_type} \"{post_title}\""
|
420 |
msgstr ""
|
421 |
|
422 |
-
#: loggers/SimplePostLogger.php:
|
423 |
msgid "Moved {post_type} \"{post_title}\" to the trash"
|
424 |
msgstr ""
|
425 |
|
426 |
-
#: loggers/SimplePostLogger.php:
|
427 |
msgid "Updated {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a>"
|
428 |
msgstr ""
|
429 |
|
430 |
-
#: loggers/SimplePostLogger.php:
|
431 |
msgid "Created {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a>"
|
432 |
msgstr ""
|
433 |
|
434 |
-
#: loggers/SimplePostLogger.php:
|
435 |
msgid "Moved {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a> to the trash"
|
436 |
msgstr ""
|
437 |
|
@@ -467,57 +512,57 @@ msgstr ""
|
|
467 |
msgid "Section"
|
468 |
msgstr ""
|
469 |
|
470 |
-
#: loggers/SimpleUserLogger.php:
|
471 |
msgid ""
|
472 |
"Failed to login to account with username \"{login_user_login}\" because an "
|
473 |
"incorrect password was entered"
|
474 |
msgstr ""
|
475 |
|
476 |
-
#: loggers/SimpleUserLogger.php:
|
477 |
msgid ""
|
478 |
"Failed to login with username \"{failed_login_username}\" because no user "
|
479 |
-
"with that username
|
480 |
msgstr ""
|
481 |
|
482 |
-
#: loggers/SimpleUserLogger.php:
|
483 |
msgid "Logged in"
|
484 |
msgstr ""
|
485 |
|
486 |
-
#: loggers/SimpleUserLogger.php:
|
487 |
msgid "Unknown user logged in"
|
488 |
msgstr ""
|
489 |
|
490 |
-
#: loggers/SimpleUserLogger.php:
|
491 |
msgid "Logged out"
|
492 |
msgstr ""
|
493 |
|
494 |
-
#: loggers/SimpleUserLogger.php:
|
495 |
msgid "Edited the profile for user {edited_user_login} ({edited_user_email})"
|
496 |
msgstr ""
|
497 |
|
498 |
-
#: loggers/SimpleUserLogger.php:
|
499 |
msgid ""
|
500 |
"Created user {created_user_login} ({created_user_email}) with role "
|
501 |
"{created_user_role}"
|
502 |
msgstr ""
|
503 |
|
504 |
-
#: loggers/SimpleUserLogger.php:
|
505 |
msgid "Deleted user {deleted_user_login} ({deleted_user_email})"
|
506 |
msgstr ""
|
507 |
|
508 |
-
#: loggers/SimpleUserLogger.php:
|
509 |
msgid "Edited <a href=\"{edit_profile_link}\">your profile</a>"
|
510 |
msgstr ""
|
511 |
|
512 |
-
#: loggers/SimpleUserLogger.php:
|
513 |
msgid "Edited <a href=\"{edit_profile_link}\">their profile</a>"
|
514 |
msgstr ""
|
515 |
|
516 |
-
#: loggers/SimpleUserLogger.php:
|
517 |
msgid "Edited your profile"
|
518 |
msgstr ""
|
519 |
|
520 |
-
#: loggers/SimpleUserLogger.php:
|
521 |
msgid ""
|
522 |
"Edited the profile for user <a "
|
523 |
"href=\"{edit_profile_link}\">{edited_user_login} ({edited_user_email})</a>"
|
@@ -570,10 +615,6 @@ msgstr ""
|
|
570 |
msgid "Deleted users are also included."
|
571 |
msgstr ""
|
572 |
|
573 |
-
#. Plugin Name of the plugin/theme
|
574 |
-
msgid "Simple History"
|
575 |
-
msgstr ""
|
576 |
-
|
577 |
#. Plugin URI of the plugin/theme
|
578 |
msgid "http://simple-history.com"
|
579 |
msgstr ""
|
@@ -592,296 +633,477 @@ msgstr ""
|
|
592 |
msgid "http://simple-history.com/"
|
593 |
msgstr ""
|
594 |
|
595 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
596 |
msgctxt "Message visible while waiting for log to load from server the first time"
|
597 |
msgid "Loading history..."
|
598 |
msgstr ""
|
599 |
|
600 |
-
#: SimpleHistory.php:
|
601 |
msgctxt "page n of n"
|
602 |
msgid "of"
|
603 |
msgstr ""
|
604 |
|
605 |
-
#: SimpleHistory.php:
|
606 |
msgctxt "API: not enought arguments passed"
|
607 |
msgid "Not enough args specified"
|
608 |
msgstr ""
|
609 |
|
610 |
-
#: SimpleHistory.php:
|
611 |
msgctxt "dashboard menu name"
|
612 |
msgid "Simple History"
|
613 |
msgstr ""
|
614 |
|
615 |
-
#: SimpleHistory.php:
|
616 |
msgctxt "history page headline"
|
617 |
msgid "Simple History"
|
618 |
msgstr ""
|
619 |
|
620 |
-
#:
|
621 |
-
msgctxt "
|
622 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
623 |
msgstr ""
|
624 |
|
625 |
-
#:
|
626 |
-
msgctxt "
|
627 |
-
msgid "
|
628 |
msgstr ""
|
629 |
|
630 |
-
#:
|
631 |
-
msgctxt "
|
632 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
633 |
msgstr ""
|
634 |
|
635 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
636 |
msgctxt "A comment was added to the database by a non-logged in internet user"
|
637 |
msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
|
638 |
msgstr ""
|
639 |
|
640 |
-
#: loggers/SimpleCommentsLogger.php:
|
641 |
msgctxt "A comment was added to the database by a logged in user"
|
642 |
msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
|
643 |
msgstr ""
|
644 |
|
645 |
-
#: loggers/SimpleCommentsLogger.php:
|
646 |
msgctxt "A comment was approved"
|
647 |
msgid ""
|
648 |
"Approved a comment to \"{comment_post_title}\" by {comment_author} "
|
649 |
"({comment_author_email})"
|
650 |
msgstr ""
|
651 |
|
652 |
-
#: loggers/SimpleCommentsLogger.php:
|
653 |
msgctxt "A comment was was unapproved"
|
654 |
msgid ""
|
655 |
"Unapproved a comment to \"{comment_post_title}\" by {comment_author} "
|
656 |
"({comment_author_email})"
|
657 |
msgstr ""
|
658 |
|
659 |
-
#: loggers/SimpleCommentsLogger.php:
|
660 |
msgctxt "A comment was marked as spam"
|
661 |
msgid "Marked a comment to post \"{comment_post_title}\" as spam"
|
662 |
msgstr ""
|
663 |
|
664 |
-
#: loggers/SimpleCommentsLogger.php:
|
665 |
msgctxt "A comment was marked moved to the trash"
|
666 |
msgid ""
|
667 |
"Trashed a comment to \"{comment_post_title}\" by {comment_author} "
|
668 |
"({comment_author_email})"
|
669 |
msgstr ""
|
670 |
|
671 |
-
#: loggers/SimpleCommentsLogger.php:
|
672 |
msgctxt "A comment was restored from the trash"
|
673 |
msgid ""
|
674 |
"Restored a comment to \"{comment_post_title}\" by {comment_author} "
|
675 |
"({comment_author_email}) from the trash"
|
676 |
msgstr ""
|
677 |
|
678 |
-
#: loggers/SimpleCommentsLogger.php:
|
679 |
msgctxt "A comment was deleted"
|
680 |
msgid ""
|
681 |
"Deleted a comment to \"{comment_post_title}\" by {comment_author} "
|
682 |
"({comment_author_email})"
|
683 |
msgstr ""
|
684 |
|
685 |
-
#: loggers/SimpleCommentsLogger.php:
|
686 |
msgctxt "A comment was edited"
|
687 |
msgid ""
|
688 |
"Edited a comment to \"{comment_post_title}\" by {comment_author} "
|
689 |
"({comment_author_email})"
|
690 |
msgstr ""
|
691 |
|
692 |
-
#: loggers/SimpleCommentsLogger.php:
|
693 |
msgctxt "A trackback was added to the database by a non-logged in internet user"
|
694 |
msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
|
695 |
msgstr ""
|
696 |
|
697 |
-
#: loggers/SimpleCommentsLogger.php:
|
698 |
msgctxt "A trackback was added to the database by a non-logged in internet user"
|
699 |
msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
|
700 |
msgstr ""
|
701 |
|
702 |
-
#: loggers/SimpleCommentsLogger.php:
|
703 |
msgctxt "A trackback was added to the database by a logged in user"
|
704 |
msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
|
705 |
msgstr ""
|
706 |
|
707 |
-
#: loggers/SimpleCommentsLogger.php:
|
708 |
msgctxt "A trackback was approved"
|
709 |
msgid ""
|
710 |
"Approved a trackback to \"{comment_post_title}\" by {comment_author} "
|
711 |
"({comment_author_email})"
|
712 |
msgstr ""
|
713 |
|
714 |
-
#: loggers/SimpleCommentsLogger.php:
|
715 |
msgctxt "A trackback was was unapproved"
|
716 |
msgid ""
|
717 |
"Unapproved a trackback to \"{comment_post_title}\" by {comment_author} "
|
718 |
"({comment_author_email})"
|
719 |
msgstr ""
|
720 |
|
721 |
-
#: loggers/SimpleCommentsLogger.php:
|
722 |
msgctxt "A trackback was marked as spam"
|
723 |
msgid "Marked a trackback to post \"{comment_post_title}\" as spam"
|
724 |
msgstr ""
|
725 |
|
726 |
-
#: loggers/SimpleCommentsLogger.php:
|
727 |
msgctxt "A trackback was marked moved to the trash"
|
728 |
msgid ""
|
729 |
"Trashed a trackback to \"{comment_post_title}\" by {comment_author} "
|
730 |
"({comment_author_email})"
|
731 |
msgstr ""
|
732 |
|
733 |
-
#: loggers/SimpleCommentsLogger.php:
|
734 |
msgctxt "A trackback was restored from the trash"
|
735 |
msgid ""
|
736 |
"Restored a trackback to \"{comment_post_title}\" by {comment_author} "
|
737 |
"({comment_author_email}) from the trash"
|
738 |
msgstr ""
|
739 |
|
740 |
-
#: loggers/SimpleCommentsLogger.php:
|
741 |
msgctxt "A trackback was deleted"
|
742 |
msgid ""
|
743 |
"Deleted a trackback to \"{comment_post_title}\" by {comment_author} "
|
744 |
"({comment_author_email})"
|
745 |
msgstr ""
|
746 |
|
747 |
-
#: loggers/SimpleCommentsLogger.php:
|
748 |
msgctxt "A trackback was edited"
|
749 |
msgid ""
|
750 |
"Edited a trackback to \"{comment_post_title}\" by {comment_author} "
|
751 |
"({comment_author_email})"
|
752 |
msgstr ""
|
753 |
|
754 |
-
#: loggers/SimpleCommentsLogger.php:
|
755 |
msgctxt "A pingback was added to the database by a logged in user"
|
756 |
msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
|
757 |
msgstr ""
|
758 |
|
759 |
-
#: loggers/SimpleCommentsLogger.php:
|
760 |
msgctxt "A pingback was approved"
|
761 |
msgid ""
|
762 |
"Approved a pingback to \"{comment_post_title}\" by \"{comment_author}\"\" "
|
763 |
"({comment_author_email})"
|
764 |
msgstr ""
|
765 |
|
766 |
-
#: loggers/SimpleCommentsLogger.php:
|
767 |
msgctxt "A pingback was was unapproved"
|
768 |
msgid ""
|
769 |
"Unapproved a pingback to \"{comment_post_title}\" by \"{comment_author}\" "
|
770 |
"({comment_author_email})"
|
771 |
msgstr ""
|
772 |
|
773 |
-
#: loggers/SimpleCommentsLogger.php:
|
774 |
msgctxt "A pingback was marked as spam"
|
775 |
msgid "Marked a pingback to post \"{comment_post_title}\" as spam"
|
776 |
msgstr ""
|
777 |
|
778 |
-
#: loggers/SimpleCommentsLogger.php:
|
779 |
msgctxt "A pingback was marked moved to the trash"
|
780 |
msgid ""
|
781 |
"Trashed a pingback to \"{comment_post_title}\" by {comment_author} "
|
782 |
"({comment_author_email})"
|
783 |
msgstr ""
|
784 |
|
785 |
-
#: loggers/SimpleCommentsLogger.php:
|
786 |
msgctxt "A pingback was restored from the trash"
|
787 |
msgid ""
|
788 |
"Restored a pingback to \"{comment_post_title}\" by {comment_author} "
|
789 |
"({comment_author_email}) from the trash"
|
790 |
msgstr ""
|
791 |
|
792 |
-
#: loggers/SimpleCommentsLogger.php:
|
793 |
msgctxt "A pingback was deleted"
|
794 |
msgid ""
|
795 |
"Deleted a pingback to \"{comment_post_title}\" by {comment_author} "
|
796 |
"({comment_author_email})"
|
797 |
msgstr ""
|
798 |
|
799 |
-
#: loggers/SimpleCommentsLogger.php:
|
800 |
msgctxt "A pingback was edited"
|
801 |
msgid ""
|
802 |
"Edited a pingback to \"{comment_post_title}\" by {comment_author} "
|
803 |
"({comment_author_email})"
|
804 |
msgstr ""
|
805 |
|
806 |
-
#: loggers/SimpleCommentsLogger.php:
|
807 |
msgctxt "Comments logger: search"
|
808 |
msgid "Comments"
|
809 |
msgstr ""
|
810 |
|
811 |
-
#: loggers/SimpleCommentsLogger.php:
|
812 |
msgctxt "Comments logger: search"
|
813 |
msgid "All comments activity"
|
814 |
msgstr ""
|
815 |
|
816 |
-
#: loggers/SimpleCommentsLogger.php:
|
817 |
msgctxt "Comments logger: search"
|
818 |
msgid "Added comments"
|
819 |
msgstr ""
|
820 |
|
821 |
-
#: loggers/SimpleCommentsLogger.php:
|
822 |
msgctxt "Comments logger: search"
|
823 |
msgid "Edited comments"
|
824 |
msgstr ""
|
825 |
|
826 |
-
#: loggers/SimpleCommentsLogger.php:
|
827 |
msgctxt "Comments logger: search"
|
828 |
msgid "Approved comments"
|
829 |
msgstr ""
|
830 |
|
831 |
-
#: loggers/SimpleCommentsLogger.php:
|
832 |
msgctxt "Comments logger: search"
|
833 |
msgid "Held comments"
|
834 |
msgstr ""
|
835 |
|
836 |
-
#: loggers/SimpleCommentsLogger.php:
|
837 |
msgctxt "Comments logger: search"
|
838 |
msgid "Comments status changed to spam"
|
839 |
msgstr ""
|
840 |
|
841 |
-
#: loggers/SimpleCommentsLogger.php:
|
842 |
msgctxt "Comments logger: search"
|
843 |
msgid "Trashed comments"
|
844 |
msgstr ""
|
845 |
|
846 |
-
#: loggers/SimpleCommentsLogger.php:
|
847 |
msgctxt "Comments logger: search"
|
848 |
msgid "Untrashed comments"
|
849 |
msgstr ""
|
850 |
|
851 |
-
#: loggers/SimpleCommentsLogger.php:
|
852 |
msgctxt "Comments logger: search"
|
853 |
msgid "Deleted comments"
|
854 |
msgstr ""
|
855 |
|
856 |
-
#: loggers/SimpleCommentsLogger.php:
|
857 |
-
#: loggers/SimpleCommentsLogger.php:
|
858 |
msgctxt "comments logger - detailed output comment status"
|
859 |
msgid "Status"
|
860 |
msgstr ""
|
861 |
|
862 |
-
#: loggers/SimpleCommentsLogger.php:
|
863 |
-
#: loggers/SimpleCommentsLogger.php:
|
864 |
msgctxt "comments logger - detailed output author"
|
865 |
msgid "Name"
|
866 |
msgstr ""
|
867 |
|
868 |
-
#: loggers/SimpleCommentsLogger.php:
|
869 |
-
#: loggers/SimpleCommentsLogger.php:
|
870 |
msgctxt "comments logger - detailed output email"
|
871 |
msgid "Email"
|
872 |
msgstr ""
|
873 |
|
874 |
-
#: loggers/SimpleCommentsLogger.php:
|
875 |
msgctxt "comments logger - detailed output content"
|
876 |
msgid "Content"
|
877 |
msgstr ""
|
878 |
|
879 |
-
#: loggers/SimpleCommentsLogger.php:
|
880 |
msgctxt "comments logger - detailed output content"
|
881 |
msgid "Comment"
|
882 |
msgstr ""
|
883 |
|
884 |
-
#: loggers/SimpleCommentsLogger.php:
|
885 |
msgctxt "comments logger - edit comment"
|
886 |
msgid "View/Edit"
|
887 |
msgstr ""
|
@@ -896,42 +1118,42 @@ msgctxt "User logger: search"
|
|
896 |
msgid "WordPress core updates"
|
897 |
msgstr ""
|
898 |
|
899 |
-
#: loggers/SimpleUserLogger.php:
|
900 |
msgctxt "User logger: search"
|
901 |
msgid "Users"
|
902 |
msgstr ""
|
903 |
|
904 |
-
#: loggers/SimpleUserLogger.php:
|
905 |
msgctxt "User logger: search"
|
906 |
msgid "All user activity"
|
907 |
msgstr ""
|
908 |
|
909 |
-
#: loggers/SimpleUserLogger.php:
|
910 |
msgctxt "User logger: search"
|
911 |
msgid "Successful user logins"
|
912 |
msgstr ""
|
913 |
|
914 |
-
#: loggers/SimpleUserLogger.php:
|
915 |
msgctxt "User logger: search"
|
916 |
msgid "Failed user logins"
|
917 |
msgstr ""
|
918 |
|
919 |
-
#: loggers/SimpleUserLogger.php:
|
920 |
msgctxt "User logger: search"
|
921 |
msgid "User logouts"
|
922 |
msgstr ""
|
923 |
|
924 |
-
#: loggers/SimpleUserLogger.php:
|
925 |
msgctxt "User logger: search"
|
926 |
msgid "Created users"
|
927 |
msgstr ""
|
928 |
|
929 |
-
#: loggers/SimpleUserLogger.php:
|
930 |
msgctxt "User logger: search"
|
931 |
msgid "User profile updates"
|
932 |
msgstr ""
|
933 |
|
934 |
-
#: loggers/SimpleUserLogger.php:
|
935 |
msgctxt "User logger: search"
|
936 |
msgid "User deletions"
|
937 |
msgstr ""
|
@@ -946,7 +1168,7 @@ msgctxt "Export logger: search"
|
|
946 |
msgid "Created exports"
|
947 |
msgstr ""
|
948 |
|
949 |
-
#: loggers/SimpleLogger.php:
|
950 |
msgctxt "header output when initiator is the currently logged in user"
|
951 |
msgid "You"
|
952 |
msgstr ""
|
@@ -1015,171 +1237,171 @@ msgctxt "Options logger: search"
|
|
1015 |
msgid "Changed options"
|
1016 |
msgstr ""
|
1017 |
|
1018 |
-
#: loggers/SimplePluginLogger.php:
|
1019 |
msgctxt "Plugin was non-silently activated by a user"
|
1020 |
msgid "Activated plugin \"{plugin_name}\""
|
1021 |
msgstr ""
|
1022 |
|
1023 |
-
#: loggers/SimplePluginLogger.php:
|
1024 |
msgctxt "Plugin was non-silently deactivated by a user"
|
1025 |
msgid "Deactivated plugin \"{plugin_name}\""
|
1026 |
msgstr ""
|
1027 |
|
1028 |
-
#: loggers/SimplePluginLogger.php:
|
1029 |
msgctxt "Plugin was installed"
|
1030 |
msgid "Installed plugin \"{plugin_name}\""
|
1031 |
msgstr ""
|
1032 |
|
1033 |
-
#: loggers/SimplePluginLogger.php:
|
1034 |
msgctxt "Plugin failed to install"
|
1035 |
msgid "Failed to install plugin \"{plugin_name}\""
|
1036 |
msgstr ""
|
1037 |
|
1038 |
-
#: loggers/SimplePluginLogger.php:
|
1039 |
msgctxt "Plugin was updated"
|
1040 |
msgid ""
|
1041 |
"Updated plugin \"{plugin_name}\" to version {plugin_version} from "
|
1042 |
"{plugin_prev_version}"
|
1043 |
msgstr ""
|
1044 |
|
1045 |
-
#: loggers/SimplePluginLogger.php:
|
1046 |
msgctxt "Plugin update failed"
|
1047 |
msgid "Updated plugin \"{plugin_name}\""
|
1048 |
msgstr ""
|
1049 |
|
1050 |
-
#: loggers/SimplePluginLogger.php:
|
1051 |
msgctxt "Plugin file edited"
|
1052 |
msgid "Edited plugin file \"{plugin_edited_file}\""
|
1053 |
msgstr ""
|
1054 |
|
1055 |
-
#: loggers/SimplePluginLogger.php:
|
1056 |
msgctxt "Plugin files was deleted"
|
1057 |
msgid "Deleted plugin \"{plugin_name}\""
|
1058 |
msgstr ""
|
1059 |
|
1060 |
-
#: loggers/SimplePluginLogger.php:
|
1061 |
msgctxt "Plugin was updated in bulk"
|
1062 |
msgid ""
|
1063 |
"Updated plugin \"{plugin_name}\" to {plugin_version} from "
|
1064 |
"{plugin_prev_version}"
|
1065 |
msgstr ""
|
1066 |
|
1067 |
-
#: loggers/SimplePluginLogger.php:
|
1068 |
msgctxt "Plugin logger: search"
|
1069 |
msgid "Plugins"
|
1070 |
msgstr ""
|
1071 |
|
1072 |
-
#: loggers/SimplePluginLogger.php:
|
1073 |
msgctxt "Plugin logger: search"
|
1074 |
msgid "Activated plugins"
|
1075 |
msgstr ""
|
1076 |
|
1077 |
-
#: loggers/SimplePluginLogger.php:
|
1078 |
msgctxt "Plugin logger: search"
|
1079 |
msgid "Deactivated plugins"
|
1080 |
msgstr ""
|
1081 |
|
1082 |
-
#: loggers/SimplePluginLogger.php:
|
1083 |
msgctxt "Plugin logger: search"
|
1084 |
msgid "Installed plugins"
|
1085 |
msgstr ""
|
1086 |
|
1087 |
-
#: loggers/SimplePluginLogger.php:
|
1088 |
msgctxt "Plugin logger: search"
|
1089 |
msgid "Failed plugin installs"
|
1090 |
msgstr ""
|
1091 |
|
1092 |
-
#: loggers/SimplePluginLogger.php:
|
1093 |
msgctxt "Plugin logger: search"
|
1094 |
msgid "Updated plugins"
|
1095 |
msgstr ""
|
1096 |
|
1097 |
-
#: loggers/SimplePluginLogger.php:
|
1098 |
msgctxt "Plugin logger: search"
|
1099 |
msgid "Failed plugin updates"
|
1100 |
msgstr ""
|
1101 |
|
1102 |
-
#: loggers/SimplePluginLogger.php:
|
1103 |
msgctxt "Plugin logger: search"
|
1104 |
msgid "Edited plugin files"
|
1105 |
msgstr ""
|
1106 |
|
1107 |
-
#: loggers/SimplePluginLogger.php:
|
1108 |
msgctxt "Plugin logger: search"
|
1109 |
msgid "Deleted plugins"
|
1110 |
msgstr ""
|
1111 |
|
1112 |
-
#: loggers/SimplePluginLogger.php:
|
1113 |
msgctxt "plugin logger - detailed output version"
|
1114 |
msgid "Version"
|
1115 |
msgstr ""
|
1116 |
|
1117 |
-
#: loggers/SimplePluginLogger.php:
|
1118 |
msgctxt "plugin logger - detailed output author"
|
1119 |
msgid "Author"
|
1120 |
msgstr ""
|
1121 |
|
1122 |
-
#: loggers/SimplePluginLogger.php:
|
1123 |
msgctxt "plugin logger - detailed output author"
|
1124 |
msgid "Requires"
|
1125 |
msgstr ""
|
1126 |
|
1127 |
-
#: loggers/SimplePluginLogger.php:
|
1128 |
msgctxt "plugin logger - detailed output url"
|
1129 |
msgid "URL"
|
1130 |
msgstr ""
|
1131 |
|
1132 |
-
#: loggers/SimplePluginLogger.php:
|
1133 |
msgctxt "plugin logger - detailed output compatible"
|
1134 |
msgid "Compatible up to"
|
1135 |
msgstr ""
|
1136 |
|
1137 |
-
#: loggers/SimplePluginLogger.php:
|
1138 |
msgctxt "plugin logger - detailed output downloaded"
|
1139 |
msgid "Downloads"
|
1140 |
msgstr ""
|
1141 |
|
1142 |
-
#: loggers/SimplePluginLogger.php:
|
1143 |
msgctxt "plugin logger: plugin info thickbox title view all info"
|
1144 |
msgid "View plugin info"
|
1145 |
msgstr ""
|
1146 |
|
1147 |
-
#: loggers/SimplePluginLogger.php:
|
1148 |
msgctxt "plugin logger: plugin info thickbox title"
|
1149 |
msgid "View plugin info"
|
1150 |
msgstr ""
|
1151 |
|
1152 |
-
#: loggers/SimplePluginLogger.php:
|
1153 |
msgctxt "plugin logger: plugin info thickbox title"
|
1154 |
msgid "View changelog"
|
1155 |
msgstr ""
|
1156 |
|
1157 |
-
#: loggers/SimplePostLogger.php:
|
1158 |
msgctxt "Post logger: search"
|
1159 |
msgid "Posts & Pages"
|
1160 |
msgstr ""
|
1161 |
|
1162 |
-
#: loggers/SimplePostLogger.php:
|
1163 |
msgctxt "Post logger: search"
|
1164 |
msgid "Posts created"
|
1165 |
msgstr ""
|
1166 |
|
1167 |
-
#: loggers/SimplePostLogger.php:
|
1168 |
msgctxt "Post logger: search"
|
1169 |
msgid "Posts updated"
|
1170 |
msgstr ""
|
1171 |
|
1172 |
-
#: loggers/SimplePostLogger.php:
|
1173 |
msgctxt "Post logger: search"
|
1174 |
msgid "Posts trashed"
|
1175 |
msgstr ""
|
1176 |
|
1177 |
-
#: loggers/SimplePostLogger.php:
|
1178 |
msgctxt "Post logger: search"
|
1179 |
msgid "Posts deleted"
|
1180 |
msgstr ""
|
1181 |
|
1182 |
-
#: loggers/SimplePostLogger.php:
|
1183 |
msgctxt "Post logger: search"
|
1184 |
msgid "Posts restored"
|
1185 |
msgstr ""
|
@@ -1224,6 +1446,16 @@ msgctxt "Theme logger: search"
|
|
1224 |
msgid "Background of themes changed"
|
1225 |
msgstr ""
|
1226 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1227 |
#: templates/settings-statsRowsPerDay.php:36
|
1228 |
msgctxt "stats: date in rows per day chart"
|
1229 |
msgid "M j"
|
1 |
+
# Copyright (C) 2015 Simple History
|
2 |
# This file is distributed under the same license as the Simple History package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Simple History 2.0.22\n"
|
6 |
"Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/Simple-History\n"
|
7 |
+
"POT-Creation-Date: 2015-02-28 22:22:18+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"PO-Revision-Date: 2015-MO-DA HO:MI+ZONE\n"
|
12 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
13 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
14 |
"X-Generator: grunt-wp-i18n 0.4.9\n"
|
24 |
"X-Poedit-Bookmarks: \n"
|
25 |
"X-Textdomain-Support: yes\n"
|
26 |
|
27 |
+
#: dropins/SimpleHistoryDonateDropin.php:36
|
28 |
+
msgid "Donate"
|
29 |
msgstr ""
|
30 |
|
31 |
+
#: dropins/SimpleHistoryDonateDropin.php:72
|
32 |
+
msgid ""
|
33 |
+
"If you find Simple History useful please <a href=\"%1$s\">donate</a> or <a "
|
34 |
+
"href=\"%2$s\">buy me something from my Amazon wish list</a>."
|
35 |
msgstr ""
|
36 |
|
37 |
+
#: dropins/SimpleHistoryFilterDropin.php:44
|
38 |
+
msgid "Filter history"
|
39 |
msgstr ""
|
40 |
|
41 |
+
#: dropins/SimpleHistoryFilterDropin.php:48
|
42 |
+
#: dropins/SimpleHistoryFilterDropin.php:159
|
43 |
+
msgid "Search events"
|
44 |
msgstr ""
|
45 |
|
46 |
+
#: dropins/SimpleHistoryFilterDropin.php:56
|
47 |
+
msgid "All log levels"
|
48 |
msgstr ""
|
49 |
|
50 |
+
#: dropins/SimpleHistoryFilterDropin.php:70
|
51 |
+
msgid "All messages"
|
52 |
msgstr ""
|
53 |
|
54 |
+
#: dropins/SimpleHistoryFilterDropin.php:124
|
55 |
+
msgid "All users"
|
56 |
msgstr ""
|
57 |
|
58 |
+
#: dropins/SimpleHistoryFilterDropin.php:145
|
59 |
+
msgid "All dates"
|
60 |
msgstr ""
|
61 |
|
62 |
+
#: dropins/SimpleHistoryFilterDropin.php:168
|
63 |
+
msgid "Search"
|
64 |
msgstr ""
|
65 |
|
66 |
+
#: dropins/SimpleHistoryNewRowsNotifier.php:80
|
67 |
+
msgid "1 new row"
|
68 |
+
msgid_plural "%d new rows"
|
69 |
+
msgstr[0] ""
|
70 |
+
msgstr[1] ""
|
71 |
+
|
72 |
+
#: dropins/SimpleHistoryRSSDropin.php:55
|
73 |
+
msgid "Address"
|
74 |
msgstr ""
|
75 |
|
76 |
+
#: dropins/SimpleHistoryRSSDropin.php:64
|
77 |
+
msgid "Regenerate"
|
78 |
msgstr ""
|
79 |
|
80 |
+
#: dropins/SimpleHistoryRSSDropin.php:81
|
81 |
+
msgid "Created new secret RSS address"
|
82 |
msgstr ""
|
83 |
|
84 |
+
#: dropins/SimpleHistoryRSSDropin.php:148
|
85 |
+
#: dropins/SimpleHistoryRSSDropin.php:262
|
86 |
+
msgid "History for %s"
|
87 |
msgstr ""
|
88 |
|
89 |
+
#: dropins/SimpleHistoryRSSDropin.php:149
|
90 |
+
#: dropins/SimpleHistoryRSSDropin.php:263
|
91 |
+
msgid "WordPress History for %s"
|
92 |
msgstr ""
|
93 |
|
94 |
+
#: dropins/SimpleHistoryRSSDropin.php:186
|
95 |
+
msgid "Severity level: %1$s"
|
96 |
msgstr ""
|
97 |
|
98 |
+
#: dropins/SimpleHistoryRSSDropin.php:199
|
99 |
+
msgid "+%1$s occasion"
|
100 |
+
msgid_plural "+%1$s occasions"
|
101 |
+
msgstr[0] ""
|
102 |
+
msgstr[1] ""
|
103 |
+
|
104 |
+
#: dropins/SimpleHistoryRSSDropin.php:266
|
105 |
+
msgid "Wrong RSS secret"
|
106 |
msgstr ""
|
107 |
|
108 |
+
#: dropins/SimpleHistoryRSSDropin.php:267
|
109 |
+
msgid ""
|
110 |
+
"Your RSS secret for Simple History RSS feed is wrong. Please see WordPress "
|
111 |
+
"settings for current link to the RSS feed."
|
112 |
msgstr ""
|
113 |
|
114 |
+
#: dropins/SimpleHistoryRSSDropin.php:318
|
115 |
+
msgid ""
|
116 |
+
"You can generate a new address for the RSS feed. This is useful if you "
|
117 |
+
"think that the address has fallen into the wrong hands."
|
118 |
msgstr ""
|
119 |
|
120 |
+
#: dropins/SimpleHistoryRSSDropin.php:321
|
121 |
+
msgid "Generate new address"
|
122 |
msgstr ""
|
123 |
|
124 |
+
#: dropins/SimpleHistoryRSSDropin.php:349
|
125 |
+
msgid ""
|
126 |
+
"Simple History has a RSS feed which you can subscribe to and receive log "
|
127 |
+
"updates. Make sure you only share the feed with people you trust, since it "
|
128 |
+
"can contain sensitive or confidential information."
|
129 |
msgstr ""
|
130 |
|
131 |
+
#: dropins/SimpleHistorySettingsLogtestDropin.php:20
|
132 |
+
msgid "Test data (debug)"
|
133 |
msgstr ""
|
134 |
|
135 |
+
#: dropins/SimpleHistorySettingsLogtestDropin.php:225
|
136 |
+
msgid "Plugin"
|
137 |
msgstr ""
|
138 |
|
139 |
+
#: dropins/SimpleHistorySettingsLogtestDropin.php:226
|
140 |
+
msgid "Enter title of new page"
|
141 |
msgstr ""
|
142 |
|
143 |
+
#: dropins/SimpleHistorySettingsStatsDropin.php:27
|
144 |
+
msgid "Stats"
|
145 |
msgstr ""
|
146 |
|
147 |
+
#: dropins/SimpleHistorySidebarDropin.php:159 loggers/SimpleLogger.php:300
|
148 |
+
msgid "Just now"
|
149 |
msgstr ""
|
150 |
|
151 |
+
#: inc/SimpleHistory.php:533 inc/SimpleHistory.php:826
|
152 |
+
msgid "Settings"
|
153 |
msgstr ""
|
154 |
|
155 |
+
#: inc/SimpleHistory.php:544
|
156 |
+
msgid "Log (debug)"
|
157 |
msgstr ""
|
158 |
|
159 |
+
#: inc/SimpleHistory.php:549
|
160 |
+
msgid "Styles example (debug)"
|
161 |
msgstr ""
|
162 |
|
163 |
+
#: inc/SimpleHistory.php:841
|
164 |
+
#. #-#-#-#-# Simple-History.pot (Simple History 2.0.22) #-#-#-#-#
|
165 |
+
#. Plugin Name of the plugin/theme
|
166 |
+
msgid "Simple History"
|
167 |
msgstr ""
|
168 |
|
169 |
+
#: inc/SimpleHistory.php:917
|
170 |
+
msgid "Remove all log items?"
|
171 |
msgstr ""
|
172 |
|
173 |
+
#: inc/SimpleHistory.php:919
|
174 |
+
msgid "Go to the first page"
|
175 |
msgstr ""
|
176 |
|
177 |
+
#: inc/SimpleHistory.php:920
|
178 |
+
msgid "Go to the previous page"
|
179 |
msgstr ""
|
180 |
|
181 |
+
#: inc/SimpleHistory.php:921
|
182 |
+
msgid "Go to the next page"
|
183 |
msgstr ""
|
184 |
|
185 |
+
#: inc/SimpleHistory.php:922
|
186 |
+
msgid "Go to the last page"
|
|
|
|
|
187 |
msgstr ""
|
188 |
|
189 |
+
#: inc/SimpleHistory.php:923
|
190 |
+
msgid "Current page"
|
191 |
msgstr ""
|
192 |
|
193 |
+
#: inc/SimpleHistory.php:925
|
194 |
+
msgid "Oups, the log could not be loaded right now."
|
195 |
msgstr ""
|
196 |
|
197 |
+
#: inc/SimpleHistory.php:926
|
198 |
+
msgid "Your search did not match any history events."
|
199 |
msgstr ""
|
200 |
|
201 |
+
#: inc/SimpleHistory.php:1210 inc/SimpleHistory.php:1311
|
202 |
+
msgid "Simple History Settings"
|
203 |
msgstr ""
|
204 |
|
205 |
+
#: inc/SimpleHistory.php:1244
|
206 |
+
msgid "No valid callback found"
|
207 |
msgstr ""
|
208 |
|
209 |
+
#: inc/SimpleHistory.php:1332
|
210 |
+
msgid "Cleared database"
|
211 |
msgstr ""
|
212 |
|
213 |
+
#: inc/SimpleHistory.php:1359
|
214 |
+
msgid "Show history"
|
215 |
+
msgstr ""
|
|
|
|
|
216 |
|
217 |
+
#: inc/SimpleHistory.php:1372
|
218 |
+
msgid "Number of items per page"
|
219 |
msgstr ""
|
220 |
|
221 |
+
#: inc/SimpleHistory.php:1384
|
222 |
+
msgid "Clear log"
|
223 |
msgstr ""
|
224 |
|
225 |
+
#: inc/SimpleHistory.php:1523
|
226 |
+
msgid "on the dashboard"
|
227 |
msgstr ""
|
228 |
|
229 |
+
#: inc/SimpleHistory.php:1528
|
230 |
+
msgid "as a page under the dashboard menu"
|
|
|
231 |
msgstr ""
|
232 |
|
233 |
+
#: inc/SimpleHistory.php:1544
|
234 |
+
msgid "Items in the database are automatically removed after %1$s days."
|
|
|
235 |
msgstr ""
|
236 |
|
237 |
+
#: inc/SimpleHistory.php:1546
|
238 |
+
msgid "Items in the database are kept forever."
|
239 |
+
msgstr ""
|
240 |
+
|
241 |
+
#: inc/SimpleHistory.php:1550
|
242 |
+
msgid "Clear log now"
|
243 |
+
msgstr ""
|
244 |
+
|
245 |
+
#: inc/SimpleHistory.php:1594
|
246 |
+
msgid "The log for Simple History was cleared ({num_rows} rows were removed)."
|
247 |
+
msgstr ""
|
248 |
+
|
249 |
+
#: inc/SimpleHistory.php:1858
|
250 |
+
msgid "+%1$s similar event"
|
251 |
+
msgid_plural "+%1$s similar events"
|
252 |
msgstr[0] ""
|
253 |
msgstr[1] ""
|
254 |
|
255 |
+
#: inc/SimpleHistory.php:1865
|
256 |
+
msgid "Loading…"
|
257 |
msgstr ""
|
258 |
|
259 |
+
#: inc/SimpleHistory.php:1872
|
260 |
+
msgid "Showing %1$s more"
|
|
|
|
|
261 |
msgstr ""
|
262 |
|
263 |
+
#: inc/SimpleHistory.php:1891
|
264 |
+
msgid "Context data"
|
|
|
|
|
265 |
msgstr ""
|
266 |
|
267 |
+
#: inc/SimpleHistory.php:1892
|
268 |
+
msgid "This is potentially useful meta data that a logger has saved."
|
269 |
msgstr ""
|
270 |
|
271 |
+
#: inc/SimpleHistory.php:2412
|
272 |
+
msgid "No events today so far."
|
|
|
|
|
|
|
273 |
msgstr ""
|
274 |
|
275 |
+
#: inc/SimpleHistory.php:2431
|
276 |
+
msgid "One event today from one user."
|
277 |
msgstr ""
|
278 |
|
279 |
+
#: inc/SimpleHistory.php:2437
|
280 |
+
msgid "One event today from one source."
|
281 |
msgstr ""
|
282 |
|
283 |
+
#: inc/SimpleHistory.php:2443
|
284 |
+
msgid "%1$d events today from one user."
|
285 |
+
msgstr ""
|
286 |
+
|
287 |
+
#: inc/SimpleHistory.php:2449
|
288 |
+
msgid "%1$d events today from %2$d users."
|
289 |
+
msgstr ""
|
290 |
+
|
291 |
+
#: inc/SimpleHistory.php:2455 inc/SimpleHistory.php:2461
|
292 |
+
msgid "%1$d events today from one user and one other source."
|
293 |
+
msgstr ""
|
294 |
+
|
295 |
+
#: inc/SimpleHistory.php:2467
|
296 |
+
msgid "%1$d events today from one user and %3$d other sources."
|
297 |
+
msgstr ""
|
298 |
+
|
299 |
+
#: inc/SimpleHistory.php:2473
|
300 |
+
msgid "%1$s events today from %2$d users and %3$d other sources."
|
301 |
+
msgstr ""
|
302 |
+
|
303 |
+
#: index.php:58
|
304 |
msgid ""
|
305 |
"Simple History is a great plugin, but to use it your server must have at "
|
306 |
"least PHP 5.3 installed (you have version %s)."
|
307 |
msgstr ""
|
308 |
|
309 |
+
#: loggers/SimpleCommentsLogger.php:685
|
310 |
msgid "Spam"
|
311 |
msgstr ""
|
312 |
|
313 |
+
#: loggers/SimpleCommentsLogger.php:687
|
314 |
msgid "Approved"
|
315 |
msgstr ""
|
316 |
|
317 |
+
#: loggers/SimpleCommentsLogger.php:689
|
318 |
msgid "Pending"
|
319 |
msgstr ""
|
320 |
|
321 |
+
#: loggers/SimpleCommentsLogger.php:703
|
322 |
msgid "Trackback"
|
323 |
msgstr ""
|
324 |
|
325 |
+
#: loggers/SimpleCommentsLogger.php:705
|
326 |
msgid "Pingback"
|
327 |
msgstr ""
|
328 |
|
329 |
+
#: loggers/SimpleCommentsLogger.php:707
|
330 |
msgid "Comment"
|
331 |
msgstr ""
|
332 |
|
335 |
msgstr ""
|
336 |
|
337 |
#: loggers/SimpleCoreUpdatesLogger.php:30
|
338 |
+
msgid "WordPress auto-updated to {new_version} from {prev_version}"
|
339 |
msgstr ""
|
340 |
|
341 |
#: loggers/SimpleExportLogger.php:23
|
350 |
msgid "%d occasions"
|
351 |
msgstr ""
|
352 |
|
353 |
+
#: loggers/SimpleLogger.php:207
|
354 |
msgid "Deleted user (had id %1$s, email %2$s, login %3$s)"
|
355 |
msgstr ""
|
356 |
|
357 |
+
#: loggers/SimpleLogger.php:222
|
358 |
msgid "Anonymous web user"
|
359 |
msgstr ""
|
360 |
|
361 |
+
#: loggers/SimpleLogger.php:230
|
362 |
msgid "Anonymous user from %1$s"
|
363 |
msgstr ""
|
364 |
|
365 |
+
#: loggers/SimpleLogger.php:305
|
|
|
|
|
|
|
|
|
366 |
#. translators: Date format for log row header, see http:php.net/date
|
367 |
msgid "M j, Y \\a\\t G:i"
|
368 |
msgstr ""
|
369 |
|
370 |
+
#: loggers/SimpleLogger.php:313
|
371 |
#. translators: 1: last modified date and time in human time diff-format
|
372 |
msgid "%1$s ago"
|
373 |
msgstr ""
|
384 |
msgid "Deleted {post_type} \"{attachment_title}\" (\"{attachment_filename}\")"
|
385 |
msgstr ""
|
386 |
|
387 |
+
#: loggers/SimpleMediaLogger.php:117
|
388 |
msgid "Edited {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
|
389 |
msgstr ""
|
390 |
|
391 |
+
#: loggers/SimpleMediaLogger.php:121
|
392 |
msgid "Uploaded {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
|
393 |
msgstr ""
|
394 |
|
395 |
+
#: loggers/SimpleMediaLogger.php:233
|
396 |
msgid "{attachment_thumb}"
|
397 |
msgstr ""
|
398 |
|
399 |
+
#: loggers/SimpleMediaLogger.php:242
|
400 |
msgid "{attachment_size_format}"
|
401 |
msgstr ""
|
402 |
|
403 |
+
#: loggers/SimpleMediaLogger.php:243
|
404 |
msgid "{attachment_filetype_extension}"
|
405 |
msgstr ""
|
406 |
|
407 |
+
#: loggers/SimpleMediaLogger.php:245
|
408 |
msgid "{full_image_width} × {full_image_height}"
|
409 |
msgstr ""
|
410 |
|
444 |
msgid "Settings page"
|
445 |
msgstr ""
|
446 |
|
447 |
+
#: loggers/SimplePluginLogger.php:169
|
448 |
+
msgid "You do not have sufficient permissions to delete plugins for this site."
|
449 |
+
msgstr ""
|
450 |
+
|
451 |
+
#: loggers/SimplePostLogger.php:180
|
452 |
msgid "Created {post_type} \"{post_title}\""
|
453 |
msgstr ""
|
454 |
|
455 |
+
#: loggers/SimplePostLogger.php:181
|
456 |
msgid "Updated {post_type} \"{post_title}\""
|
457 |
msgstr ""
|
458 |
|
459 |
+
#: loggers/SimplePostLogger.php:182
|
460 |
msgid "Restored {post_type} \"{post_title}\" from trash"
|
461 |
msgstr ""
|
462 |
|
463 |
+
#: loggers/SimplePostLogger.php:183 loggers/SimplePostLogger.php:452
|
464 |
msgid "Deleted {post_type} \"{post_title}\""
|
465 |
msgstr ""
|
466 |
|
467 |
+
#: loggers/SimplePostLogger.php:184
|
468 |
msgid "Moved {post_type} \"{post_title}\" to the trash"
|
469 |
msgstr ""
|
470 |
|
471 |
+
#: loggers/SimplePostLogger.php:448
|
472 |
msgid "Updated {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a>"
|
473 |
msgstr ""
|
474 |
|
475 |
+
#: loggers/SimplePostLogger.php:456
|
476 |
msgid "Created {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a>"
|
477 |
msgstr ""
|
478 |
|
479 |
+
#: loggers/SimplePostLogger.php:461
|
480 |
msgid "Moved {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a> to the trash"
|
481 |
msgstr ""
|
482 |
|
512 |
msgid "Section"
|
513 |
msgstr ""
|
514 |
|
515 |
+
#: loggers/SimpleUserLogger.php:22
|
516 |
msgid ""
|
517 |
"Failed to login to account with username \"{login_user_login}\" because an "
|
518 |
"incorrect password was entered"
|
519 |
msgstr ""
|
520 |
|
521 |
+
#: loggers/SimpleUserLogger.php:23
|
522 |
msgid ""
|
523 |
"Failed to login with username \"{failed_login_username}\" because no user "
|
524 |
+
"with that username exists"
|
525 |
msgstr ""
|
526 |
|
527 |
+
#: loggers/SimpleUserLogger.php:24
|
528 |
msgid "Logged in"
|
529 |
msgstr ""
|
530 |
|
531 |
+
#: loggers/SimpleUserLogger.php:25
|
532 |
msgid "Unknown user logged in"
|
533 |
msgstr ""
|
534 |
|
535 |
+
#: loggers/SimpleUserLogger.php:26
|
536 |
msgid "Logged out"
|
537 |
msgstr ""
|
538 |
|
539 |
+
#: loggers/SimpleUserLogger.php:27
|
540 |
msgid "Edited the profile for user {edited_user_login} ({edited_user_email})"
|
541 |
msgstr ""
|
542 |
|
543 |
+
#: loggers/SimpleUserLogger.php:28
|
544 |
msgid ""
|
545 |
"Created user {created_user_login} ({created_user_email}) with role "
|
546 |
"{created_user_role}"
|
547 |
msgstr ""
|
548 |
|
549 |
+
#: loggers/SimpleUserLogger.php:29
|
550 |
msgid "Deleted user {deleted_user_login} ({deleted_user_email})"
|
551 |
msgstr ""
|
552 |
|
553 |
+
#: loggers/SimpleUserLogger.php:227
|
554 |
msgid "Edited <a href=\"{edit_profile_link}\">your profile</a>"
|
555 |
msgstr ""
|
556 |
|
557 |
+
#: loggers/SimpleUserLogger.php:231
|
558 |
msgid "Edited <a href=\"{edit_profile_link}\">their profile</a>"
|
559 |
msgstr ""
|
560 |
|
561 |
+
#: loggers/SimpleUserLogger.php:240
|
562 |
msgid "Edited your profile"
|
563 |
msgstr ""
|
564 |
|
565 |
+
#: loggers/SimpleUserLogger.php:251
|
566 |
msgid ""
|
567 |
"Edited the profile for user <a "
|
568 |
"href=\"{edit_profile_link}\">{edited_user_login} ({edited_user_email})</a>"
|
615 |
msgid "Deleted users are also included."
|
616 |
msgstr ""
|
617 |
|
|
|
|
|
|
|
|
|
618 |
#. Plugin URI of the plugin/theme
|
619 |
msgid "http://simple-history.com"
|
620 |
msgstr ""
|
633 |
msgid "http://simple-history.com/"
|
634 |
msgstr ""
|
635 |
|
636 |
+
#: dropins/SimpleHistoryDonateDropin.php:51
|
637 |
+
msgctxt "donate settings headline"
|
638 |
+
msgid "Donate"
|
639 |
+
msgstr ""
|
640 |
+
|
641 |
+
#: dropins/SimpleHistoryFilterDropin.php:50
|
642 |
+
msgctxt "Filter dropin: button to show more search options"
|
643 |
+
msgid "Show options"
|
644 |
+
msgstr ""
|
645 |
+
|
646 |
+
#: dropins/SimpleHistoryFilterDropin.php:160
|
647 |
+
msgctxt "Filter dropin: button to hide more search options"
|
648 |
+
msgid "Hide options"
|
649 |
+
msgstr ""
|
650 |
+
|
651 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:66
|
652 |
+
msgctxt "IP Info Dropin"
|
653 |
+
msgid "That IP address does not seem like a public one."
|
654 |
+
msgstr ""
|
655 |
+
|
656 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:85
|
657 |
+
msgctxt "IP Info Dropin"
|
658 |
+
msgid "IP address"
|
659 |
+
msgstr ""
|
660 |
+
|
661 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:96
|
662 |
+
msgctxt "IP Info Dropin"
|
663 |
+
msgid "Hostname"
|
664 |
+
msgstr ""
|
665 |
+
|
666 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:107
|
667 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:118
|
668 |
+
msgctxt "IP Info Dropin"
|
669 |
+
msgid "Network"
|
670 |
+
msgstr ""
|
671 |
+
|
672 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:129
|
673 |
+
msgctxt "IP Info Dropin"
|
674 |
+
msgid "City"
|
675 |
+
msgstr ""
|
676 |
+
|
677 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:140
|
678 |
+
msgctxt "IP Info Dropin"
|
679 |
+
msgid "Region"
|
680 |
+
msgstr ""
|
681 |
+
|
682 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:151
|
683 |
+
msgctxt "IP Info Dropin"
|
684 |
+
msgid "Country"
|
685 |
+
msgstr ""
|
686 |
+
|
687 |
+
#: dropins/SimpleHistoryIpInfoDropin.php:162
|
688 |
+
msgctxt "IP Info Dropin"
|
689 |
+
msgid "IP info provided by %1$s ipinfo.io %2$s"
|
690 |
+
msgstr ""
|
691 |
+
|
692 |
+
#: dropins/SimpleHistoryNewRowsNotifier.php:38
|
693 |
+
msgctxt "New rows notifier: error while checking for new rows"
|
694 |
+
msgid "An error occured while checking for new log rows"
|
695 |
+
msgstr ""
|
696 |
+
|
697 |
+
#: dropins/SimpleHistoryRSSDropin.php:47
|
698 |
+
msgctxt "rss settings headline"
|
699 |
+
msgid "RSS feed"
|
700 |
+
msgstr ""
|
701 |
+
|
702 |
+
#: dropins/SimpleHistorySidebarDropin.php:31
|
703 |
+
msgctxt "Sidebar box"
|
704 |
+
msgid "Simple History is on GitHub"
|
705 |
+
msgstr ""
|
706 |
+
|
707 |
+
#: dropins/SimpleHistorySidebarDropin.php:34
|
708 |
+
msgctxt "Sidebar box"
|
709 |
+
msgid ""
|
710 |
+
"You can star, fork, or report issues with this plugin over at the <a "
|
711 |
+
"href=\"%1$s\">GitHub page</a>."
|
712 |
+
msgstr ""
|
713 |
+
|
714 |
+
#: dropins/SimpleHistorySidebarDropin.php:48
|
715 |
+
msgctxt "Sidebar box"
|
716 |
+
msgid "Donate to support development"
|
717 |
+
msgstr ""
|
718 |
+
|
719 |
+
#: dropins/SimpleHistorySidebarDropin.php:51
|
720 |
+
msgctxt "Sidebar box"
|
721 |
+
msgid ""
|
722 |
+
"If you like and use Simple History you should <a href=\"%1$s\">donate to "
|
723 |
+
"keep this plugin free</a>."
|
724 |
+
msgstr ""
|
725 |
+
|
726 |
+
#: dropins/SimpleHistorySidebarDropin.php:65
|
727 |
+
msgctxt "Sidebar box"
|
728 |
+
msgid "Review this plugin if you like it"
|
729 |
+
msgstr ""
|
730 |
+
|
731 |
+
#: dropins/SimpleHistorySidebarDropin.php:68
|
732 |
+
msgctxt "Sidebar box"
|
733 |
+
msgid ""
|
734 |
+
"If you like Simple History then please <a href=\"%1$s\">give it a nice "
|
735 |
+
"review over at wordpress.org</a>."
|
736 |
+
msgstr ""
|
737 |
+
|
738 |
+
#: dropins/SimpleHistorySidebarDropin.php:72
|
739 |
+
msgctxt "Sidebar box"
|
740 |
+
msgid ""
|
741 |
+
"A good review will help new users find this plugin. And it will make the "
|
742 |
+
"plugin author very happy :)"
|
743 |
+
msgstr ""
|
744 |
+
|
745 |
+
#: inc/SimpleHistory.php:277
|
746 |
msgctxt "Message visible while waiting for log to load from server the first time"
|
747 |
msgid "Loading history..."
|
748 |
msgstr ""
|
749 |
|
750 |
+
#: inc/SimpleHistory.php:314
|
751 |
msgctxt "page n of n"
|
752 |
msgid "of"
|
753 |
msgstr ""
|
754 |
|
755 |
+
#: inc/SimpleHistory.php:385
|
756 |
msgctxt "API: not enought arguments passed"
|
757 |
msgid "Not enough args specified"
|
758 |
msgstr ""
|
759 |
|
760 |
+
#: inc/SimpleHistory.php:1296
|
761 |
msgctxt "dashboard menu name"
|
762 |
msgid "Simple History"
|
763 |
msgstr ""
|
764 |
|
765 |
+
#: inc/SimpleHistory.php:1420
|
766 |
msgctxt "history page headline"
|
767 |
msgid "Simple History"
|
768 |
msgstr ""
|
769 |
|
770 |
+
#: inc/SimpleHistory.php:1682
|
771 |
+
msgctxt "simple-history"
|
772 |
+
msgid "Simple History removed one event that were older than {days} days"
|
773 |
+
msgid_plural "Simple History removed {num_rows} events that were older than {days} days"
|
774 |
+
msgstr[0] ""
|
775 |
+
msgstr[1] ""
|
776 |
+
|
777 |
+
#: inc/SimpleHistory.php:2028
|
778 |
+
msgctxt "Log level in gui"
|
779 |
+
msgid "emergency"
|
780 |
msgstr ""
|
781 |
|
782 |
+
#: inc/SimpleHistory.php:2032
|
783 |
+
msgctxt "Log level in gui"
|
784 |
+
msgid "alert"
|
785 |
msgstr ""
|
786 |
|
787 |
+
#: inc/SimpleHistory.php:2036
|
788 |
+
msgctxt "Log level in gui"
|
789 |
+
msgid "critical"
|
790 |
+
msgstr ""
|
791 |
+
|
792 |
+
#: inc/SimpleHistory.php:2040
|
793 |
+
msgctxt "Log level in gui"
|
794 |
+
msgid "error"
|
795 |
+
msgstr ""
|
796 |
+
|
797 |
+
#: inc/SimpleHistory.php:2044
|
798 |
+
msgctxt "Log level in gui"
|
799 |
+
msgid "warning"
|
800 |
+
msgstr ""
|
801 |
+
|
802 |
+
#: inc/SimpleHistory.php:2048
|
803 |
+
msgctxt "Log level in gui"
|
804 |
+
msgid "notice"
|
805 |
+
msgstr ""
|
806 |
+
|
807 |
+
#: inc/SimpleHistory.php:2052
|
808 |
+
msgctxt "Log level in gui"
|
809 |
+
msgid "info"
|
810 |
msgstr ""
|
811 |
|
812 |
+
#: inc/SimpleHistory.php:2056
|
813 |
+
msgctxt "Log level in gui"
|
814 |
+
msgid "debug"
|
815 |
+
msgstr ""
|
816 |
+
|
817 |
+
#: inc/SimpleHistory.php:2061
|
818 |
+
msgctxt "Log level in gui"
|
819 |
+
msgid "Emergency"
|
820 |
+
msgstr ""
|
821 |
+
|
822 |
+
#: inc/SimpleHistory.php:2065
|
823 |
+
msgctxt "Log level in gui"
|
824 |
+
msgid "Alert"
|
825 |
+
msgstr ""
|
826 |
+
|
827 |
+
#: inc/SimpleHistory.php:2069
|
828 |
+
msgctxt "Log level in gui"
|
829 |
+
msgid "Critical"
|
830 |
+
msgstr ""
|
831 |
+
|
832 |
+
#: inc/SimpleHistory.php:2073
|
833 |
+
msgctxt "Log level in gui"
|
834 |
+
msgid "Error"
|
835 |
+
msgstr ""
|
836 |
+
|
837 |
+
#: inc/SimpleHistory.php:2077
|
838 |
+
msgctxt "Log level in gui"
|
839 |
+
msgid "Warning"
|
840 |
+
msgstr ""
|
841 |
+
|
842 |
+
#: inc/SimpleHistory.php:2081
|
843 |
+
msgctxt "Log level in gui"
|
844 |
+
msgid "Notice"
|
845 |
+
msgstr ""
|
846 |
+
|
847 |
+
#: inc/SimpleHistory.php:2085
|
848 |
+
msgctxt "Log level in gui"
|
849 |
+
msgid "Info"
|
850 |
+
msgstr ""
|
851 |
+
|
852 |
+
#: inc/SimpleHistory.php:2089
|
853 |
+
msgctxt "Log level in gui"
|
854 |
+
msgid "Debug"
|
855 |
+
msgstr ""
|
856 |
+
|
857 |
+
#: loggers/SimpleCommentsLogger.php:95
|
858 |
msgctxt "A comment was added to the database by a non-logged in internet user"
|
859 |
msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
|
860 |
msgstr ""
|
861 |
|
862 |
+
#: loggers/SimpleCommentsLogger.php:101
|
863 |
msgctxt "A comment was added to the database by a logged in user"
|
864 |
msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
|
865 |
msgstr ""
|
866 |
|
867 |
+
#: loggers/SimpleCommentsLogger.php:107
|
868 |
msgctxt "A comment was approved"
|
869 |
msgid ""
|
870 |
"Approved a comment to \"{comment_post_title}\" by {comment_author} "
|
871 |
"({comment_author_email})"
|
872 |
msgstr ""
|
873 |
|
874 |
+
#: loggers/SimpleCommentsLogger.php:113
|
875 |
msgctxt "A comment was was unapproved"
|
876 |
msgid ""
|
877 |
"Unapproved a comment to \"{comment_post_title}\" by {comment_author} "
|
878 |
"({comment_author_email})"
|
879 |
msgstr ""
|
880 |
|
881 |
+
#: loggers/SimpleCommentsLogger.php:119
|
882 |
msgctxt "A comment was marked as spam"
|
883 |
msgid "Marked a comment to post \"{comment_post_title}\" as spam"
|
884 |
msgstr ""
|
885 |
|
886 |
+
#: loggers/SimpleCommentsLogger.php:125
|
887 |
msgctxt "A comment was marked moved to the trash"
|
888 |
msgid ""
|
889 |
"Trashed a comment to \"{comment_post_title}\" by {comment_author} "
|
890 |
"({comment_author_email})"
|
891 |
msgstr ""
|
892 |
|
893 |
+
#: loggers/SimpleCommentsLogger.php:131
|
894 |
msgctxt "A comment was restored from the trash"
|
895 |
msgid ""
|
896 |
"Restored a comment to \"{comment_post_title}\" by {comment_author} "
|
897 |
"({comment_author_email}) from the trash"
|
898 |
msgstr ""
|
899 |
|
900 |
+
#: loggers/SimpleCommentsLogger.php:137
|
901 |
msgctxt "A comment was deleted"
|
902 |
msgid ""
|
903 |
"Deleted a comment to \"{comment_post_title}\" by {comment_author} "
|
904 |
"({comment_author_email})"
|
905 |
msgstr ""
|
906 |
|
907 |
+
#: loggers/SimpleCommentsLogger.php:143
|
908 |
msgctxt "A comment was edited"
|
909 |
msgid ""
|
910 |
"Edited a comment to \"{comment_post_title}\" by {comment_author} "
|
911 |
"({comment_author_email})"
|
912 |
msgstr ""
|
913 |
|
914 |
+
#: loggers/SimpleCommentsLogger.php:150
|
915 |
msgctxt "A trackback was added to the database by a non-logged in internet user"
|
916 |
msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
|
917 |
msgstr ""
|
918 |
|
919 |
+
#: loggers/SimpleCommentsLogger.php:205
|
920 |
msgctxt "A trackback was added to the database by a non-logged in internet user"
|
921 |
msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
|
922 |
msgstr ""
|
923 |
|
924 |
+
#: loggers/SimpleCommentsLogger.php:156
|
925 |
msgctxt "A trackback was added to the database by a logged in user"
|
926 |
msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
|
927 |
msgstr ""
|
928 |
|
929 |
+
#: loggers/SimpleCommentsLogger.php:162
|
930 |
msgctxt "A trackback was approved"
|
931 |
msgid ""
|
932 |
"Approved a trackback to \"{comment_post_title}\" by {comment_author} "
|
933 |
"({comment_author_email})"
|
934 |
msgstr ""
|
935 |
|
936 |
+
#: loggers/SimpleCommentsLogger.php:168
|
937 |
msgctxt "A trackback was was unapproved"
|
938 |
msgid ""
|
939 |
"Unapproved a trackback to \"{comment_post_title}\" by {comment_author} "
|
940 |
"({comment_author_email})"
|
941 |
msgstr ""
|
942 |
|
943 |
+
#: loggers/SimpleCommentsLogger.php:174
|
944 |
msgctxt "A trackback was marked as spam"
|
945 |
msgid "Marked a trackback to post \"{comment_post_title}\" as spam"
|
946 |
msgstr ""
|
947 |
|
948 |
+
#: loggers/SimpleCommentsLogger.php:180
|
949 |
msgctxt "A trackback was marked moved to the trash"
|
950 |
msgid ""
|
951 |
"Trashed a trackback to \"{comment_post_title}\" by {comment_author} "
|
952 |
"({comment_author_email})"
|
953 |
msgstr ""
|
954 |
|
955 |
+
#: loggers/SimpleCommentsLogger.php:186
|
956 |
msgctxt "A trackback was restored from the trash"
|
957 |
msgid ""
|
958 |
"Restored a trackback to \"{comment_post_title}\" by {comment_author} "
|
959 |
"({comment_author_email}) from the trash"
|
960 |
msgstr ""
|
961 |
|
962 |
+
#: loggers/SimpleCommentsLogger.php:192
|
963 |
msgctxt "A trackback was deleted"
|
964 |
msgid ""
|
965 |
"Deleted a trackback to \"{comment_post_title}\" by {comment_author} "
|
966 |
"({comment_author_email})"
|
967 |
msgstr ""
|
968 |
|
969 |
+
#: loggers/SimpleCommentsLogger.php:198
|
970 |
msgctxt "A trackback was edited"
|
971 |
msgid ""
|
972 |
"Edited a trackback to \"{comment_post_title}\" by {comment_author} "
|
973 |
"({comment_author_email})"
|
974 |
msgstr ""
|
975 |
|
976 |
+
#: loggers/SimpleCommentsLogger.php:211
|
977 |
msgctxt "A pingback was added to the database by a logged in user"
|
978 |
msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
|
979 |
msgstr ""
|
980 |
|
981 |
+
#: loggers/SimpleCommentsLogger.php:217
|
982 |
msgctxt "A pingback was approved"
|
983 |
msgid ""
|
984 |
"Approved a pingback to \"{comment_post_title}\" by \"{comment_author}\"\" "
|
985 |
"({comment_author_email})"
|
986 |
msgstr ""
|
987 |
|
988 |
+
#: loggers/SimpleCommentsLogger.php:223
|
989 |
msgctxt "A pingback was was unapproved"
|
990 |
msgid ""
|
991 |
"Unapproved a pingback to \"{comment_post_title}\" by \"{comment_author}\" "
|
992 |
"({comment_author_email})"
|
993 |
msgstr ""
|
994 |
|
995 |
+
#: loggers/SimpleCommentsLogger.php:229
|
996 |
msgctxt "A pingback was marked as spam"
|
997 |
msgid "Marked a pingback to post \"{comment_post_title}\" as spam"
|
998 |
msgstr ""
|
999 |
|
1000 |
+
#: loggers/SimpleCommentsLogger.php:235
|
1001 |
msgctxt "A pingback was marked moved to the trash"
|
1002 |
msgid ""
|
1003 |
"Trashed a pingback to \"{comment_post_title}\" by {comment_author} "
|
1004 |
"({comment_author_email})"
|
1005 |
msgstr ""
|
1006 |
|
1007 |
+
#: loggers/SimpleCommentsLogger.php:241
|
1008 |
msgctxt "A pingback was restored from the trash"
|
1009 |
msgid ""
|
1010 |
"Restored a pingback to \"{comment_post_title}\" by {comment_author} "
|
1011 |
"({comment_author_email}) from the trash"
|
1012 |
msgstr ""
|
1013 |
|
1014 |
+
#: loggers/SimpleCommentsLogger.php:247
|
1015 |
msgctxt "A pingback was deleted"
|
1016 |
msgid ""
|
1017 |
"Deleted a pingback to \"{comment_post_title}\" by {comment_author} "
|
1018 |
"({comment_author_email})"
|
1019 |
msgstr ""
|
1020 |
|
1021 |
+
#: loggers/SimpleCommentsLogger.php:253
|
1022 |
msgctxt "A pingback was edited"
|
1023 |
msgid ""
|
1024 |
"Edited a pingback to \"{comment_post_title}\" by {comment_author} "
|
1025 |
"({comment_author_email})"
|
1026 |
msgstr ""
|
1027 |
|
1028 |
+
#: loggers/SimpleCommentsLogger.php:264
|
1029 |
msgctxt "Comments logger: search"
|
1030 |
msgid "Comments"
|
1031 |
msgstr ""
|
1032 |
|
1033 |
+
#: loggers/SimpleCommentsLogger.php:265
|
1034 |
msgctxt "Comments logger: search"
|
1035 |
msgid "All comments activity"
|
1036 |
msgstr ""
|
1037 |
|
1038 |
+
#: loggers/SimpleCommentsLogger.php:267
|
1039 |
msgctxt "Comments logger: search"
|
1040 |
msgid "Added comments"
|
1041 |
msgstr ""
|
1042 |
|
1043 |
+
#: loggers/SimpleCommentsLogger.php:275
|
1044 |
msgctxt "Comments logger: search"
|
1045 |
msgid "Edited comments"
|
1046 |
msgstr ""
|
1047 |
|
1048 |
+
#: loggers/SimpleCommentsLogger.php:280
|
1049 |
msgctxt "Comments logger: search"
|
1050 |
msgid "Approved comments"
|
1051 |
msgstr ""
|
1052 |
|
1053 |
+
#: loggers/SimpleCommentsLogger.php:285
|
1054 |
msgctxt "Comments logger: search"
|
1055 |
msgid "Held comments"
|
1056 |
msgstr ""
|
1057 |
|
1058 |
+
#: loggers/SimpleCommentsLogger.php:290
|
1059 |
msgctxt "Comments logger: search"
|
1060 |
msgid "Comments status changed to spam"
|
1061 |
msgstr ""
|
1062 |
|
1063 |
+
#: loggers/SimpleCommentsLogger.php:295
|
1064 |
msgctxt "Comments logger: search"
|
1065 |
msgid "Trashed comments"
|
1066 |
msgstr ""
|
1067 |
|
1068 |
+
#: loggers/SimpleCommentsLogger.php:300
|
1069 |
msgctxt "Comments logger: search"
|
1070 |
msgid "Untrashed comments"
|
1071 |
msgstr ""
|
1072 |
|
1073 |
+
#: loggers/SimpleCommentsLogger.php:305
|
1074 |
msgctxt "Comments logger: search"
|
1075 |
msgid "Deleted comments"
|
1076 |
msgstr ""
|
1077 |
|
1078 |
+
#: loggers/SimpleCommentsLogger.php:602 loggers/SimpleCommentsLogger.php:615
|
1079 |
+
#: loggers/SimpleCommentsLogger.php:629
|
1080 |
msgctxt "comments logger - detailed output comment status"
|
1081 |
msgid "Status"
|
1082 |
msgstr ""
|
1083 |
|
1084 |
+
#: loggers/SimpleCommentsLogger.php:604 loggers/SimpleCommentsLogger.php:617
|
1085 |
+
#: loggers/SimpleCommentsLogger.php:631
|
1086 |
msgctxt "comments logger - detailed output author"
|
1087 |
msgid "Name"
|
1088 |
msgstr ""
|
1089 |
|
1090 |
+
#: loggers/SimpleCommentsLogger.php:605 loggers/SimpleCommentsLogger.php:618
|
1091 |
+
#: loggers/SimpleCommentsLogger.php:632
|
1092 |
msgctxt "comments logger - detailed output email"
|
1093 |
msgid "Email"
|
1094 |
msgstr ""
|
1095 |
|
1096 |
+
#: loggers/SimpleCommentsLogger.php:606 loggers/SimpleCommentsLogger.php:619
|
1097 |
msgctxt "comments logger - detailed output content"
|
1098 |
msgid "Content"
|
1099 |
msgstr ""
|
1100 |
|
1101 |
+
#: loggers/SimpleCommentsLogger.php:633
|
1102 |
msgctxt "comments logger - detailed output content"
|
1103 |
msgid "Comment"
|
1104 |
msgstr ""
|
1105 |
|
1106 |
+
#: loggers/SimpleCommentsLogger.php:759
|
1107 |
msgctxt "comments logger - edit comment"
|
1108 |
msgid "View/Edit"
|
1109 |
msgstr ""
|
1118 |
msgid "WordPress core updates"
|
1119 |
msgstr ""
|
1120 |
|
1121 |
+
#: loggers/SimpleUserLogger.php:54
|
1122 |
msgctxt "User logger: search"
|
1123 |
msgid "Users"
|
1124 |
msgstr ""
|
1125 |
|
1126 |
+
#: loggers/SimpleUserLogger.php:55
|
1127 |
msgctxt "User logger: search"
|
1128 |
msgid "All user activity"
|
1129 |
msgstr ""
|
1130 |
|
1131 |
+
#: loggers/SimpleUserLogger.php:57
|
1132 |
msgctxt "User logger: search"
|
1133 |
msgid "Successful user logins"
|
1134 |
msgstr ""
|
1135 |
|
1136 |
+
#: loggers/SimpleUserLogger.php:61
|
1137 |
msgctxt "User logger: search"
|
1138 |
msgid "Failed user logins"
|
1139 |
msgstr ""
|
1140 |
|
1141 |
+
#: loggers/SimpleUserLogger.php:65
|
1142 |
msgctxt "User logger: search"
|
1143 |
msgid "User logouts"
|
1144 |
msgstr ""
|
1145 |
|
1146 |
+
#: loggers/SimpleUserLogger.php:68
|
1147 |
msgctxt "User logger: search"
|
1148 |
msgid "Created users"
|
1149 |
msgstr ""
|
1150 |
|
1151 |
+
#: loggers/SimpleUserLogger.php:71
|
1152 |
msgctxt "User logger: search"
|
1153 |
msgid "User profile updates"
|
1154 |
msgstr ""
|
1155 |
|
1156 |
+
#: loggers/SimpleUserLogger.php:74
|
1157 |
msgctxt "User logger: search"
|
1158 |
msgid "User deletions"
|
1159 |
msgstr ""
|
1168 |
msgid "Created exports"
|
1169 |
msgstr ""
|
1170 |
|
1171 |
+
#: loggers/SimpleLogger.php:194
|
1172 |
msgctxt "header output when initiator is the currently logged in user"
|
1173 |
msgid "You"
|
1174 |
msgstr ""
|
1237 |
msgid "Changed options"
|
1238 |
msgstr ""
|
1239 |
|
1240 |
+
#: loggers/SimplePluginLogger.php:25
|
1241 |
msgctxt "Plugin was non-silently activated by a user"
|
1242 |
msgid "Activated plugin \"{plugin_name}\""
|
1243 |
msgstr ""
|
1244 |
|
1245 |
+
#: loggers/SimplePluginLogger.php:31
|
1246 |
msgctxt "Plugin was non-silently deactivated by a user"
|
1247 |
msgid "Deactivated plugin \"{plugin_name}\""
|
1248 |
msgstr ""
|
1249 |
|
1250 |
+
#: loggers/SimplePluginLogger.php:37
|
1251 |
msgctxt "Plugin was installed"
|
1252 |
msgid "Installed plugin \"{plugin_name}\""
|
1253 |
msgstr ""
|
1254 |
|
1255 |
+
#: loggers/SimplePluginLogger.php:43
|
1256 |
msgctxt "Plugin failed to install"
|
1257 |
msgid "Failed to install plugin \"{plugin_name}\""
|
1258 |
msgstr ""
|
1259 |
|
1260 |
+
#: loggers/SimplePluginLogger.php:49
|
1261 |
msgctxt "Plugin was updated"
|
1262 |
msgid ""
|
1263 |
"Updated plugin \"{plugin_name}\" to version {plugin_version} from "
|
1264 |
"{plugin_prev_version}"
|
1265 |
msgstr ""
|
1266 |
|
1267 |
+
#: loggers/SimplePluginLogger.php:55
|
1268 |
msgctxt "Plugin update failed"
|
1269 |
msgid "Updated plugin \"{plugin_name}\""
|
1270 |
msgstr ""
|
1271 |
|
1272 |
+
#: loggers/SimplePluginLogger.php:61
|
1273 |
msgctxt "Plugin file edited"
|
1274 |
msgid "Edited plugin file \"{plugin_edited_file}\""
|
1275 |
msgstr ""
|
1276 |
|
1277 |
+
#: loggers/SimplePluginLogger.php:67
|
1278 |
msgctxt "Plugin files was deleted"
|
1279 |
msgid "Deleted plugin \"{plugin_name}\""
|
1280 |
msgstr ""
|
1281 |
|
1282 |
+
#: loggers/SimplePluginLogger.php:74
|
1283 |
msgctxt "Plugin was updated in bulk"
|
1284 |
msgid ""
|
1285 |
"Updated plugin \"{plugin_name}\" to {plugin_version} from "
|
1286 |
"{plugin_prev_version}"
|
1287 |
msgstr ""
|
1288 |
|
1289 |
+
#: loggers/SimplePluginLogger.php:82
|
1290 |
msgctxt "Plugin logger: search"
|
1291 |
msgid "Plugins"
|
1292 |
msgstr ""
|
1293 |
|
1294 |
+
#: loggers/SimplePluginLogger.php:84
|
1295 |
msgctxt "Plugin logger: search"
|
1296 |
msgid "Activated plugins"
|
1297 |
msgstr ""
|
1298 |
|
1299 |
+
#: loggers/SimplePluginLogger.php:87
|
1300 |
msgctxt "Plugin logger: search"
|
1301 |
msgid "Deactivated plugins"
|
1302 |
msgstr ""
|
1303 |
|
1304 |
+
#: loggers/SimplePluginLogger.php:90
|
1305 |
msgctxt "Plugin logger: search"
|
1306 |
msgid "Installed plugins"
|
1307 |
msgstr ""
|
1308 |
|
1309 |
+
#: loggers/SimplePluginLogger.php:93
|
1310 |
msgctxt "Plugin logger: search"
|
1311 |
msgid "Failed plugin installs"
|
1312 |
msgstr ""
|
1313 |
|
1314 |
+
#: loggers/SimplePluginLogger.php:96
|
1315 |
msgctxt "Plugin logger: search"
|
1316 |
msgid "Updated plugins"
|
1317 |
msgstr ""
|
1318 |
|
1319 |
+
#: loggers/SimplePluginLogger.php:100
|
1320 |
msgctxt "Plugin logger: search"
|
1321 |
msgid "Failed plugin updates"
|
1322 |
msgstr ""
|
1323 |
|
1324 |
+
#: loggers/SimplePluginLogger.php:103
|
1325 |
msgctxt "Plugin logger: search"
|
1326 |
msgid "Edited plugin files"
|
1327 |
msgstr ""
|
1328 |
|
1329 |
+
#: loggers/SimplePluginLogger.php:106
|
1330 |
msgctxt "Plugin logger: search"
|
1331 |
msgid "Deleted plugins"
|
1332 |
msgstr ""
|
1333 |
|
1334 |
+
#: loggers/SimplePluginLogger.php:891
|
1335 |
msgctxt "plugin logger - detailed output version"
|
1336 |
msgid "Version"
|
1337 |
msgstr ""
|
1338 |
|
1339 |
+
#: loggers/SimplePluginLogger.php:893
|
1340 |
msgctxt "plugin logger - detailed output author"
|
1341 |
msgid "Author"
|
1342 |
msgstr ""
|
1343 |
|
1344 |
+
#: loggers/SimplePluginLogger.php:895
|
1345 |
msgctxt "plugin logger - detailed output author"
|
1346 |
msgid "Requires"
|
1347 |
msgstr ""
|
1348 |
|
1349 |
+
#: loggers/SimplePluginLogger.php:894
|
1350 |
msgctxt "plugin logger - detailed output url"
|
1351 |
msgid "URL"
|
1352 |
msgstr ""
|
1353 |
|
1354 |
+
#: loggers/SimplePluginLogger.php:896
|
1355 |
msgctxt "plugin logger - detailed output compatible"
|
1356 |
msgid "Compatible up to"
|
1357 |
msgstr ""
|
1358 |
|
1359 |
+
#: loggers/SimplePluginLogger.php:897
|
1360 |
msgctxt "plugin logger - detailed output downloaded"
|
1361 |
msgid "Downloads"
|
1362 |
msgstr ""
|
1363 |
|
1364 |
+
#: loggers/SimplePluginLogger.php:957
|
1365 |
msgctxt "plugin logger: plugin info thickbox title view all info"
|
1366 |
msgid "View plugin info"
|
1367 |
msgstr ""
|
1368 |
|
1369 |
+
#: loggers/SimplePluginLogger.php:972
|
1370 |
msgctxt "plugin logger: plugin info thickbox title"
|
1371 |
msgid "View plugin info"
|
1372 |
msgstr ""
|
1373 |
|
1374 |
+
#: loggers/SimplePluginLogger.php:976
|
1375 |
msgctxt "plugin logger: plugin info thickbox title"
|
1376 |
msgid "View changelog"
|
1377 |
msgstr ""
|
1378 |
|
1379 |
+
#: loggers/SimplePostLogger.php:188
|
1380 |
msgctxt "Post logger: search"
|
1381 |
msgid "Posts & Pages"
|
1382 |
msgstr ""
|
1383 |
|
1384 |
+
#: loggers/SimplePostLogger.php:190
|
1385 |
msgctxt "Post logger: search"
|
1386 |
msgid "Posts created"
|
1387 |
msgstr ""
|
1388 |
|
1389 |
+
#: loggers/SimplePostLogger.php:193
|
1390 |
msgctxt "Post logger: search"
|
1391 |
msgid "Posts updated"
|
1392 |
msgstr ""
|
1393 |
|
1394 |
+
#: loggers/SimplePostLogger.php:196
|
1395 |
msgctxt "Post logger: search"
|
1396 |
msgid "Posts trashed"
|
1397 |
msgstr ""
|
1398 |
|
1399 |
+
#: loggers/SimplePostLogger.php:199
|
1400 |
msgctxt "Post logger: search"
|
1401 |
msgid "Posts deleted"
|
1402 |
msgstr ""
|
1403 |
|
1404 |
+
#: loggers/SimplePostLogger.php:202
|
1405 |
msgctxt "Post logger: search"
|
1406 |
msgid "Posts restored"
|
1407 |
msgstr ""
|
1446 |
msgid "Background of themes changed"
|
1447 |
msgstr ""
|
1448 |
|
1449 |
+
#: loggers/SimpleUserLogger.php:36
|
1450 |
+
msgctxt "User destroys other login sessions for themself"
|
1451 |
+
msgid "Logged out from all other sessions"
|
1452 |
+
msgstr ""
|
1453 |
+
|
1454 |
+
#: loggers/SimpleUserLogger.php:45
|
1455 |
+
msgctxt "User destroys all login sessions for a user"
|
1456 |
+
msgid "Logged out \"{user_display_name}\" from all sessions"
|
1457 |
+
msgstr ""
|
1458 |
+
|
1459 |
#: templates/settings-statsRowsPerDay.php:36
|
1460 |
msgctxt "stats: date in rows per day chart"
|
1461 |
msgid "M j"
|
loggers/SimpleCommentsLogger.php
CHANGED
@@ -15,6 +15,7 @@ class SimpleCommentsLogger extends SimpleLogger
|
|
15 |
// Add option to not show spam comments, because to much things getting logged
|
16 |
#add_filter("simple_history/log_query_sql_where", array($this, "maybe_modify_log_query_sql_where"));
|
17 |
add_filter("simple_history/log_query_inner_where", array($this, "maybe_modify_log_query_sql_where"));
|
|
|
18 |
|
19 |
}
|
20 |
|
@@ -24,9 +25,9 @@ class SimpleCommentsLogger extends SimpleLogger
|
|
24 |
* @param string $where sql query where
|
25 |
*/
|
26 |
function maybe_modify_log_query_sql_where($where) {
|
27 |
-
|
28 |
$include_spam = false;
|
29 |
-
|
30 |
/**
|
31 |
* Filter option to include spam or not in the gui
|
32 |
* By default spam is not included, because it can fill the log
|
@@ -44,29 +45,29 @@ class SimpleCommentsLogger extends SimpleLogger
|
|
44 |
|
45 |
$where .= sprintf('
|
46 |
AND id NOT IN (
|
47 |
-
|
48 |
SELECT id
|
49 |
-
# , c1.history_id, c2.history_id
|
50 |
FROM %1$s AS h
|
51 |
|
52 |
-
INNER JOIN %2$s AS c1
|
53 |
-
ON c1.history_id = h.id
|
54 |
-
AND c1.key = "_message_key"
|
55 |
AND c1.value IN (
|
56 |
-
"comment_deleted",
|
57 |
-
"pingback_deleted",
|
58 |
"trackback_deleted",
|
59 |
-
"anon_comment_added",
|
60 |
-
"anon_pingback_added",
|
61 |
"anon_trackback_added"
|
62 |
)
|
63 |
|
64 |
-
INNER JOIN %2$s AS c2
|
65 |
-
ON c2.history_id = h.id
|
66 |
-
AND c2.key = "comment_approved"
|
67 |
AND c2.value = "spam"
|
68 |
|
69 |
-
WHERE logger = "%3$s"
|
70 |
|
71 |
)
|
72 |
', $this->db_table, $this->db_table_contexts, $this->slug);
|
@@ -79,12 +80,12 @@ class SimpleCommentsLogger extends SimpleLogger
|
|
79 |
|
80 |
/**
|
81 |
* Get array with information about this logger
|
82 |
-
*
|
83 |
* @return array
|
84 |
*/
|
85 |
function getInfo() {
|
86 |
|
87 |
-
$arr_info = array(
|
88 |
"name" => "Comments Logger",
|
89 |
"description" => "Logs comments, and modifications to them",
|
90 |
"capability" => "moderate_comments",
|
@@ -98,49 +99,49 @@ class SimpleCommentsLogger extends SimpleLogger
|
|
98 |
),
|
99 |
|
100 |
'user_comment_added' => _x(
|
101 |
-
'Added a comment to {comment_post_type} "{comment_post_title}"',
|
102 |
'A comment was added to the database by a logged in user',
|
103 |
'simple-history'
|
104 |
),
|
105 |
|
106 |
'comment_status_approve' => _x(
|
107 |
-
'Approved a comment to "{comment_post_title}" by {comment_author} ({comment_author_email})',
|
108 |
'A comment was approved',
|
109 |
'simple-history'
|
110 |
),
|
111 |
|
112 |
'comment_status_hold' => _x(
|
113 |
-
'Unapproved a comment to "{comment_post_title}" by {comment_author} ({comment_author_email})',
|
114 |
'A comment was was unapproved',
|
115 |
'simple-history'
|
116 |
),
|
117 |
|
118 |
'comment_status_spam' => _x(
|
119 |
-
'Marked a comment to post "{comment_post_title}" as spam',
|
120 |
'A comment was marked as spam',
|
121 |
'simple-history'
|
122 |
),
|
123 |
|
124 |
'comment_status_trash' => _x(
|
125 |
-
'Trashed a comment to "{comment_post_title}" by {comment_author} ({comment_author_email})',
|
126 |
'A comment was marked moved to the trash',
|
127 |
'simple-history'
|
128 |
),
|
129 |
|
130 |
'comment_untrashed' => _x(
|
131 |
-
'Restored a comment to "{comment_post_title}" by {comment_author} ({comment_author_email}) from the trash',
|
132 |
'A comment was restored from the trash',
|
133 |
'simple-history'
|
134 |
),
|
135 |
|
136 |
'comment_deleted' => _x(
|
137 |
-
'Deleted a comment to "{comment_post_title}" by {comment_author} ({comment_author_email})',
|
138 |
'A comment was deleted',
|
139 |
'simple-history'
|
140 |
),
|
141 |
|
142 |
'comment_edited' => _x(
|
143 |
-
'Edited a comment to "{comment_post_title}" by {comment_author} ({comment_author_email})',
|
144 |
'A comment was edited',
|
145 |
'simple-history'
|
146 |
),
|
@@ -153,49 +154,49 @@ class SimpleCommentsLogger extends SimpleLogger
|
|
153 |
),
|
154 |
|
155 |
'user_trackback_added' => _x(
|
156 |
-
'Added a trackback to {comment_post_type} "{comment_post_title}"',
|
157 |
'A trackback was added to the database by a logged in user',
|
158 |
'simple-history'
|
159 |
),
|
160 |
|
161 |
'trackback_status_approve' => _x(
|
162 |
-
'Approved a trackback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
|
163 |
'A trackback was approved',
|
164 |
'simple-history'
|
165 |
),
|
166 |
|
167 |
'trackback_status_hold' => _x(
|
168 |
-
'Unapproved a trackback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
|
169 |
'A trackback was was unapproved',
|
170 |
'simple-history'
|
171 |
),
|
172 |
|
173 |
'trackback_status_spam' => _x(
|
174 |
-
'Marked a trackback to post "{comment_post_title}" as spam',
|
175 |
'A trackback was marked as spam',
|
176 |
'simple-history'
|
177 |
),
|
178 |
|
179 |
'trackback_status_trash' => _x(
|
180 |
-
'Trashed a trackback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
|
181 |
'A trackback was marked moved to the trash',
|
182 |
'simple-history'
|
183 |
),
|
184 |
|
185 |
'trackback_untrashed' => _x(
|
186 |
-
'Restored a trackback to "{comment_post_title}" by {comment_author} ({comment_author_email}) from the trash',
|
187 |
'A trackback was restored from the trash',
|
188 |
'simple-history'
|
189 |
),
|
190 |
|
191 |
'trackback_deleted' => _x(
|
192 |
-
'Deleted a trackback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
|
193 |
'A trackback was deleted',
|
194 |
'simple-history'
|
195 |
),
|
196 |
|
197 |
'trackback_edited' => _x(
|
198 |
-
'Edited a trackback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
|
199 |
'A trackback was edited',
|
200 |
'simple-history'
|
201 |
),
|
@@ -208,49 +209,49 @@ class SimpleCommentsLogger extends SimpleLogger
|
|
208 |
),
|
209 |
|
210 |
'user_pingback_added' => _x(
|
211 |
-
'Added a pingback to {comment_post_type} "{comment_post_title}"',
|
212 |
'A pingback was added to the database by a logged in user',
|
213 |
'simple-history'
|
214 |
),
|
215 |
|
216 |
'pingback_status_approve' => _x(
|
217 |
-
'Approved a pingback to "{comment_post_title}" by "{comment_author}"" ({comment_author_email})',
|
218 |
'A pingback was approved',
|
219 |
'simple-history'
|
220 |
),
|
221 |
|
222 |
'pingback_status_hold' => _x(
|
223 |
-
'Unapproved a pingback to "{comment_post_title}" by "{comment_author}" ({comment_author_email})',
|
224 |
'A pingback was was unapproved',
|
225 |
'simple-history'
|
226 |
),
|
227 |
|
228 |
'pingback_status_spam' => _x(
|
229 |
-
'Marked a pingback to post "{comment_post_title}" as spam',
|
230 |
'A pingback was marked as spam',
|
231 |
'simple-history'
|
232 |
),
|
233 |
|
234 |
'pingback_status_trash' => _x(
|
235 |
-
'Trashed a pingback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
|
236 |
'A pingback was marked moved to the trash',
|
237 |
'simple-history'
|
238 |
),
|
239 |
|
240 |
'pingback_untrashed' => _x(
|
241 |
-
'Restored a pingback to "{comment_post_title}" by {comment_author} ({comment_author_email}) from the trash',
|
242 |
'A pingback was restored from the trash',
|
243 |
'simple-history'
|
244 |
),
|
245 |
|
246 |
'pingback_deleted' => _x(
|
247 |
-
'Deleted a pingback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
|
248 |
'A pingback was deleted',
|
249 |
'simple-history'
|
250 |
),
|
251 |
|
252 |
'pingback_edited' => _x(
|
253 |
-
'Edited a pingback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
|
254 |
'A pingback was edited',
|
255 |
'simple-history'
|
256 |
),
|
@@ -312,7 +313,7 @@ class SimpleCommentsLogger extends SimpleLogger
|
|
312 |
) // labels
|
313 |
|
314 |
);
|
315 |
-
|
316 |
return $arr_info;
|
317 |
|
318 |
}
|
@@ -346,12 +347,12 @@ class SimpleCommentsLogger extends SimpleLogger
|
|
346 |
*/
|
347 |
add_action( "edit_comment", array( $this, 'on_edit_comment'), 10, 1 );
|
348 |
|
349 |
-
|
350 |
}
|
351 |
|
352 |
/**
|
353 |
* Get comments context
|
354 |
-
*
|
355 |
* @param int $comment_ID
|
356 |
* @return mixed array with context if comment found, false if comment not found
|
357 |
*/
|
@@ -383,6 +384,11 @@ class SimpleCommentsLogger extends SimpleLogger
|
|
383 |
"comment_post_type" => $comment_parent_post->post_type,
|
384 |
);
|
385 |
|
|
|
|
|
|
|
|
|
|
|
386 |
return $context;
|
387 |
|
388 |
}
|
@@ -397,7 +403,7 @@ class SimpleCommentsLogger extends SimpleLogger
|
|
397 |
$this->infoMessage(
|
398 |
"{$context["comment_type"]}_edited",
|
399 |
$context
|
400 |
-
);
|
401 |
|
402 |
}
|
403 |
|
@@ -421,7 +427,7 @@ class SimpleCommentsLogger extends SimpleLogger
|
|
421 |
$this->infoMessage(
|
422 |
"{$context["comment_type"]}_deleted",
|
423 |
$context
|
424 |
-
);
|
425 |
|
426 |
}
|
427 |
|
@@ -435,7 +441,7 @@ class SimpleCommentsLogger extends SimpleLogger
|
|
435 |
$this->infoMessage(
|
436 |
"{$context["comment_type"]}_untrashed",
|
437 |
$context
|
438 |
-
);
|
439 |
|
440 |
}
|
441 |
|
@@ -446,7 +452,7 @@ class SimpleCommentsLogger extends SimpleLogger
|
|
446 |
* @param string|bool $comment_status The comment status. Possible values include 'hold',
|
447 |
* 'approve', 'spam', 'trash', or false.
|
448 |
* do_action( 'wp_set_comment_status', $comment_id, $comment_status );
|
449 |
-
*/
|
450 |
public function on_wp_set_comment_status($comment_ID, $comment_status) {
|
451 |
|
452 |
$context = $this->get_context_for_comment($comment_ID);
|
@@ -481,7 +487,7 @@ class SimpleCommentsLogger extends SimpleLogger
|
|
481 |
public function on_comment_post($comment_ID, $comment_approved) {
|
482 |
|
483 |
$context = $this->get_context_for_comment($comment_ID);
|
484 |
-
|
485 |
if ( ! $context ) {
|
486 |
return;
|
487 |
}
|
@@ -489,14 +495,14 @@ class SimpleCommentsLogger extends SimpleLogger
|
|
489 |
$comment_data = get_comment( $comment_ID );
|
490 |
|
491 |
$message = "";
|
492 |
-
|
493 |
if ( $comment_data->user_id ) {
|
494 |
-
|
495 |
// comment was from a logged in user
|
496 |
$message = "user_{$context["comment_type"]}_added";
|
497 |
|
498 |
} else {
|
499 |
-
|
500 |
// comment was from a non-logged in user
|
501 |
$message = "anon_{$context["comment_type"]}_added";
|
502 |
$context["_initiator"] = SimpleLoggerLogInitiators::WEB_USER;
|
@@ -509,16 +515,6 @@ class SimpleCommentsLogger extends SimpleLogger
|
|
509 |
|
510 |
}
|
511 |
|
512 |
-
// @TODO: group comments by comment_type comment | trackback | pingback
|
513 |
-
// OR: different messages for different comment types?
|
514 |
-
/*
|
515 |
-
if ( isset( $comment_data["comment_type"] ) ) {
|
516 |
-
|
517 |
-
$comment_type = $comment_data["comment_type"];
|
518 |
-
|
519 |
-
}
|
520 |
-
*/
|
521 |
-
|
522 |
$this->infoMessage(
|
523 |
$message,
|
524 |
$context
|
@@ -532,11 +528,17 @@ class SimpleCommentsLogger extends SimpleLogger
|
|
532 |
* and link to comment
|
533 |
*/
|
534 |
public function getLogRowPlainTextOutput($row) {
|
535 |
-
|
536 |
$message = $row->message;
|
537 |
$context = $row->context;
|
538 |
$message_key = $context["_message_key"];
|
539 |
|
|
|
|
|
|
|
|
|
|
|
|
|
540 |
// Wrap links around {comment_post_title}
|
541 |
$comment_post_ID = isset( $context["comment_post_ID"] ) ? (int) $context["comment_post_ID"] : null;
|
542 |
if ( $comment_post_ID && $comment_post = get_post( $comment_post_ID ) ) {
|
@@ -544,7 +546,7 @@ class SimpleCommentsLogger extends SimpleLogger
|
|
544 |
$edit_post_link = get_edit_post_link( $comment_post_ID );
|
545 |
|
546 |
if ( $edit_post_link ) {
|
547 |
-
|
548 |
$message = str_replace(
|
549 |
'"{comment_post_title}"',
|
550 |
"<a href='{$edit_post_link}'>\"{comment_post_title}\"</a>",
|
@@ -552,9 +554,10 @@ class SimpleCommentsLogger extends SimpleLogger
|
|
552 |
);
|
553 |
|
554 |
}
|
555 |
-
|
556 |
}
|
557 |
|
|
|
558 |
return $this->interpolate($message, $context);
|
559 |
|
560 |
}
|
@@ -568,8 +571,8 @@ class SimpleCommentsLogger extends SimpleLogger
|
|
568 |
$context = $row->context;
|
569 |
$message_key = $context["_message_key"];
|
570 |
$output = "";
|
571 |
-
|
572 |
-
/*
|
573 |
if ( 'spam' !== $commentdata['comment_approved'] ) { // If it's spam save it silently for later crunching
|
574 |
if ( '0' == $commentdata['comment_approved'] ) { // comment not spam, but not auto-approved
|
575 |
wp_notify_moderator( $comment_ID );
|
@@ -586,7 +589,7 @@ class SimpleCommentsLogger extends SimpleLogger
|
|
586 |
$comment_text = wp_trim_words( $comment_text, 20 );
|
587 |
$comment_text = wpautop( $comment_text );
|
588 |
}
|
589 |
-
|
590 |
// Keys to show
|
591 |
$arr_plugin_keys = array();
|
592 |
$comment_type = isset( $context["comment_type"] ) ? $context["comment_type"] : "";
|
@@ -621,7 +624,7 @@ class SimpleCommentsLogger extends SimpleLogger
|
|
621 |
|
622 |
case "comment";
|
623 |
default;
|
624 |
-
|
625 |
$arr_plugin_keys = array(
|
626 |
"comment_status" => _x("Status", "comments logger - detailed output comment status", "simple-history"),
|
627 |
#"comment_type" => _x("Comment type", "comments logger - detailed output comment type", "simple-history"),
|
@@ -643,7 +646,7 @@ class SimpleCommentsLogger extends SimpleLogger
|
|
643 |
$output .= "<table class='SimpleHistoryLogitem__keyValueTable'>";
|
644 |
|
645 |
foreach ( $arr_plugin_keys as $key => $desc ) {
|
646 |
-
|
647 |
switch ( $key ) {
|
648 |
|
649 |
case "comment_content":
|
@@ -655,18 +658,18 @@ class SimpleCommentsLogger extends SimpleLogger
|
|
655 |
case "comment_author":
|
656 |
case "trackback_author":
|
657 |
case "pingback_author":
|
658 |
-
|
659 |
$desc_output = "";
|
660 |
|
661 |
$desc_output .= esc_html( $context[ $key ] );
|
662 |
|
663 |
/*
|
664 |
if ( isset( $context["comment_author_email"] ) ) {
|
665 |
-
|
666 |
$gravatar_email = $context["comment_author_email"];
|
667 |
$avatar = $this->simpleHistory->get_avatar( $gravatar_email, 14, "blank" );
|
668 |
$desc_output .= "<span class='SimpleCommentsLogger__gravatar'>{$avatar}</span>";
|
669 |
-
|
670 |
}
|
671 |
*/
|
672 |
|
@@ -735,17 +738,17 @@ class SimpleCommentsLogger extends SimpleLogger
|
|
735 |
|
736 |
// Add link to edit comment
|
737 |
$comment_ID = isset( $context["comment_ID"] ) && is_numeric( $context["comment_ID"] ) ? (int) $context["comment_ID"] : false;
|
738 |
-
|
739 |
if ( $comment_ID ) {
|
740 |
-
|
741 |
// http://site.local/wp/wp-admin/comment.php?action=editcomment&c=
|
742 |
$edit_comment_link = get_edit_comment_link( $comment_ID );
|
743 |
-
|
744 |
// Edit link sometimes does not contain comment ID
|
745 |
// Probably because comment has been removed or something
|
746 |
// So only continue if link does not end with "=""
|
747 |
if ( $edit_comment_link && $edit_comment_link[strlen($edit_comment_link)-1] !== "=" ) {
|
748 |
-
|
749 |
$output .= sprintf(
|
750 |
'
|
751 |
<tr>
|
15 |
// Add option to not show spam comments, because to much things getting logged
|
16 |
#add_filter("simple_history/log_query_sql_where", array($this, "maybe_modify_log_query_sql_where"));
|
17 |
add_filter("simple_history/log_query_inner_where", array($this, "maybe_modify_log_query_sql_where"));
|
18 |
+
add_filter("simple_history/quick_stats_where", array($this, "maybe_modify_log_query_sql_where"));
|
19 |
|
20 |
}
|
21 |
|
25 |
* @param string $where sql query where
|
26 |
*/
|
27 |
function maybe_modify_log_query_sql_where($where) {
|
28 |
+
|
29 |
$include_spam = false;
|
30 |
+
|
31 |
/**
|
32 |
* Filter option to include spam or not in the gui
|
33 |
* By default spam is not included, because it can fill the log
|
45 |
|
46 |
$where .= sprintf('
|
47 |
AND id NOT IN (
|
48 |
+
|
49 |
SELECT id
|
50 |
+
# , c1.history_id, c2.history_id
|
51 |
FROM %1$s AS h
|
52 |
|
53 |
+
INNER JOIN %2$s AS c1
|
54 |
+
ON c1.history_id = h.id
|
55 |
+
AND c1.key = "_message_key"
|
56 |
AND c1.value IN (
|
57 |
+
"comment_deleted",
|
58 |
+
"pingback_deleted",
|
59 |
"trackback_deleted",
|
60 |
+
"anon_comment_added",
|
61 |
+
"anon_pingback_added",
|
62 |
"anon_trackback_added"
|
63 |
)
|
64 |
|
65 |
+
INNER JOIN %2$s AS c2
|
66 |
+
ON c2.history_id = h.id
|
67 |
+
AND c2.key = "comment_approved"
|
68 |
AND c2.value = "spam"
|
69 |
|
70 |
+
WHERE logger = "%3$s"
|
71 |
|
72 |
)
|
73 |
', $this->db_table, $this->db_table_contexts, $this->slug);
|
80 |
|
81 |
/**
|
82 |
* Get array with information about this logger
|
83 |
+
*
|
84 |
* @return array
|
85 |
*/
|
86 |
function getInfo() {
|
87 |
|
88 |
+
$arr_info = array(
|
89 |
"name" => "Comments Logger",
|
90 |
"description" => "Logs comments, and modifications to them",
|
91 |
"capability" => "moderate_comments",
|
99 |
),
|
100 |
|
101 |
'user_comment_added' => _x(
|
102 |
+
'Added a comment to {comment_post_type} "{comment_post_title}"',
|
103 |
'A comment was added to the database by a logged in user',
|
104 |
'simple-history'
|
105 |
),
|
106 |
|
107 |
'comment_status_approve' => _x(
|
108 |
+
'Approved a comment to "{comment_post_title}" by {comment_author} ({comment_author_email})',
|
109 |
'A comment was approved',
|
110 |
'simple-history'
|
111 |
),
|
112 |
|
113 |
'comment_status_hold' => _x(
|
114 |
+
'Unapproved a comment to "{comment_post_title}" by {comment_author} ({comment_author_email})',
|
115 |
'A comment was was unapproved',
|
116 |
'simple-history'
|
117 |
),
|
118 |
|
119 |
'comment_status_spam' => _x(
|
120 |
+
'Marked a comment to post "{comment_post_title}" as spam',
|
121 |
'A comment was marked as spam',
|
122 |
'simple-history'
|
123 |
),
|
124 |
|
125 |
'comment_status_trash' => _x(
|
126 |
+
'Trashed a comment to "{comment_post_title}" by {comment_author} ({comment_author_email})',
|
127 |
'A comment was marked moved to the trash',
|
128 |
'simple-history'
|
129 |
),
|
130 |
|
131 |
'comment_untrashed' => _x(
|
132 |
+
'Restored a comment to "{comment_post_title}" by {comment_author} ({comment_author_email}) from the trash',
|
133 |
'A comment was restored from the trash',
|
134 |
'simple-history'
|
135 |
),
|
136 |
|
137 |
'comment_deleted' => _x(
|
138 |
+
'Deleted a comment to "{comment_post_title}" by {comment_author} ({comment_author_email})',
|
139 |
'A comment was deleted',
|
140 |
'simple-history'
|
141 |
),
|
142 |
|
143 |
'comment_edited' => _x(
|
144 |
+
'Edited a comment to "{comment_post_title}" by {comment_author} ({comment_author_email})',
|
145 |
'A comment was edited',
|
146 |
'simple-history'
|
147 |
),
|
154 |
),
|
155 |
|
156 |
'user_trackback_added' => _x(
|
157 |
+
'Added a trackback to {comment_post_type} "{comment_post_title}"',
|
158 |
'A trackback was added to the database by a logged in user',
|
159 |
'simple-history'
|
160 |
),
|
161 |
|
162 |
'trackback_status_approve' => _x(
|
163 |
+
'Approved a trackback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
|
164 |
'A trackback was approved',
|
165 |
'simple-history'
|
166 |
),
|
167 |
|
168 |
'trackback_status_hold' => _x(
|
169 |
+
'Unapproved a trackback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
|
170 |
'A trackback was was unapproved',
|
171 |
'simple-history'
|
172 |
),
|
173 |
|
174 |
'trackback_status_spam' => _x(
|
175 |
+
'Marked a trackback to post "{comment_post_title}" as spam',
|
176 |
'A trackback was marked as spam',
|
177 |
'simple-history'
|
178 |
),
|
179 |
|
180 |
'trackback_status_trash' => _x(
|
181 |
+
'Trashed a trackback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
|
182 |
'A trackback was marked moved to the trash',
|
183 |
'simple-history'
|
184 |
),
|
185 |
|
186 |
'trackback_untrashed' => _x(
|
187 |
+
'Restored a trackback to "{comment_post_title}" by {comment_author} ({comment_author_email}) from the trash',
|
188 |
'A trackback was restored from the trash',
|
189 |
'simple-history'
|
190 |
),
|
191 |
|
192 |
'trackback_deleted' => _x(
|
193 |
+
'Deleted a trackback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
|
194 |
'A trackback was deleted',
|
195 |
'simple-history'
|
196 |
),
|
197 |
|
198 |
'trackback_edited' => _x(
|
199 |
+
'Edited a trackback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
|
200 |
'A trackback was edited',
|
201 |
'simple-history'
|
202 |
),
|
209 |
),
|
210 |
|
211 |
'user_pingback_added' => _x(
|
212 |
+
'Added a pingback to {comment_post_type} "{comment_post_title}"',
|
213 |
'A pingback was added to the database by a logged in user',
|
214 |
'simple-history'
|
215 |
),
|
216 |
|
217 |
'pingback_status_approve' => _x(
|
218 |
+
'Approved a pingback to "{comment_post_title}" by "{comment_author}"" ({comment_author_email})',
|
219 |
'A pingback was approved',
|
220 |
'simple-history'
|
221 |
),
|
222 |
|
223 |
'pingback_status_hold' => _x(
|
224 |
+
'Unapproved a pingback to "{comment_post_title}" by "{comment_author}" ({comment_author_email})',
|
225 |
'A pingback was was unapproved',
|
226 |
'simple-history'
|
227 |
),
|
228 |
|
229 |
'pingback_status_spam' => _x(
|
230 |
+
'Marked a pingback to post "{comment_post_title}" as spam',
|
231 |
'A pingback was marked as spam',
|
232 |
'simple-history'
|
233 |
),
|
234 |
|
235 |
'pingback_status_trash' => _x(
|
236 |
+
'Trashed a pingback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
|
237 |
'A pingback was marked moved to the trash',
|
238 |
'simple-history'
|
239 |
),
|
240 |
|
241 |
'pingback_untrashed' => _x(
|
242 |
+
'Restored a pingback to "{comment_post_title}" by {comment_author} ({comment_author_email}) from the trash',
|
243 |
'A pingback was restored from the trash',
|
244 |
'simple-history'
|
245 |
),
|
246 |
|
247 |
'pingback_deleted' => _x(
|
248 |
+
'Deleted a pingback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
|
249 |
'A pingback was deleted',
|
250 |
'simple-history'
|
251 |
),
|
252 |
|
253 |
'pingback_edited' => _x(
|
254 |
+
'Edited a pingback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
|
255 |
'A pingback was edited',
|
256 |
'simple-history'
|
257 |
),
|
313 |
) // labels
|
314 |
|
315 |
);
|
316 |
+
|
317 |
return $arr_info;
|
318 |
|
319 |
}
|
347 |
*/
|
348 |
add_action( "edit_comment", array( $this, 'on_edit_comment'), 10, 1 );
|
349 |
|
350 |
+
|
351 |
}
|
352 |
|
353 |
/**
|
354 |
* Get comments context
|
355 |
+
*
|
356 |
* @param int $comment_ID
|
357 |
* @return mixed array with context if comment found, false if comment not found
|
358 |
*/
|
384 |
"comment_post_type" => $comment_parent_post->post_type,
|
385 |
);
|
386 |
|
387 |
+
// Note: comment type is empty for normal comments
|
388 |
+
if (empty( $context["comment_type"] ) ) {
|
389 |
+
$context["comment_type"] = "comment";
|
390 |
+
}
|
391 |
+
|
392 |
return $context;
|
393 |
|
394 |
}
|
403 |
$this->infoMessage(
|
404 |
"{$context["comment_type"]}_edited",
|
405 |
$context
|
406 |
+
);
|
407 |
|
408 |
}
|
409 |
|
427 |
$this->infoMessage(
|
428 |
"{$context["comment_type"]}_deleted",
|
429 |
$context
|
430 |
+
);
|
431 |
|
432 |
}
|
433 |
|
441 |
$this->infoMessage(
|
442 |
"{$context["comment_type"]}_untrashed",
|
443 |
$context
|
444 |
+
);
|
445 |
|
446 |
}
|
447 |
|
452 |
* @param string|bool $comment_status The comment status. Possible values include 'hold',
|
453 |
* 'approve', 'spam', 'trash', or false.
|
454 |
* do_action( 'wp_set_comment_status', $comment_id, $comment_status );
|
455 |
+
*/
|
456 |
public function on_wp_set_comment_status($comment_ID, $comment_status) {
|
457 |
|
458 |
$context = $this->get_context_for_comment($comment_ID);
|
487 |
public function on_comment_post($comment_ID, $comment_approved) {
|
488 |
|
489 |
$context = $this->get_context_for_comment($comment_ID);
|
490 |
+
|
491 |
if ( ! $context ) {
|
492 |
return;
|
493 |
}
|
495 |
$comment_data = get_comment( $comment_ID );
|
496 |
|
497 |
$message = "";
|
498 |
+
|
499 |
if ( $comment_data->user_id ) {
|
500 |
+
|
501 |
// comment was from a logged in user
|
502 |
$message = "user_{$context["comment_type"]}_added";
|
503 |
|
504 |
} else {
|
505 |
+
|
506 |
// comment was from a non-logged in user
|
507 |
$message = "anon_{$context["comment_type"]}_added";
|
508 |
$context["_initiator"] = SimpleLoggerLogInitiators::WEB_USER;
|
515 |
|
516 |
}
|
517 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
518 |
$this->infoMessage(
|
519 |
$message,
|
520 |
$context
|
528 |
* and link to comment
|
529 |
*/
|
530 |
public function getLogRowPlainTextOutput($row) {
|
531 |
+
|
532 |
$message = $row->message;
|
533 |
$context = $row->context;
|
534 |
$message_key = $context["_message_key"];
|
535 |
|
536 |
+
// Message is untranslated here, so get translated text
|
537 |
+
// Can't call parent __FUNCTION__ because it will interpolate too, which we don't want
|
538 |
+
if ( ! empty( $message_key ) ) {
|
539 |
+
$message = $this->messages[ $message_key ]["translated_text"];
|
540 |
+
}
|
541 |
+
|
542 |
// Wrap links around {comment_post_title}
|
543 |
$comment_post_ID = isset( $context["comment_post_ID"] ) ? (int) $context["comment_post_ID"] : null;
|
544 |
if ( $comment_post_ID && $comment_post = get_post( $comment_post_ID ) ) {
|
546 |
$edit_post_link = get_edit_post_link( $comment_post_ID );
|
547 |
|
548 |
if ( $edit_post_link ) {
|
549 |
+
|
550 |
$message = str_replace(
|
551 |
'"{comment_post_title}"',
|
552 |
"<a href='{$edit_post_link}'>\"{comment_post_title}\"</a>",
|
554 |
);
|
555 |
|
556 |
}
|
557 |
+
|
558 |
}
|
559 |
|
560 |
+
|
561 |
return $this->interpolate($message, $context);
|
562 |
|
563 |
}
|
571 |
$context = $row->context;
|
572 |
$message_key = $context["_message_key"];
|
573 |
$output = "";
|
574 |
+
#print_r($row);exit;
|
575 |
+
/*
|
576 |
if ( 'spam' !== $commentdata['comment_approved'] ) { // If it's spam save it silently for later crunching
|
577 |
if ( '0' == $commentdata['comment_approved'] ) { // comment not spam, but not auto-approved
|
578 |
wp_notify_moderator( $comment_ID );
|
589 |
$comment_text = wp_trim_words( $comment_text, 20 );
|
590 |
$comment_text = wpautop( $comment_text );
|
591 |
}
|
592 |
+
|
593 |
// Keys to show
|
594 |
$arr_plugin_keys = array();
|
595 |
$comment_type = isset( $context["comment_type"] ) ? $context["comment_type"] : "";
|
624 |
|
625 |
case "comment";
|
626 |
default;
|
627 |
+
|
628 |
$arr_plugin_keys = array(
|
629 |
"comment_status" => _x("Status", "comments logger - detailed output comment status", "simple-history"),
|
630 |
#"comment_type" => _x("Comment type", "comments logger - detailed output comment type", "simple-history"),
|
646 |
$output .= "<table class='SimpleHistoryLogitem__keyValueTable'>";
|
647 |
|
648 |
foreach ( $arr_plugin_keys as $key => $desc ) {
|
649 |
+
|
650 |
switch ( $key ) {
|
651 |
|
652 |
case "comment_content":
|
658 |
case "comment_author":
|
659 |
case "trackback_author":
|
660 |
case "pingback_author":
|
661 |
+
|
662 |
$desc_output = "";
|
663 |
|
664 |
$desc_output .= esc_html( $context[ $key ] );
|
665 |
|
666 |
/*
|
667 |
if ( isset( $context["comment_author_email"] ) ) {
|
668 |
+
|
669 |
$gravatar_email = $context["comment_author_email"];
|
670 |
$avatar = $this->simpleHistory->get_avatar( $gravatar_email, 14, "blank" );
|
671 |
$desc_output .= "<span class='SimpleCommentsLogger__gravatar'>{$avatar}</span>";
|
672 |
+
|
673 |
}
|
674 |
*/
|
675 |
|
738 |
|
739 |
// Add link to edit comment
|
740 |
$comment_ID = isset( $context["comment_ID"] ) && is_numeric( $context["comment_ID"] ) ? (int) $context["comment_ID"] : false;
|
741 |
+
|
742 |
if ( $comment_ID ) {
|
743 |
+
|
744 |
// http://site.local/wp/wp-admin/comment.php?action=editcomment&c=
|
745 |
$edit_comment_link = get_edit_comment_link( $comment_ID );
|
746 |
+
|
747 |
// Edit link sometimes does not contain comment ID
|
748 |
// Probably because comment has been removed or something
|
749 |
// So only continue if link does not end with "=""
|
750 |
if ( $edit_comment_link && $edit_comment_link[strlen($edit_comment_link)-1] !== "=" ) {
|
751 |
+
|
752 |
$output .= sprintf(
|
753 |
'
|
754 |
<tr>
|
loggers/SimpleCoreUpdatesLogger.php
CHANGED
@@ -27,7 +27,7 @@ class SimpleCoreUpdatesLogger extends SimpleLogger
|
|
27 |
"capability" => "update_core",
|
28 |
"messages" => array(
|
29 |
'core_updated' => __('Updated WordPress from {prev_version} to {new_version}', 'simple-history'),
|
30 |
-
'core_auto_updated' => __('WordPress auto-updated
|
31 |
),
|
32 |
"labels" => array(
|
33 |
"search" => array(
|
27 |
"capability" => "update_core",
|
28 |
"messages" => array(
|
29 |
'core_updated' => __('Updated WordPress from {prev_version} to {new_version}', 'simple-history'),
|
30 |
+
'core_auto_updated' => __('WordPress auto-updated to {new_version} from {prev_version}', 'simple-history')
|
31 |
),
|
32 |
"labels" => array(
|
33 |
"search" => array(
|
loggers/SimpleLogger.php
CHANGED
@@ -8,8 +8,7 @@
|
|
8 |
*
|
9 |
* @link https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md PSR-3 specification
|
10 |
*/
|
11 |
-
class SimpleLogger
|
12 |
-
{
|
13 |
|
14 |
/**
|
15 |
* Unique slug for this logger
|
@@ -46,10 +45,10 @@ class SimpleLogger
|
|
46 |
public function __construct($simpleHistory) {
|
47 |
|
48 |
global $wpdb;
|
49 |
-
|
50 |
$this->db_table = $wpdb->prefix . SimpleHistory::DBTABLE;
|
51 |
$this->db_table_contexts = $wpdb->prefix . SimpleHistory::DBTABLE_CONTEXTS;
|
52 |
-
|
53 |
$this->simpleHistory = $simpleHistory;
|
54 |
|
55 |
}
|
@@ -64,13 +63,13 @@ class SimpleLogger
|
|
64 |
|
65 |
/**
|
66 |
* Get array with information about this logger
|
67 |
-
*
|
68 |
* @return array
|
69 |
*/
|
70 |
function getInfo() {
|
71 |
|
72 |
$arr_info = array(
|
73 |
-
|
74 |
// The logger slug. Defaulting to the class name is nice and logical I think
|
75 |
"slug" => __CLASS__,
|
76 |
|
@@ -78,13 +77,13 @@ class SimpleLogger
|
|
78 |
// an admin what your logger is used for
|
79 |
"name" => "SimpleLogger",
|
80 |
"description" => "The built in logger for Simple History",
|
81 |
-
|
82 |
// Capability required to view log entries from this logger
|
83 |
"capability" => "edit_pages",
|
84 |
"messages" => array(
|
85 |
// No pre-defined variants
|
86 |
// when adding messages __() or _x() must be used
|
87 |
-
)
|
88 |
|
89 |
);
|
90 |
|
@@ -106,12 +105,11 @@ class SimpleLogger
|
|
106 |
}
|
107 |
|
108 |
/**
|
109 |
-
|
110 |
-
|
111 |
-
function interpolate($message, $context = array())
|
112 |
-
{
|
113 |
|
114 |
-
if (
|
115 |
return $message;
|
116 |
}
|
117 |
|
@@ -133,80 +131,84 @@ class SimpleLogger
|
|
133 |
* @return string HTML
|
134 |
*/
|
135 |
function getLogRowHeaderOutput($row) {
|
136 |
-
|
137 |
// HTML for initiator
|
138 |
$initiator_html = "";
|
139 |
-
|
140 |
$initiator = $row->initiator;
|
141 |
$context = $row->context;
|
142 |
|
143 |
-
switch (
|
144 |
|
145 |
case "wp":
|
146 |
$initiator_html .= '<strong class="SimpleHistoryLogitem__inlineDivided">WordPress</strong> ';
|
147 |
break;
|
148 |
|
|
|
|
|
|
|
|
|
149 |
// wp_user = wordpress uses, but user may have been deleted since log entry was added
|
150 |
case "wp_user":
|
151 |
|
152 |
-
$user_id = isset(
|
153 |
|
154 |
-
if (
|
155 |
|
156 |
// Sender is user and user still exists
|
157 |
-
$is_current_user = (
|
158 |
|
159 |
// get user role, as done in user-edit.php
|
160 |
-
$user_roles = array_intersect(
|
161 |
-
$user_role
|
162 |
$user_display_name = $user->display_name;
|
163 |
|
164 |
$tmpl_initiator_html = '
|
165 |
<strong class="SimpleHistoryLogitem__inlineDivided">%3$s</strong>
|
166 |
<span class="SimpleHistoryLogitem__inlineDivided SimpleHistoryLogitem__headerEmail">%2$s</span>
|
167 |
-
';
|
168 |
|
169 |
// If user who logged this is the currently logged in user
|
170 |
// we replace name and email with just "You"
|
171 |
if ($is_current_user) {
|
172 |
$tmpl_initiator_html = '
|
173 |
<strong class="SimpleHistoryLogitem__inlineDivided">%5$s</strong>
|
174 |
-
';
|
175 |
}
|
176 |
|
177 |
/**
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
|
186 |
$initiator_html .= sprintf(
|
187 |
$tmpl_initiator_html,
|
188 |
-
esc_html(
|
189 |
-
esc_html(
|
190 |
-
esc_html(
|
191 |
-
$user_role,
|
192 |
-
_x("You", "header output when initiator is the currently logged in user", "simple-history")
|
193 |
);
|
194 |
|
195 |
} else if ($user_id > 0) {
|
196 |
-
|
197 |
// Sender was a user, but user is deleted now
|
198 |
// output all info we have
|
199 |
// _user_id
|
200 |
// _username
|
201 |
// _user_login
|
202 |
// _user_email
|
203 |
-
$initiator_html .= sprintf(
|
204 |
-
'<strong class="SimpleHistoryLogitem__inlineDivided">' .
|
205 |
-
|
206 |
-
|
207 |
-
esc_html(
|
208 |
-
esc_html(
|
209 |
-
esc_html(
|
210 |
);
|
211 |
|
212 |
}
|
@@ -215,19 +217,19 @@ class SimpleLogger
|
|
215 |
|
216 |
case "web_user":
|
217 |
|
218 |
-
if (
|
219 |
|
220 |
-
$initiator_html .= "<strong class='SimpleHistoryLogitem__inlineDivided'>" . __("Anonymous web user") . "</strong> ";
|
221 |
|
222 |
} else {
|
223 |
|
224 |
-
$iplookup_link = sprintf('https://ipinfo.io/%1$s', esc_attr(
|
225 |
|
226 |
$initiator_html .= "<strong class='SimpleHistoryLogitem__inlineDivided SimpleHistoryLogitem__anonUserWithIp'>";
|
227 |
-
$initiator_html .= sprintf(
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
$initiator_html .= "</strong> ";
|
232 |
|
233 |
// $initiator_html .= "<strong>" . __("<br><br>Unknown user from {$context["_server_remote_addr"]}") . "</strong>";
|
@@ -249,67 +251,66 @@ class SimpleLogger
|
|
249 |
break;
|
250 |
|
251 |
default:
|
252 |
-
$initiator_html .= "<strong class='SimpleHistoryLogitem__inlineDivided'>" . esc_html(
|
253 |
|
254 |
}
|
255 |
|
256 |
/**
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
$initiator_html = apply_filters("simple_history/row_header_initiator_output", $initiator_html, $row);
|
265 |
|
266 |
-
|
267 |
// HTML for date
|
268 |
// Date (should...) always exist
|
269 |
// http://developers.whatwg.org/text-level-semantics.html#the-time-element
|
270 |
$date_html = "";
|
271 |
$str_when = "";
|
272 |
$date_datetime = new DateTime($row->date);
|
273 |
-
|
274 |
/**
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
$time_ago_max_time = DAY_IN_SECONDS * 2;
|
283 |
$time_ago_max_time = apply_filters("simple_history/header_time_ago_max_time", $time_ago_max_time);
|
284 |
|
285 |
/**
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
$time_ago_just_now_max_time = 30;
|
294 |
$time_ago_just_now_max_time = apply_filters("simple_history/header_just_now_max_time", $time_ago_just_now_max_time);
|
295 |
|
296 |
-
if (
|
297 |
|
298 |
// show "just now" if event is very recent
|
299 |
$str_when = __("Just now", "simple-history");
|
300 |
|
301 |
-
} else if (
|
302 |
-
|
303 |
/* translators: Date format for log row header, see http://php.net/date */
|
304 |
-
$datef = __(
|
305 |
-
$str_when = date_i18n(
|
306 |
|
307 |
} else {
|
308 |
-
|
309 |
// Show "nn minutes ago" when event is xx seconds ago or earlier
|
310 |
-
$date_human_time_diff = human_time_diff(
|
311 |
/* translators: 1: last modified date and time in human time diff-format */
|
312 |
-
$str_when = sprintf(
|
313 |
|
314 |
}
|
315 |
|
@@ -330,10 +331,10 @@ class SimpleLogger
|
|
330 |
// SimpleHistoryLogitem--loglevel-warning
|
331 |
/*
|
332 |
$level_html = sprintf(
|
333 |
-
|
334 |
-
|
335 |
);
|
336 |
-
|
337 |
|
338 |
// Glue together final result
|
339 |
$template = '%1$s%2$s';
|
@@ -349,13 +350,13 @@ class SimpleLogger
|
|
349 |
);
|
350 |
|
351 |
/**
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
$html = apply_filters("simple_history/row_header_output", $html, $row);
|
360 |
|
361 |
return $html;
|
@@ -379,38 +380,41 @@ class SimpleLogger
|
|
379 |
* Jessie James: Edited post "About the company"
|
380 |
*/
|
381 |
public function getLogRowPlainTextOutput($row) {
|
382 |
-
|
383 |
$message = $row->message;
|
384 |
$message_key = $row->context["_message_key"];
|
385 |
|
386 |
// Message is translated here, but translation must be added in
|
387 |
// plain text before
|
388 |
|
389 |
-
if (
|
390 |
|
391 |
-
//
|
|
|
|
|
|
|
392 |
|
393 |
} else {
|
394 |
|
395 |
-
$message = $this->messages[
|
396 |
-
|
397 |
}
|
398 |
-
|
399 |
-
$html = $this->interpolate( $message, $row->context );
|
400 |
|
401 |
-
|
|
|
|
|
402 |
// If you need unescaped output override this method
|
403 |
// in your own logger
|
404 |
$html = esc_html($html);
|
405 |
|
406 |
/**
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
$html = apply_filters("simple_history/row_plain_text_output", $html, $row);
|
415 |
|
416 |
return $html;
|
@@ -429,40 +433,40 @@ class SimpleLogger
|
|
429 |
|
430 |
$initiator = $row->initiator;
|
431 |
|
432 |
-
switch (
|
433 |
|
434 |
// wp_user = wordpress uses, but user may have been deleted since log entry was added
|
435 |
case "wp_user":
|
436 |
|
437 |
$user_id = isset($row->context["_user_id"]) ? $row->context["_user_id"] : null;
|
438 |
|
439 |
-
if (
|
440 |
|
441 |
// Sender was user
|
442 |
-
$sender_image_html = $this->simpleHistory->get_avatar(
|
443 |
|
444 |
} else if ($user_id > 0) {
|
445 |
-
|
446 |
// Sender was a user, but user is deleted now
|
447 |
-
$sender_image_html = $this->simpleHistory->get_avatar(
|
448 |
|
449 |
} else {
|
450 |
|
451 |
-
$sender_image_html = $this->simpleHistory->get_avatar(
|
452 |
|
453 |
-
}
|
454 |
|
455 |
break;
|
456 |
|
457 |
}
|
458 |
/**
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
$sender_image_html = apply_filters("simple_history/row_sender_image_output", $sender_image_html, $row);
|
467 |
|
468 |
return $sender_image_html;
|
@@ -474,7 +478,7 @@ class SimpleLogger
|
|
474 |
* Example usage is if a user has uploaded an image then a
|
475 |
* thumbnail of that image can bo outputed here
|
476 |
*
|
477 |
-
* @param object $row
|
478 |
* @return string HTML-formatted output
|
479 |
*/
|
480 |
public function getLogRowDetailsOutput($row) {
|
@@ -482,20 +486,19 @@ class SimpleLogger
|
|
482 |
$html = "";
|
483 |
|
484 |
/**
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
$html = apply_filters("simple_history/row_details_output", $html, $row);
|
493 |
|
494 |
return $html;
|
495 |
|
496 |
}
|
497 |
|
498 |
-
|
499 |
/**
|
500 |
* System is unusable.
|
501 |
*
|
@@ -503,13 +506,12 @@ class SimpleLogger
|
|
503 |
* @param array $context
|
504 |
* @return null
|
505 |
*/
|
506 |
-
public static function emergency($message, array $context = array())
|
507 |
-
{
|
508 |
|
509 |
return $this->log(SimpleLoggerLogLevels::EMERGENCY, $message, $context);
|
510 |
|
511 |
}
|
512 |
-
|
513 |
/**
|
514 |
* System is unusable.
|
515 |
*
|
@@ -517,18 +519,50 @@ class SimpleLogger
|
|
517 |
* @param array $context
|
518 |
* @return null
|
519 |
*/
|
520 |
-
public function emergencyMessage($message, array $context = array())
|
521 |
-
|
|
|
|
|
|
|
522 |
|
523 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
524 |
return;
|
525 |
}
|
526 |
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
531 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
532 |
}
|
533 |
|
534 |
|
@@ -539,10 +573,9 @@ class SimpleLogger
|
|
539 |
* @param array $context
|
540 |
* @return null
|
541 |
*/
|
542 |
-
public static function alert($message, array $context = array())
|
543 |
-
{
|
544 |
return $this->log(SimpleLoggerLogLevels::ALERT, $message, $context);
|
545 |
-
|
546 |
}
|
547 |
|
548 |
/**
|
@@ -552,21 +585,12 @@ class SimpleLogger
|
|
552 |
* @param array $context
|
553 |
* @return null
|
554 |
*/
|
555 |
-
public function alertMessage($message, array $context = array())
|
556 |
-
{
|
557 |
|
558 |
-
|
559 |
-
return;
|
560 |
-
}
|
561 |
|
562 |
-
$context["_message_key"] = $message;
|
563 |
-
$message = $this->messages[ $message ]["untranslated_text"];
|
564 |
-
|
565 |
-
$this->log(SimpleLoggerLogLevels::ALERT, $message, $context);
|
566 |
-
|
567 |
}
|
568 |
|
569 |
-
|
570 |
/**
|
571 |
* Critical conditions.
|
572 |
*
|
@@ -576,8 +600,7 @@ class SimpleLogger
|
|
576 |
* @param array $context
|
577 |
* @return null
|
578 |
*/
|
579 |
-
public static function critical($message, array $context = array())
|
580 |
-
{
|
581 |
|
582 |
return $this->log(SimpleLoggerLogLevels::CRITICAL, $message, $context);
|
583 |
|
@@ -590,20 +613,18 @@ class SimpleLogger
|
|
590 |
* @param array $context
|
591 |
* @return null
|
592 |
*/
|
593 |
-
public function criticalMessage($message, array $context = array())
|
594 |
-
{
|
595 |
|
596 |
-
if (
|
597 |
return;
|
598 |
}
|
599 |
|
600 |
$context["_message_key"] = $message;
|
601 |
-
$message = $this->messages[
|
602 |
|
603 |
$this->log(SimpleLoggerLogLevels::CRITICAL, $message, $context);
|
604 |
-
|
605 |
-
}
|
606 |
|
|
|
607 |
|
608 |
/**
|
609 |
* Runtime errors that do not require immediate action but should typically
|
@@ -613,11 +634,10 @@ class SimpleLogger
|
|
613 |
* @param array $context
|
614 |
* @return null
|
615 |
*/
|
616 |
-
public function error($message, array $context = array())
|
617 |
-
{
|
618 |
|
619 |
return $this->log(SimpleLoggerLogLevels::ERROR, $message, $context);
|
620 |
-
|
621 |
}
|
622 |
|
623 |
/**
|
@@ -628,21 +648,12 @@ class SimpleLogger
|
|
628 |
* @param array $context
|
629 |
* @return null
|
630 |
*/
|
631 |
-
public function errorMessage($message, array $context = array())
|
632 |
-
{
|
633 |
-
|
634 |
-
if ( ! isset( $this->messages[ $message ]["untranslated_text"] ) ) {
|
635 |
-
return;
|
636 |
-
}
|
637 |
|
638 |
-
$
|
639 |
-
$message = $this->messages[ $message ]["untranslated_text"];
|
640 |
|
641 |
-
$this->log(SimpleLoggerLogLevels::ERROR, $message, $context);
|
642 |
-
|
643 |
}
|
644 |
|
645 |
-
|
646 |
/**
|
647 |
* Exceptional occurrences that are not errors.
|
648 |
*
|
@@ -653,13 +664,12 @@ class SimpleLogger
|
|
653 |
* @param array $context
|
654 |
* @return null
|
655 |
*/
|
656 |
-
public function warning($message, array $context = array())
|
657 |
-
|
658 |
-
|
659 |
return $this->log(SimpleLoggerLogLevels::WARNING, $message, $context);
|
660 |
|
661 |
}
|
662 |
-
|
663 |
/**
|
664 |
* Exceptional occurrences that are not errors.
|
665 |
*
|
@@ -667,21 +677,12 @@ class SimpleLogger
|
|
667 |
* @param array $context
|
668 |
* @return null
|
669 |
*/
|
670 |
-
public function warningMessage($message, array $context = array())
|
671 |
-
{
|
672 |
-
|
673 |
-
if ( ! isset( $this->messages[ $message ]["untranslated_text"] ) ) {
|
674 |
-
return;
|
675 |
-
}
|
676 |
|
677 |
-
$
|
678 |
-
$message = $this->messages[ $message ]["untranslated_text"];
|
679 |
|
680 |
-
$this->log(SimpleLoggerLogLevels::WARNING, $message, $context);
|
681 |
-
|
682 |
}
|
683 |
|
684 |
-
|
685 |
/**
|
686 |
* Normal but significant events.
|
687 |
*
|
@@ -689,13 +690,12 @@ class SimpleLogger
|
|
689 |
* @param array $context
|
690 |
* @return null
|
691 |
*/
|
692 |
-
public function notice($message, array $context = array())
|
693 |
-
{
|
694 |
|
695 |
return $this->log(SimpleLoggerLogLevels::NOTICE, $message, $context);
|
696 |
|
697 |
}
|
698 |
-
|
699 |
/**
|
700 |
* Normal but significant events.
|
701 |
*
|
@@ -703,21 +703,12 @@ class SimpleLogger
|
|
703 |
* @param array $context
|
704 |
* @return null
|
705 |
*/
|
706 |
-
public function noticeMessage($message, array $context = array())
|
707 |
-
{
|
708 |
-
|
709 |
-
if ( ! isset( $this->messages[ $message ]["untranslated_text"] ) ) {
|
710 |
-
return;
|
711 |
-
}
|
712 |
|
713 |
-
$
|
714 |
-
$message = $this->messages[ $message ]["untranslated_text"];
|
715 |
|
716 |
-
$this->log(SimpleLoggerLogLevels::NOTICE, $message, $context);
|
717 |
-
|
718 |
}
|
719 |
|
720 |
-
|
721 |
/**
|
722 |
* Interesting events.
|
723 |
*
|
@@ -727,11 +718,10 @@ class SimpleLogger
|
|
727 |
* @param array $context
|
728 |
* @return null
|
729 |
*/
|
730 |
-
public function info($message, array $context = array())
|
731 |
-
{
|
732 |
|
733 |
return $this->log(SimpleLoggerLogLevels::INFO, $message, $context);
|
734 |
-
|
735 |
}
|
736 |
|
737 |
/**
|
@@ -743,20 +733,12 @@ class SimpleLogger
|
|
743 |
* @param array $context
|
744 |
* @return null
|
745 |
*/
|
746 |
-
public function infoMessage($message, array $context = array())
|
747 |
-
{
|
748 |
-
|
749 |
-
if ( ! isset( $this->messages[ $message ]["untranslated_text"] ) ) {
|
750 |
-
return;
|
751 |
-
}
|
752 |
|
753 |
-
$
|
754 |
-
$message = $this->messages[ $message ]["untranslated_text"];
|
755 |
|
756 |
-
$this->log(SimpleLoggerLogLevels::INFO, $message, $context);
|
757 |
-
|
758 |
}
|
759 |
-
|
760 |
/**
|
761 |
* Detailed debug information.
|
762 |
*
|
@@ -764,11 +746,10 @@ class SimpleLogger
|
|
764 |
* @param array $context
|
765 |
* @return null
|
766 |
*/
|
767 |
-
public function debug($message, array $context = array())
|
768 |
-
{
|
769 |
|
770 |
return $this->log(SimpleLoggerLogLevels::DEBUG, $message, $context);
|
771 |
-
|
772 |
}
|
773 |
|
774 |
/**
|
@@ -778,20 +759,12 @@ class SimpleLogger
|
|
778 |
* @param array $context
|
779 |
* @return null
|
780 |
*/
|
781 |
-
public function debugMessage($message, array $context = array())
|
782 |
-
{
|
783 |
-
|
784 |
-
if ( ! isset( $this->messages[ $message ]["untranslated_text"] ) ) {
|
785 |
-
return;
|
786 |
-
}
|
787 |
|
788 |
-
$
|
789 |
-
$message = $this->messages[ $message ]["untranslated_text"];
|
790 |
|
791 |
-
$this->log(SimpleLoggerLogLevels::DEBUG, $message, $context);
|
792 |
-
|
793 |
}
|
794 |
-
|
795 |
/**
|
796 |
* Logs with an arbitrary level.
|
797 |
*
|
@@ -800,21 +773,45 @@ class SimpleLogger
|
|
800 |
* @param array $context
|
801 |
* @return null
|
802 |
*/
|
803 |
-
public function log($level, $message, array $context = array())
|
804 |
-
|
805 |
-
|
806 |
global $wpdb;
|
807 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
808 |
/**
|
809 |
-
|
810 |
-
|
811 |
-
|
812 |
-
|
813 |
-
|
814 |
-
|
815 |
-
|
816 |
-
|
817 |
-
|
|
|
|
|
|
|
|
|
818 |
|
819 |
/* Store date at utc or local time?
|
820 |
* Some info here:
|
@@ -822,7 +819,7 @@ class SimpleLogger
|
|
822 |
* UNIX timestamp = no timezone = UTC
|
823 |
* anything is better than now() anyway!
|
824 |
* WP seems to use the local time, so I will go with that too I think
|
825 |
-
* GMT/UTC-time is: date_i18n($timezone_format, false, 'gmt'));
|
826 |
* local time is: date_i18n($timezone_format));
|
827 |
*/
|
828 |
$localtime = current_time("mysql", 1);
|
@@ -830,14 +827,14 @@ class SimpleLogger
|
|
830 |
$db_table = $wpdb->prefix . SimpleHistory::DBTABLE;
|
831 |
|
832 |
/**
|
833 |
-
|
834 |
-
|
835 |
-
|
836 |
-
|
837 |
-
|
838 |
-
|
839 |
$db_table = apply_filters("simple_history/db_table", $db_table);
|
840 |
-
|
841 |
$data = array(
|
842 |
"logger" => $this->slug,
|
843 |
"level" => $level,
|
@@ -847,23 +844,23 @@ class SimpleLogger
|
|
847 |
|
848 |
// Allow date to be override
|
849 |
// Date must be in format 'Y-m-d H:i:s'
|
850 |
-
if (
|
851 |
$data["date"] = $context["_date"];
|
852 |
unset($context["_date"]);
|
853 |
}
|
854 |
|
855 |
// Add occasions id
|
856 |
-
$occasions_id = null;
|
857 |
-
if (
|
858 |
|
859 |
// Minimize risk of similar loggers logging same messages and such and resulting in same occasions id
|
860 |
// by always adding logger slug
|
861 |
$occasions_data = array(
|
862 |
"_occasionsID" => $context["_occasionsID"],
|
863 |
-
"_loggerSlug" => $this->slug
|
864 |
);
|
865 |
-
$occasions_id = md5(
|
866 |
-
unset(
|
867 |
|
868 |
} else {
|
869 |
|
@@ -874,7 +871,7 @@ class SimpleLogger
|
|
874 |
unset($occasions_data["date"]);
|
875 |
|
876 |
//sf_d($occasions_data);exit;
|
877 |
-
$occasions_id = md5(
|
878 |
|
879 |
}
|
880 |
|
@@ -883,12 +880,12 @@ class SimpleLogger
|
|
883 |
// Log event type, defaults to other if not set
|
884 |
/*
|
885 |
if ( isset( $context["_type"] ) ) {
|
886 |
-
|
887 |
-
|
888 |
} else {
|
889 |
-
|
890 |
}
|
891 |
-
|
892 |
|
893 |
// Log initiator, defaults to current user if exists, or other if not user exist
|
894 |
if ( isset( $context["_initiator"] ) ) {
|
@@ -896,21 +893,22 @@ class SimpleLogger
|
|
896 |
// Manually set in context
|
897 |
$data["initiator"] = $context["_initiator"];
|
898 |
unset( $context["_initiator"] );
|
899 |
-
|
900 |
} else {
|
901 |
-
|
902 |
-
// No initiator set.
|
903 |
|
|
|
|
|
|
|
904 |
$data["initiator"] = SimpleLoggerLogInitiators::OTHER;
|
905 |
-
|
906 |
// Check if user is responsible.
|
907 |
if ( function_exists("wp_get_current_user") ) {
|
908 |
|
909 |
$current_user = wp_get_current_user();
|
910 |
|
911 |
-
if ( isset( $current_user->ID ) && $current_user->ID) {
|
912 |
|
913 |
-
$data["initiator"] = SimpleLoggerLogInitiators::WP_USER
|
914 |
$context["_user_id"] = $current_user->ID;
|
915 |
$context["_user_login"] = $current_user->user_login;
|
916 |
$context["_user_email"] = $current_user->user_email;
|
@@ -924,60 +922,79 @@ class SimpleLogger
|
|
924 |
|
925 |
// Seems to be wp cron running and doing this
|
926 |
$data["initiator"] = SimpleLoggerLogInitiators::WORDPRESS;
|
927 |
-
$context["
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
928 |
|
929 |
}
|
930 |
|
931 |
}
|
932 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
933 |
/**
|
934 |
-
|
935 |
-
|
936 |
-
|
937 |
-
|
938 |
-
|
939 |
-
|
940 |
$data = apply_filters("simple_history/log_insert_data", $data);
|
941 |
|
942 |
// Insert data into db
|
943 |
// sf_d($db_table, '$db_table');exit;
|
944 |
-
$result = $wpdb->insert(
|
945 |
|
946 |
// Only save context if able to store row
|
947 |
-
if (
|
948 |
|
949 |
$history_inserted_id = null;
|
950 |
|
951 |
} else {
|
952 |
-
|
953 |
-
$history_inserted_id = $wpdb->insert_id;
|
954 |
|
955 |
$db_table_contexts = $wpdb->prefix . SimpleHistory::DBTABLE_CONTEXTS;
|
956 |
|
957 |
/**
|
958 |
-
|
959 |
-
|
960 |
-
|
961 |
-
|
962 |
-
|
963 |
-
|
964 |
$db_table_contexts = apply_filters("simple_history/logger_db_table_contexts", $db_table_contexts);
|
965 |
|
966 |
-
if (
|
967 |
$context = array();
|
968 |
}
|
969 |
|
970 |
// Append user id to context, if not already added
|
971 |
-
if (
|
972 |
-
|
973 |
// wp_get_current_user is ont available early
|
974 |
// http://codex.wordpress.org/Function_Reference/wp_get_current_user
|
975 |
// https://core.trac.wordpress.org/ticket/14024
|
976 |
-
if (
|
977 |
|
978 |
$current_user = wp_get_current_user();
|
979 |
|
980 |
-
if (
|
981 |
$context["_user_id"] = $current_user->ID;
|
982 |
$context["_user_login"] = $current_user->user_login;
|
983 |
$context["_user_email"] = $current_user->user_email;
|
@@ -986,21 +1003,63 @@ class SimpleLogger
|
|
986 |
}
|
987 |
|
988 |
}
|
989 |
-
|
990 |
-
//
|
991 |
// Good to always have
|
992 |
-
if (
|
|
|
993 |
$context["_server_remote_addr"] = $_SERVER["REMOTE_ADDR"];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
994 |
}
|
995 |
|
996 |
// Append http referer
|
997 |
// Also good to always have!
|
998 |
-
if (
|
999 |
$context["_server_http_referer"] = $_SERVER["HTTP_REFERER"];
|
1000 |
}
|
1001 |
|
1002 |
// Insert all context values into db
|
1003 |
-
foreach (
|
1004 |
|
1005 |
$data = array(
|
1006 |
"history_id" => $history_inserted_id,
|
@@ -1008,59 +1067,74 @@ class SimpleLogger
|
|
1008 |
"value" => $value,
|
1009 |
);
|
1010 |
|
1011 |
-
$result = $wpdb->insert(
|
1012 |
|
1013 |
}
|
1014 |
|
1015 |
}
|
1016 |
-
|
1017 |
$this->lastInsertID = $history_inserted_id;
|
1018 |
|
|
|
|
|
1019 |
// Return $this so we can chain methods
|
1020 |
return $this;
|
1021 |
|
1022 |
} // log
|
1023 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1024 |
/**
|
1025 |
* Override this to add CSS in <head> for your logger.
|
1026 |
-
* The CSS that you output will only be outputed
|
1027 |
* on pages where Simple History is used.
|
1028 |
*/
|
1029 |
function adminCSS() {
|
1030 |
/*
|
1031 |
-
|
1032 |
-
|
1033 |
-
|
1034 |
-
|
1035 |
-
|
1036 |
-
|
1037 |
-
|
1038 |
-
|
1039 |
}
|
1040 |
|
1041 |
/**
|
1042 |
* Override this to add JavaScript in the footer for your logger.
|
1043 |
-
* The JS that you output will only be outputed
|
1044 |
* on pages where Simple History is used.
|
1045 |
*/
|
1046 |
function adminJS() {
|
1047 |
/*
|
1048 |
-
|
1049 |
-
|
1050 |
-
|
1051 |
-
|
1052 |
-
|
1053 |
-
|
1054 |
}
|
1055 |
-
|
1056 |
}
|
1057 |
|
1058 |
/**
|
1059 |
* Describes log initiator, i.e. who caused to log event to happend
|
1060 |
*/
|
1061 |
-
class SimpleLoggerLogInitiators
|
1062 |
-
|
1063 |
-
|
1064 |
// A wordpress user that at the log event created did exist in the wp database
|
1065 |
// May have been deleted when the log is viewed
|
1066 |
const WP_USER = 'wp_user';
|
@@ -1073,11 +1147,13 @@ class SimpleLoggerLogInitiators
|
|
1073 |
// WordPress core or plugins updated automatically via wp-cron
|
1074 |
const WORDPRESS = "wp";
|
1075 |
|
|
|
|
|
|
|
1076 |
// I dunno
|
1077 |
const OTHER = 'other';
|
1078 |
}
|
1079 |
|
1080 |
-
|
1081 |
/**
|
1082 |
* Describes log event type
|
1083 |
* Based on the CRUD-types
|
@@ -1085,8 +1161,7 @@ class SimpleLoggerLogInitiators
|
|
1085 |
* More may be added later on if needed
|
1086 |
* Note: not in use at the moment
|
1087 |
*/
|
1088 |
-
class SimpleLoggerLogTypes
|
1089 |
-
{
|
1090 |
const CREATE = 'create';
|
1091 |
const READ = 'read';
|
1092 |
const UPDATE = 'update';
|
@@ -1097,8 +1172,7 @@ class SimpleLoggerLogTypes
|
|
1097 |
/**
|
1098 |
* Describes log levels
|
1099 |
*/
|
1100 |
-
class SimpleLoggerLogLevels
|
1101 |
-
{
|
1102 |
const EMERGENCY = 'emergency';
|
1103 |
const ALERT = 'alert';
|
1104 |
const CRITICAL = 'critical';
|
@@ -1108,4 +1182,3 @@ class SimpleLoggerLogLevels
|
|
1108 |
const INFO = 'info';
|
1109 |
const DEBUG = 'debug';
|
1110 |
}
|
1111 |
-
|
8 |
*
|
9 |
* @link https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md PSR-3 specification
|
10 |
*/
|
11 |
+
class SimpleLogger {
|
|
|
12 |
|
13 |
/**
|
14 |
* Unique slug for this logger
|
45 |
public function __construct($simpleHistory) {
|
46 |
|
47 |
global $wpdb;
|
48 |
+
|
49 |
$this->db_table = $wpdb->prefix . SimpleHistory::DBTABLE;
|
50 |
$this->db_table_contexts = $wpdb->prefix . SimpleHistory::DBTABLE_CONTEXTS;
|
51 |
+
|
52 |
$this->simpleHistory = $simpleHistory;
|
53 |
|
54 |
}
|
63 |
|
64 |
/**
|
65 |
* Get array with information about this logger
|
66 |
+
*
|
67 |
* @return array
|
68 |
*/
|
69 |
function getInfo() {
|
70 |
|
71 |
$arr_info = array(
|
72 |
+
|
73 |
// The logger slug. Defaulting to the class name is nice and logical I think
|
74 |
"slug" => __CLASS__,
|
75 |
|
77 |
// an admin what your logger is used for
|
78 |
"name" => "SimpleLogger",
|
79 |
"description" => "The built in logger for Simple History",
|
80 |
+
|
81 |
// Capability required to view log entries from this logger
|
82 |
"capability" => "edit_pages",
|
83 |
"messages" => array(
|
84 |
// No pre-defined variants
|
85 |
// when adding messages __() or _x() must be used
|
86 |
+
),
|
87 |
|
88 |
);
|
89 |
|
105 |
}
|
106 |
|
107 |
/**
|
108 |
+
* Interpolates context values into the message placeholders.
|
109 |
+
*/
|
110 |
+
function interpolate($message, $context = array()) {
|
|
|
111 |
|
112 |
+
if (!is_array($context)) {
|
113 |
return $message;
|
114 |
}
|
115 |
|
131 |
* @return string HTML
|
132 |
*/
|
133 |
function getLogRowHeaderOutput($row) {
|
134 |
+
|
135 |
// HTML for initiator
|
136 |
$initiator_html = "";
|
137 |
+
|
138 |
$initiator = $row->initiator;
|
139 |
$context = $row->context;
|
140 |
|
141 |
+
switch ($initiator) {
|
142 |
|
143 |
case "wp":
|
144 |
$initiator_html .= '<strong class="SimpleHistoryLogitem__inlineDivided">WordPress</strong> ';
|
145 |
break;
|
146 |
|
147 |
+
case "wp_cli":
|
148 |
+
$initiator_html .= '<strong class="SimpleHistoryLogitem__inlineDivided">WP-CLI</strong> ';
|
149 |
+
break;
|
150 |
+
|
151 |
// wp_user = wordpress uses, but user may have been deleted since log entry was added
|
152 |
case "wp_user":
|
153 |
|
154 |
+
$user_id = isset($row->context["_user_id"]) ? $row->context["_user_id"] : null;
|
155 |
|
156 |
+
if ($user_id > 0 && $user = get_user_by("id", $user_id)) {
|
157 |
|
158 |
// Sender is user and user still exists
|
159 |
+
$is_current_user = ($user_id == get_current_user_id()) ? true : false;
|
160 |
|
161 |
// get user role, as done in user-edit.php
|
162 |
+
$user_roles = array_intersect(array_values($user->roles), array_keys(get_editable_roles()));
|
163 |
+
$user_role = array_shift($user_roles);
|
164 |
$user_display_name = $user->display_name;
|
165 |
|
166 |
$tmpl_initiator_html = '
|
167 |
<strong class="SimpleHistoryLogitem__inlineDivided">%3$s</strong>
|
168 |
<span class="SimpleHistoryLogitem__inlineDivided SimpleHistoryLogitem__headerEmail">%2$s</span>
|
169 |
+
' ;
|
170 |
|
171 |
// If user who logged this is the currently logged in user
|
172 |
// we replace name and email with just "You"
|
173 |
if ($is_current_user) {
|
174 |
$tmpl_initiator_html = '
|
175 |
<strong class="SimpleHistoryLogitem__inlineDivided">%5$s</strong>
|
176 |
+
' ;
|
177 |
}
|
178 |
|
179 |
/**
|
180 |
+
* Filter the format for the user output
|
181 |
+
*
|
182 |
+
* @since 2.0
|
183 |
+
*
|
184 |
+
* @param string $format.
|
185 |
+
*/
|
186 |
+
$tmpl_initiator_html = apply_filters("simple_history/header_initiator_html_existing_user", $tmpl_initiator_html);
|
187 |
|
188 |
$initiator_html .= sprintf(
|
189 |
$tmpl_initiator_html,
|
190 |
+
esc_html($user->user_login), // 1
|
191 |
+
esc_html($user->user_email), // 2
|
192 |
+
esc_html($user_display_name), // 3
|
193 |
+
$user_role, // 4
|
194 |
+
_x("You", "header output when initiator is the currently logged in user", "simple-history") // 5
|
195 |
);
|
196 |
|
197 |
} else if ($user_id > 0) {
|
198 |
+
|
199 |
// Sender was a user, but user is deleted now
|
200 |
// output all info we have
|
201 |
// _user_id
|
202 |
// _username
|
203 |
// _user_login
|
204 |
// _user_email
|
205 |
+
$initiator_html .= sprintf(
|
206 |
+
'<strong class="SimpleHistoryLogitem__inlineDivided">' .
|
207 |
+
__('Deleted user (had id %1$s, email %2$s, login %3$s)', "simple-history") .
|
208 |
+
'</strong>',
|
209 |
+
esc_html($context["_user_id"]),
|
210 |
+
esc_html($context["_user_email"]),
|
211 |
+
esc_html($context["_user_login"])
|
212 |
);
|
213 |
|
214 |
}
|
217 |
|
218 |
case "web_user":
|
219 |
|
220 |
+
if (empty($context["_server_remote_addr"])) {
|
221 |
|
222 |
+
$initiator_html .= "<strong class='SimpleHistoryLogitem__inlineDivided'>" . __("Anonymous web user", "simple-history") . "</strong> ";
|
223 |
|
224 |
} else {
|
225 |
|
226 |
+
$iplookup_link = sprintf('https://ipinfo.io/%1$s', esc_attr($context["_server_remote_addr"]));
|
227 |
|
228 |
$initiator_html .= "<strong class='SimpleHistoryLogitem__inlineDivided SimpleHistoryLogitem__anonUserWithIp'>";
|
229 |
+
$initiator_html .= sprintf(
|
230 |
+
__('Anonymous user from %1$s', "simple-history"),
|
231 |
+
"<a target='_blank' href={$iplookup_link} class='SimpleHistoryLogitem__anonUserWithIp__theIp'>" . esc_attr($context["_server_remote_addr"]) . "</a>"
|
232 |
+
);
|
233 |
$initiator_html .= "</strong> ";
|
234 |
|
235 |
// $initiator_html .= "<strong>" . __("<br><br>Unknown user from {$context["_server_remote_addr"]}") . "</strong>";
|
251 |
break;
|
252 |
|
253 |
default:
|
254 |
+
$initiator_html .= "<strong class='SimpleHistoryLogitem__inlineDivided'>" . esc_html($initiator) . "</strong>";
|
255 |
|
256 |
}
|
257 |
|
258 |
/**
|
259 |
+
* Filter generated html for the initiator row header html
|
260 |
+
*
|
261 |
+
* @since 2.0
|
262 |
+
*
|
263 |
+
* @param string $initiator_html
|
264 |
+
* @param object $row Log row
|
265 |
+
*/
|
266 |
$initiator_html = apply_filters("simple_history/row_header_initiator_output", $initiator_html, $row);
|
267 |
|
|
|
268 |
// HTML for date
|
269 |
// Date (should...) always exist
|
270 |
// http://developers.whatwg.org/text-level-semantics.html#the-time-element
|
271 |
$date_html = "";
|
272 |
$str_when = "";
|
273 |
$date_datetime = new DateTime($row->date);
|
274 |
+
|
275 |
/**
|
276 |
+
* Filter how many seconds as most that can pass since an
|
277 |
+
* event occured to show "nn minutes ago" (human diff time-format) instead of exact date
|
278 |
+
*
|
279 |
+
* @since 2.0
|
280 |
+
*
|
281 |
+
* @param int $time_ago_max_time Seconds
|
282 |
+
*/
|
283 |
$time_ago_max_time = DAY_IN_SECONDS * 2;
|
284 |
$time_ago_max_time = apply_filters("simple_history/header_time_ago_max_time", $time_ago_max_time);
|
285 |
|
286 |
/**
|
287 |
+
* Filter how many seconds as most that can pass since an
|
288 |
+
* event occured to show "just now" instead of exact date
|
289 |
+
*
|
290 |
+
* @since 2.0
|
291 |
+
*
|
292 |
+
* @param int $time_ago_max_time Seconds
|
293 |
+
*/
|
294 |
$time_ago_just_now_max_time = 30;
|
295 |
$time_ago_just_now_max_time = apply_filters("simple_history/header_just_now_max_time", $time_ago_just_now_max_time);
|
296 |
|
297 |
+
if (time() - $date_datetime->getTimestamp() <= $time_ago_just_now_max_time) {
|
298 |
|
299 |
// show "just now" if event is very recent
|
300 |
$str_when = __("Just now", "simple-history");
|
301 |
|
302 |
+
} else if (time() - $date_datetime->getTimestamp() > $time_ago_max_time) {
|
303 |
+
|
304 |
/* translators: Date format for log row header, see http://php.net/date */
|
305 |
+
$datef = __('M j, Y \a\t G:i', "simple-history");
|
306 |
+
$str_when = date_i18n($datef, $date_datetime->getTimestamp());
|
307 |
|
308 |
} else {
|
309 |
+
|
310 |
// Show "nn minutes ago" when event is xx seconds ago or earlier
|
311 |
+
$date_human_time_diff = human_time_diff($date_datetime->getTimestamp(), time());
|
312 |
/* translators: 1: last modified date and time in human time diff-format */
|
313 |
+
$str_when = sprintf(__('%1$s ago', 'simple-history'), $date_human_time_diff);
|
314 |
|
315 |
}
|
316 |
|
331 |
// SimpleHistoryLogitem--loglevel-warning
|
332 |
/*
|
333 |
$level_html = sprintf(
|
334 |
+
'<span class="SimpleHistoryLogitem--logleveltag SimpleHistoryLogitem--logleveltag-%1$s">%1$s</span>',
|
335 |
+
$row->level
|
336 |
);
|
337 |
+
*/
|
338 |
|
339 |
// Glue together final result
|
340 |
$template = '%1$s%2$s';
|
350 |
);
|
351 |
|
352 |
/**
|
353 |
+
* Filter generated html for the log row header
|
354 |
+
*
|
355 |
+
* @since 2.0
|
356 |
+
*
|
357 |
+
* @param string $html
|
358 |
+
* @param object $row Log row
|
359 |
+
*/
|
360 |
$html = apply_filters("simple_history/row_header_output", $html, $row);
|
361 |
|
362 |
return $html;
|
380 |
* Jessie James: Edited post "About the company"
|
381 |
*/
|
382 |
public function getLogRowPlainTextOutput($row) {
|
383 |
+
|
384 |
$message = $row->message;
|
385 |
$message_key = $row->context["_message_key"];
|
386 |
|
387 |
// Message is translated here, but translation must be added in
|
388 |
// plain text before
|
389 |
|
390 |
+
if (empty( $message_key )) {
|
391 |
|
392 |
+
// Message key did not exist, so check if we should translate using textdomain
|
393 |
+
if ( ! empty( $row->context["_gettext_domain"] ) ) {
|
394 |
+
$message = __( $message, $row->context["_gettext_domain"] );
|
395 |
+
}
|
396 |
|
397 |
} else {
|
398 |
|
399 |
+
$message = $this->messages[$message_key]["translated_text"];
|
400 |
+
|
401 |
}
|
|
|
|
|
402 |
|
403 |
+
$html = $this->interpolate($message, $row->context);
|
404 |
+
|
405 |
+
// All messages are escaped by default.
|
406 |
// If you need unescaped output override this method
|
407 |
// in your own logger
|
408 |
$html = esc_html($html);
|
409 |
|
410 |
/**
|
411 |
+
* Filter generated output for plain text output
|
412 |
+
*
|
413 |
+
* @since 2.0
|
414 |
+
*
|
415 |
+
* @param string $html
|
416 |
+
* @param object $row Log row
|
417 |
+
*/
|
418 |
$html = apply_filters("simple_history/row_plain_text_output", $html, $row);
|
419 |
|
420 |
return $html;
|
433 |
|
434 |
$initiator = $row->initiator;
|
435 |
|
436 |
+
switch ($initiator) {
|
437 |
|
438 |
// wp_user = wordpress uses, but user may have been deleted since log entry was added
|
439 |
case "wp_user":
|
440 |
|
441 |
$user_id = isset($row->context["_user_id"]) ? $row->context["_user_id"] : null;
|
442 |
|
443 |
+
if ($user_id > 0 && $user = get_user_by("id", $user_id)) {
|
444 |
|
445 |
// Sender was user
|
446 |
+
$sender_image_html = $this->simpleHistory->get_avatar($user->user_email, $sender_image_size);
|
447 |
|
448 |
} else if ($user_id > 0) {
|
449 |
+
|
450 |
// Sender was a user, but user is deleted now
|
451 |
+
$sender_image_html = $this->simpleHistory->get_avatar("", $sender_image_size);
|
452 |
|
453 |
} else {
|
454 |
|
455 |
+
$sender_image_html = $this->simpleHistory->get_avatar("", $sender_image_size);
|
456 |
|
457 |
+
}
|
458 |
|
459 |
break;
|
460 |
|
461 |
}
|
462 |
/**
|
463 |
+
* Filter generated output for row image (sender image)
|
464 |
+
*
|
465 |
+
* @since 2.0
|
466 |
+
*
|
467 |
+
* @param string $sender_image_html
|
468 |
+
* @param object $row Log row
|
469 |
+
*/
|
470 |
$sender_image_html = apply_filters("simple_history/row_sender_image_output", $sender_image_html, $row);
|
471 |
|
472 |
return $sender_image_html;
|
478 |
* Example usage is if a user has uploaded an image then a
|
479 |
* thumbnail of that image can bo outputed here
|
480 |
*
|
481 |
+
* @param object $row
|
482 |
* @return string HTML-formatted output
|
483 |
*/
|
484 |
public function getLogRowDetailsOutput($row) {
|
486 |
$html = "";
|
487 |
|
488 |
/**
|
489 |
+
* Filter generated output for details
|
490 |
+
*
|
491 |
+
* @since 2.0
|
492 |
+
*
|
493 |
+
* @param string $html
|
494 |
+
* @param object $row Log row
|
495 |
+
*/
|
496 |
$html = apply_filters("simple_history/row_details_output", $html, $row);
|
497 |
|
498 |
return $html;
|
499 |
|
500 |
}
|
501 |
|
|
|
502 |
/**
|
503 |
* System is unusable.
|
504 |
*
|
506 |
* @param array $context
|
507 |
* @return null
|
508 |
*/
|
509 |
+
public static function emergency($message, array $context = array()) {
|
|
|
510 |
|
511 |
return $this->log(SimpleLoggerLogLevels::EMERGENCY, $message, $context);
|
512 |
|
513 |
}
|
514 |
+
|
515 |
/**
|
516 |
* System is unusable.
|
517 |
*
|
519 |
* @param array $context
|
520 |
* @return null
|
521 |
*/
|
522 |
+
public function emergencyMessage($message, array $context = array()) {
|
523 |
+
|
524 |
+
return $this->logByMessageKey(SimpleLoggerLogLevels::EMERGENCY, $message, $context);
|
525 |
+
|
526 |
+
}
|
527 |
|
528 |
+
/**
|
529 |
+
* Log with message
|
530 |
+
* Called from infoMessage(), errorMessage(), and so on
|
531 |
+
*
|
532 |
+
* Call like this:
|
533 |
+
*
|
534 |
+
* return $this->logByMessageKey(SimpleLoggerLogLevels::EMERGENCY, $message, $context);
|
535 |
+
*/
|
536 |
+
private function logByMessageKey($SimpleLoggerLogLevelsLevel, $messageKey, $context) {
|
537 |
+
|
538 |
+
// When logging by message then the key must exist
|
539 |
+
if ( ! isset( $this->messages[ $messageKey ]["untranslated_text"] ) ) {
|
540 |
return;
|
541 |
}
|
542 |
|
543 |
+
/**
|
544 |
+
* Filter so plugins etc. can shortut logging
|
545 |
+
*
|
546 |
+
* @since 2.0.20
|
547 |
+
*
|
548 |
+
* @param true yes, we default to do the logging
|
549 |
+
* @param string logger slug
|
550 |
+
* @param string messageKey
|
551 |
+
* @param string log level
|
552 |
+
* @param array context
|
553 |
+
* @return bool false to abort logging
|
554 |
+
*/
|
555 |
+
$doLog = apply_filters("simple_history/simple_logger/log_message_key", true, $this->slug, $messageKey, $SimpleLoggerLogLevelsLevel, $context);
|
556 |
|
557 |
+
if ( ! $doLog ) {
|
558 |
+
return;
|
559 |
+
}
|
560 |
+
|
561 |
+
$context["_message_key"] = $messageKey;
|
562 |
+
$message = $this->messages[ $messageKey ]["untranslated_text"];
|
563 |
+
|
564 |
+
$this->log( $SimpleLoggerLogLevelsLevel, $message, $context );
|
565 |
+
|
566 |
}
|
567 |
|
568 |
|
573 |
* @param array $context
|
574 |
* @return null
|
575 |
*/
|
576 |
+
public static function alert($message, array $context = array()) {
|
|
|
577 |
return $this->log(SimpleLoggerLogLevels::ALERT, $message, $context);
|
578 |
+
|
579 |
}
|
580 |
|
581 |
/**
|
585 |
* @param array $context
|
586 |
* @return null
|
587 |
*/
|
588 |
+
public function alertMessage($message, array $context = array()) {
|
|
|
589 |
|
590 |
+
return $this->logByMessageKey(SimpleLoggerLogLevels::ALERT, $message, $context);
|
|
|
|
|
591 |
|
|
|
|
|
|
|
|
|
|
|
592 |
}
|
593 |
|
|
|
594 |
/**
|
595 |
* Critical conditions.
|
596 |
*
|
600 |
* @param array $context
|
601 |
* @return null
|
602 |
*/
|
603 |
+
public static function critical($message, array $context = array()) {
|
|
|
604 |
|
605 |
return $this->log(SimpleLoggerLogLevels::CRITICAL, $message, $context);
|
606 |
|
613 |
* @param array $context
|
614 |
* @return null
|
615 |
*/
|
616 |
+
public function criticalMessage($message, array $context = array()) {
|
|
|
617 |
|
618 |
+
if (!isset($this->messages[$message]["untranslated_text"])) {
|
619 |
return;
|
620 |
}
|
621 |
|
622 |
$context["_message_key"] = $message;
|
623 |
+
$message = $this->messages[$message]["untranslated_text"];
|
624 |
|
625 |
$this->log(SimpleLoggerLogLevels::CRITICAL, $message, $context);
|
|
|
|
|
626 |
|
627 |
+
}
|
628 |
|
629 |
/**
|
630 |
* Runtime errors that do not require immediate action but should typically
|
634 |
* @param array $context
|
635 |
* @return null
|
636 |
*/
|
637 |
+
public function error($message, array $context = array()) {
|
|
|
638 |
|
639 |
return $this->log(SimpleLoggerLogLevels::ERROR, $message, $context);
|
640 |
+
|
641 |
}
|
642 |
|
643 |
/**
|
648 |
* @param array $context
|
649 |
* @return null
|
650 |
*/
|
651 |
+
public function errorMessage($message, array $context = array()) {
|
|
|
|
|
|
|
|
|
|
|
652 |
|
653 |
+
return $this->logByMessageKey(SimpleLoggerLogLevels::ERROR, $message, $context);
|
|
|
654 |
|
|
|
|
|
655 |
}
|
656 |
|
|
|
657 |
/**
|
658 |
* Exceptional occurrences that are not errors.
|
659 |
*
|
664 |
* @param array $context
|
665 |
* @return null
|
666 |
*/
|
667 |
+
public function warning($message, array $context = array()) {
|
668 |
+
|
|
|
669 |
return $this->log(SimpleLoggerLogLevels::WARNING, $message, $context);
|
670 |
|
671 |
}
|
672 |
+
|
673 |
/**
|
674 |
* Exceptional occurrences that are not errors.
|
675 |
*
|
677 |
* @param array $context
|
678 |
* @return null
|
679 |
*/
|
680 |
+
public function warningMessage($message, array $context = array()) {
|
|
|
|
|
|
|
|
|
|
|
681 |
|
682 |
+
return $this->logByMessageKey(SimpleLoggerLogLevels::WARNING, $message, $context);
|
|
|
683 |
|
|
|
|
|
684 |
}
|
685 |
|
|
|
686 |
/**
|
687 |
* Normal but significant events.
|
688 |
*
|
690 |
* @param array $context
|
691 |
* @return null
|
692 |
*/
|
693 |
+
public function notice($message, array $context = array()) {
|
|
|
694 |
|
695 |
return $this->log(SimpleLoggerLogLevels::NOTICE, $message, $context);
|
696 |
|
697 |
}
|
698 |
+
|
699 |
/**
|
700 |
* Normal but significant events.
|
701 |
*
|
703 |
* @param array $context
|
704 |
* @return null
|
705 |
*/
|
706 |
+
public function noticeMessage($message, array $context = array()) {
|
|
|
|
|
|
|
|
|
|
|
707 |
|
708 |
+
return $this->logByMessageKey(SimpleLoggerLogLevels::NOTICE, $message, $context);
|
|
|
709 |
|
|
|
|
|
710 |
}
|
711 |
|
|
|
712 |
/**
|
713 |
* Interesting events.
|
714 |
*
|
718 |
* @param array $context
|
719 |
* @return null
|
720 |
*/
|
721 |
+
public function info($message, array $context = array()) {
|
|
|
722 |
|
723 |
return $this->log(SimpleLoggerLogLevels::INFO, $message, $context);
|
724 |
+
|
725 |
}
|
726 |
|
727 |
/**
|
733 |
* @param array $context
|
734 |
* @return null
|
735 |
*/
|
736 |
+
public function infoMessage($message, array $context = array()) {
|
|
|
|
|
|
|
|
|
|
|
737 |
|
738 |
+
return $this->logByMessageKey(SimpleLoggerLogLevels::INFO, $message, $context);
|
|
|
739 |
|
|
|
|
|
740 |
}
|
741 |
+
|
742 |
/**
|
743 |
* Detailed debug information.
|
744 |
*
|
746 |
* @param array $context
|
747 |
* @return null
|
748 |
*/
|
749 |
+
public function debug($message, array $context = array()) {
|
|
|
750 |
|
751 |
return $this->log(SimpleLoggerLogLevels::DEBUG, $message, $context);
|
752 |
+
|
753 |
}
|
754 |
|
755 |
/**
|
759 |
* @param array $context
|
760 |
* @return null
|
761 |
*/
|
762 |
+
public function debugMessage($message, array $context = array()) {
|
|
|
|
|
|
|
|
|
|
|
763 |
|
764 |
+
return $this->logByMessageKey(SimpleLoggerLogLevels::DEBUG, $message, $context);
|
|
|
765 |
|
|
|
|
|
766 |
}
|
767 |
+
|
768 |
/**
|
769 |
* Logs with an arbitrary level.
|
770 |
*
|
773 |
* @param array $context
|
774 |
* @return null
|
775 |
*/
|
776 |
+
public function log($level, $message, array $context = array()) {
|
777 |
+
|
|
|
778 |
global $wpdb;
|
779 |
|
780 |
+
// Check if $message is a translated message, and if so then fetch original
|
781 |
+
$sh_latest_translations = $this->simpleHistory->gettextLatestTranslations;
|
782 |
+
|
783 |
+
if ( ! empty( $sh_latest_translations ) ) {
|
784 |
+
|
785 |
+
if ( isset( $sh_latest_translations[ $message ] ) ) {
|
786 |
+
|
787 |
+
// Translation of this phrase was found, so use original phrase instead of translated one
|
788 |
+
|
789 |
+
// Store textdomain since it's required to translate
|
790 |
+
$context["_gettext_domain"] = $sh_latest_translations[$message]["domain"];
|
791 |
+
|
792 |
+
// These are good to keep when debugging
|
793 |
+
// $context["_gettext_org_message"] = $sh_latest_translations[$message]["text"];
|
794 |
+
// $context["_gettext_translated_message"] = $sh_latest_translations[$message]["translation"];
|
795 |
+
|
796 |
+
$message = $sh_latest_translations[ $message ]["text"];
|
797 |
+
}
|
798 |
+
|
799 |
+
}
|
800 |
+
|
801 |
/**
|
802 |
+
* Filter arguments passed to log funtion
|
803 |
+
*
|
804 |
+
* @since 2.0
|
805 |
+
*
|
806 |
+
* @param string $level
|
807 |
+
* @param string $message
|
808 |
+
* @param array $context
|
809 |
+
* @param object SimpleLogger object
|
810 |
+
*/
|
811 |
+
apply_filters("simple_history/log_arguments", $level, $message, $context, $this);
|
812 |
+
$context = apply_filters("simple_history/log_argument/context", $context, $level, $message, $this);
|
813 |
+
$level = apply_filters("simple_history/log_argument/level", $level, $context, $message, $this);
|
814 |
+
$message = apply_filters("simple_history/log_argument/message", $message, $level, $context, $this);
|
815 |
|
816 |
/* Store date at utc or local time?
|
817 |
* Some info here:
|
819 |
* UNIX timestamp = no timezone = UTC
|
820 |
* anything is better than now() anyway!
|
821 |
* WP seems to use the local time, so I will go with that too I think
|
822 |
+
* GMT/UTC-time is: date_i18n($timezone_format, false, 'gmt'));
|
823 |
* local time is: date_i18n($timezone_format));
|
824 |
*/
|
825 |
$localtime = current_time("mysql", 1);
|
827 |
$db_table = $wpdb->prefix . SimpleHistory::DBTABLE;
|
828 |
|
829 |
/**
|
830 |
+
* Filter db table used for simple history events
|
831 |
+
*
|
832 |
+
* @since 2.0
|
833 |
+
*
|
834 |
+
* @param string $db_table
|
835 |
+
*/
|
836 |
$db_table = apply_filters("simple_history/db_table", $db_table);
|
837 |
+
|
838 |
$data = array(
|
839 |
"logger" => $this->slug,
|
840 |
"level" => $level,
|
844 |
|
845 |
// Allow date to be override
|
846 |
// Date must be in format 'Y-m-d H:i:s'
|
847 |
+
if (isset($context["_date"])) {
|
848 |
$data["date"] = $context["_date"];
|
849 |
unset($context["_date"]);
|
850 |
}
|
851 |
|
852 |
// Add occasions id
|
853 |
+
$occasions_id = null;
|
854 |
+
if (isset($context["_occasionsID"])) {
|
855 |
|
856 |
// Minimize risk of similar loggers logging same messages and such and resulting in same occasions id
|
857 |
// by always adding logger slug
|
858 |
$occasions_data = array(
|
859 |
"_occasionsID" => $context["_occasionsID"],
|
860 |
+
"_loggerSlug" => $this->slug,
|
861 |
);
|
862 |
+
$occasions_id = md5(json_encode($occasions_data));
|
863 |
+
unset($context["_occasionsID"]);
|
864 |
|
865 |
} else {
|
866 |
|
871 |
unset($occasions_data["date"]);
|
872 |
|
873 |
//sf_d($occasions_data);exit;
|
874 |
+
$occasions_id = md5(json_encode($occasions_data));
|
875 |
|
876 |
}
|
877 |
|
880 |
// Log event type, defaults to other if not set
|
881 |
/*
|
882 |
if ( isset( $context["_type"] ) ) {
|
883 |
+
$data["type"] = $context["_type"];
|
884 |
+
unset( $context["_type"] );
|
885 |
} else {
|
886 |
+
$data["type"] = SimpleLoggerLogTypes::OTHER;
|
887 |
}
|
888 |
+
*/
|
889 |
|
890 |
// Log initiator, defaults to current user if exists, or other if not user exist
|
891 |
if ( isset( $context["_initiator"] ) ) {
|
893 |
// Manually set in context
|
894 |
$data["initiator"] = $context["_initiator"];
|
895 |
unset( $context["_initiator"] );
|
896 |
+
|
897 |
} else {
|
|
|
|
|
898 |
|
899 |
+
// No initiator set, try to determine
|
900 |
+
|
901 |
+
// Default to other
|
902 |
$data["initiator"] = SimpleLoggerLogInitiators::OTHER;
|
903 |
+
|
904 |
// Check if user is responsible.
|
905 |
if ( function_exists("wp_get_current_user") ) {
|
906 |
|
907 |
$current_user = wp_get_current_user();
|
908 |
|
909 |
+
if ( isset( $current_user->ID ) && $current_user->ID ) {
|
910 |
|
911 |
+
$data["initiator"] = SimpleLoggerLogInitiators::WP_USER;
|
912 |
$context["_user_id"] = $current_user->ID;
|
913 |
$context["_user_login"] = $current_user->user_login;
|
914 |
$context["_user_email"] = $current_user->user_email;
|
922 |
|
923 |
// Seems to be wp cron running and doing this
|
924 |
$data["initiator"] = SimpleLoggerLogInitiators::WORDPRESS;
|
925 |
+
$context["_wp_cron_running"] = true;
|
926 |
+
|
927 |
+
}
|
928 |
+
|
929 |
+
// If running as CLI and WP_CLI_PHP_USED is set then it is WP CLI that is doing it
|
930 |
+
// How to log this? Is this a user, is it WordPress, or what?
|
931 |
+
// I'm thinking:
|
932 |
+
// - it is a user that is manually doing this, on purpose, with intent, so not auto wordpress
|
933 |
+
// - it is a specific user, but we don't know who
|
934 |
+
// - sounds like a special case, set initiator to wp_cli
|
935 |
+
if ( isset( $_SERVER["WP_CLI_PHP_USED"] ) && "cli" == php_sapi_name() ) {
|
936 |
+
|
937 |
+
$data["initiator"] = SimpleLoggerLogInitiators::WP_CLI;
|
938 |
|
939 |
}
|
940 |
|
941 |
}
|
942 |
|
943 |
+
// Detect XML-RPC calls and append to context, if not already there
|
944 |
+
if ( defined("XMLRPC_REQUEST") && XMLRPC_REQUEST && ! isset( $context["_xmlrpc_request"] ) ) {
|
945 |
+
|
946 |
+
$context["_xmlrpc_request"] = true;
|
947 |
+
|
948 |
+
}
|
949 |
+
|
950 |
/**
|
951 |
+
* Filter data to be saved to db
|
952 |
+
*
|
953 |
+
* @since 2.0
|
954 |
+
*
|
955 |
+
* @param array $data
|
956 |
+
*/
|
957 |
$data = apply_filters("simple_history/log_insert_data", $data);
|
958 |
|
959 |
// Insert data into db
|
960 |
// sf_d($db_table, '$db_table');exit;
|
961 |
+
$result = $wpdb->insert($db_table, $data);
|
962 |
|
963 |
// Only save context if able to store row
|
964 |
+
if (false === $result) {
|
965 |
|
966 |
$history_inserted_id = null;
|
967 |
|
968 |
} else {
|
969 |
+
|
970 |
+
$history_inserted_id = $wpdb->insert_id;
|
971 |
|
972 |
$db_table_contexts = $wpdb->prefix . SimpleHistory::DBTABLE_CONTEXTS;
|
973 |
|
974 |
/**
|
975 |
+
* Filter table name for contexts
|
976 |
+
*
|
977 |
+
* @since 2.0
|
978 |
+
*
|
979 |
+
* @param string $db_table_contexts
|
980 |
+
*/
|
981 |
$db_table_contexts = apply_filters("simple_history/logger_db_table_contexts", $db_table_contexts);
|
982 |
|
983 |
+
if (!is_array($context)) {
|
984 |
$context = array();
|
985 |
}
|
986 |
|
987 |
// Append user id to context, if not already added
|
988 |
+
if (!isset($context["_user_id"])) {
|
989 |
+
|
990 |
// wp_get_current_user is ont available early
|
991 |
// http://codex.wordpress.org/Function_Reference/wp_get_current_user
|
992 |
// https://core.trac.wordpress.org/ticket/14024
|
993 |
+
if (function_exists("wp_get_current_user")) {
|
994 |
|
995 |
$current_user = wp_get_current_user();
|
996 |
|
997 |
+
if (isset($current_user->ID) && $current_user->ID) {
|
998 |
$context["_user_id"] = $current_user->ID;
|
999 |
$context["_user_login"] = $current_user->user_login;
|
1000 |
$context["_user_email"] = $current_user->user_email;
|
1003 |
}
|
1004 |
|
1005 |
}
|
1006 |
+
|
1007 |
+
// Add remote addr to context
|
1008 |
// Good to always have
|
1009 |
+
if (!isset($context["_server_remote_addr"])) {
|
1010 |
+
|
1011 |
$context["_server_remote_addr"] = $_SERVER["REMOTE_ADDR"];
|
1012 |
+
|
1013 |
+
// If web server is behind a load balancer then the ip address will always be the same
|
1014 |
+
// See bug report: https://wordpress.org/support/topic/use-x-forwarded-for-http-header-when-logging-remote_addr?replies=1#post-6422981
|
1015 |
+
// Note that the x-forwarded-for header can contain multiple ips
|
1016 |
+
// Also note that the header can be faked
|
1017 |
+
// Ref: http://stackoverflow.com/questions/753645/how-do-i-get-the-correct-ip-from-http-x-forwarded-for-if-it-contains-multiple-ip
|
1018 |
+
// Ref: http://blackbe.lt/advanced-method-to-obtain-the-client-ip-in-php/
|
1019 |
+
|
1020 |
+
// Check for IP in lots of headers
|
1021 |
+
// Based on code found here:
|
1022 |
+
// http://blackbe.lt/advanced-method-to-obtain-the-client-ip-in-php/
|
1023 |
+
$ip_keys = array('HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED');
|
1024 |
+
|
1025 |
+
foreach ($ip_keys as $key) {
|
1026 |
+
|
1027 |
+
if (array_key_exists($key, $_SERVER) === true) {
|
1028 |
+
|
1029 |
+
// Loop through all IPs
|
1030 |
+
$ip_loop_num = 0;
|
1031 |
+
foreach (explode(',', $_SERVER[$key]) as $ip) {
|
1032 |
+
|
1033 |
+
// trim for safety measures
|
1034 |
+
$ip = trim($ip);
|
1035 |
+
|
1036 |
+
// attempt to validate IP
|
1037 |
+
if ($this->validate_ip($ip)) {
|
1038 |
+
|
1039 |
+
// valid, add to context, with loop index appended so we can store many IPs
|
1040 |
+
$key_lower = strtolower($key);
|
1041 |
+
$context["_server_{$key_lower}_{$ip_loop_num}"] = $ip;
|
1042 |
+
|
1043 |
+
}
|
1044 |
+
|
1045 |
+
$ip_loop_num++;
|
1046 |
+
|
1047 |
+
}
|
1048 |
+
|
1049 |
+
}
|
1050 |
+
|
1051 |
+
}
|
1052 |
+
|
1053 |
}
|
1054 |
|
1055 |
// Append http referer
|
1056 |
// Also good to always have!
|
1057 |
+
if (!isset($context["_server_http_referer"]) && isset($_SERVER["HTTP_REFERER"])) {
|
1058 |
$context["_server_http_referer"] = $_SERVER["HTTP_REFERER"];
|
1059 |
}
|
1060 |
|
1061 |
// Insert all context values into db
|
1062 |
+
foreach ($context as $key => $value) {
|
1063 |
|
1064 |
$data = array(
|
1065 |
"history_id" => $history_inserted_id,
|
1067 |
"value" => $value,
|
1068 |
);
|
1069 |
|
1070 |
+
$result = $wpdb->insert($db_table_contexts, $data);
|
1071 |
|
1072 |
}
|
1073 |
|
1074 |
}
|
1075 |
+
|
1076 |
$this->lastInsertID = $history_inserted_id;
|
1077 |
|
1078 |
+
$this->simpleHistory->get_cache_incrementor(true);
|
1079 |
+
|
1080 |
// Return $this so we can chain methods
|
1081 |
return $this;
|
1082 |
|
1083 |
} // log
|
1084 |
|
1085 |
+
/**
|
1086 |
+
* Ensures an ip address is both a valid IP and does not fall within
|
1087 |
+
* a private network range.
|
1088 |
+
*/
|
1089 |
+
function validate_ip($ip) {
|
1090 |
+
|
1091 |
+
if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4|FILTER_FLAG_NO_PRIV_RANGE|FILTER_FLAG_NO_RES_RANGE) === false) {
|
1092 |
+
return false;
|
1093 |
+
}
|
1094 |
+
|
1095 |
+
return true;
|
1096 |
+
|
1097 |
+
}
|
1098 |
+
|
1099 |
/**
|
1100 |
* Override this to add CSS in <head> for your logger.
|
1101 |
+
* The CSS that you output will only be outputed
|
1102 |
* on pages where Simple History is used.
|
1103 |
*/
|
1104 |
function adminCSS() {
|
1105 |
/*
|
1106 |
+
?>
|
1107 |
+
<style>
|
1108 |
+
body {
|
1109 |
+
border: 2px solid red;
|
1110 |
+
}
|
1111 |
+
</style>
|
1112 |
+
<?php
|
1113 |
+
*/
|
1114 |
}
|
1115 |
|
1116 |
/**
|
1117 |
* Override this to add JavaScript in the footer for your logger.
|
1118 |
+
* The JS that you output will only be outputed
|
1119 |
* on pages where Simple History is used.
|
1120 |
*/
|
1121 |
function adminJS() {
|
1122 |
/*
|
1123 |
+
?>
|
1124 |
+
<script>
|
1125 |
+
console.log("This is outputed in the footer");
|
1126 |
+
</script>
|
1127 |
+
<?php
|
1128 |
+
*/
|
1129 |
}
|
1130 |
+
|
1131 |
}
|
1132 |
|
1133 |
/**
|
1134 |
* Describes log initiator, i.e. who caused to log event to happend
|
1135 |
*/
|
1136 |
+
class SimpleLoggerLogInitiators {
|
1137 |
+
|
|
|
1138 |
// A wordpress user that at the log event created did exist in the wp database
|
1139 |
// May have been deleted when the log is viewed
|
1140 |
const WP_USER = 'wp_user';
|
1147 |
// WordPress core or plugins updated automatically via wp-cron
|
1148 |
const WORDPRESS = "wp";
|
1149 |
|
1150 |
+
// WP CLI / terminal
|
1151 |
+
const WP_CLI = "wp_cli";
|
1152 |
+
|
1153 |
// I dunno
|
1154 |
const OTHER = 'other';
|
1155 |
}
|
1156 |
|
|
|
1157 |
/**
|
1158 |
* Describes log event type
|
1159 |
* Based on the CRUD-types
|
1161 |
* More may be added later on if needed
|
1162 |
* Note: not in use at the moment
|
1163 |
*/
|
1164 |
+
class SimpleLoggerLogTypes {
|
|
|
1165 |
const CREATE = 'create';
|
1166 |
const READ = 'read';
|
1167 |
const UPDATE = 'update';
|
1172 |
/**
|
1173 |
* Describes log levels
|
1174 |
*/
|
1175 |
+
class SimpleLoggerLogLevels {
|
|
|
1176 |
const EMERGENCY = 'emergency';
|
1177 |
const ALERT = 'alert';
|
1178 |
const CRITICAL = 'critical';
|
1182 |
const INFO = 'info';
|
1183 |
const DEBUG = 'debug';
|
1184 |
}
|
|
loggers/SimpleMediaLogger.php
CHANGED
@@ -10,12 +10,12 @@ class SimpleMediaLogger extends SimpleLogger
|
|
10 |
|
11 |
/**
|
12 |
* Get array with information about this logger
|
13 |
-
*
|
14 |
* @return array
|
15 |
*/
|
16 |
function getInfo() {
|
17 |
|
18 |
-
$arr_info = array(
|
19 |
"name" => "Media/Attachments Logger",
|
20 |
"description" => "Logs media uploads and edits",
|
21 |
"capability" => "edit_pages",
|
@@ -30,26 +30,28 @@ class SimpleMediaLogger extends SimpleLogger
|
|
30 |
"options" => array(
|
31 |
_x("Added media", "Media logger: search", "simple-history") => array(
|
32 |
"attachment_created"
|
33 |
-
),
|
34 |
_x("Updated media", "Media logger: search", "simple-history") => array(
|
35 |
"attachment_updated"
|
36 |
-
),
|
37 |
_x("Deleted media", "Media logger: search", "simple-history") => array(
|
38 |
"attachment_deleted"
|
39 |
-
),
|
40 |
)
|
41 |
) // end search array
|
42 |
) // end labels
|
43 |
);
|
44 |
-
|
45 |
return $arr_info;
|
46 |
|
47 |
}
|
48 |
|
49 |
public function loaded() {
|
50 |
-
|
51 |
add_action("admin_init", array($this, "on_admin_init"));
|
52 |
|
|
|
|
|
53 |
}
|
54 |
|
55 |
function on_admin_init() {
|
@@ -60,11 +62,45 @@ class SimpleMediaLogger extends SimpleLogger
|
|
60 |
|
61 |
}
|
62 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
/**
|
64 |
* Modify plain output to inlcude link to post
|
65 |
*/
|
66 |
public function getLogRowPlainTextOutput($row) {
|
67 |
-
|
68 |
$message = $row->message;
|
69 |
$context = $row->context;
|
70 |
$message_key = $context["_message_key"];
|
@@ -72,7 +108,7 @@ class SimpleMediaLogger extends SimpleLogger
|
|
72 |
$attachment_id = $context["attachment_id"];
|
73 |
$attachment_post = get_post( $attachment_id );
|
74 |
$attachment_is_available = is_a($attachment_post, "WP_Post");
|
75 |
-
|
76 |
// Only link to attachment if it is still available
|
77 |
if ( $attachment_is_available ) {
|
78 |
|
@@ -83,16 +119,23 @@ class SimpleMediaLogger extends SimpleLogger
|
|
83 |
} else if ( "attachment_created" == $message_key ) {
|
84 |
|
85 |
$message = __('Uploaded {post_type} <a href="{edit_link}">"{attachment_title}"</a>', "simple-history");
|
86 |
-
|
87 |
}
|
88 |
|
89 |
-
|
|
|
|
|
90 |
|
91 |
-
|
92 |
-
$context["attachment_filename"] = esc_html( $context["attachment_filename"] );
|
93 |
-
$context["edit_link"] = get_edit_post_link( $attachment_id );
|
94 |
|
95 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
|
97 |
}
|
98 |
|
@@ -105,12 +148,16 @@ class SimpleMediaLogger extends SimpleLogger
|
|
105 |
$message_key = $context["_message_key"];
|
106 |
$output = "";
|
107 |
|
|
|
|
|
|
|
|
|
108 |
if ( "attachment_updated" == $message_key ) {
|
109 |
-
|
110 |
// Attachment is changed = don't show thumbs and all
|
111 |
|
112 |
} else if ( "attachment_deleted" == $message_key ) {
|
113 |
-
|
114 |
// Attachment is deleted = don't show thumbs and all
|
115 |
|
116 |
} else if ( "attachment_created" == $message_key ) {
|
@@ -146,9 +193,9 @@ class SimpleMediaLogger extends SimpleLogger
|
|
146 |
if ( $full_image_width && $full_image_height ) {
|
147 |
|
148 |
$context["full_image_width"] = $full_image_width;
|
149 |
-
$context["full_image_height"] = $
|
150 |
$context["attachment_thumb"] = sprintf('<div class="SimpleHistoryLogitemThumbnail"><img src="%1$s"></div>', $thumb_src[0] );
|
151 |
-
|
152 |
}
|
153 |
|
154 |
} else if ($is_audio) {
|
@@ -164,22 +211,28 @@ class SimpleMediaLogger extends SimpleLogger
|
|
164 |
} else {
|
165 |
|
166 |
// use wordpress icon for other media types
|
167 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
168 |
|
169 |
}
|
170 |
-
|
171 |
$context["attachment_size_format"] = size_format( $row->context["attachment_filesize"] );
|
172 |
$context["attachment_filetype_extension"] = strtoupper( $filetype["ext"] );
|
173 |
|
174 |
if ( ! empty( $context["attachment_thumb"] ) ) {
|
175 |
-
|
176 |
-
if ($is_image) {
|
177 |
-
$message .= "<a href='".$edit_link."'>";
|
178 |
}
|
179 |
-
|
180 |
$message .= __('{attachment_thumb}', 'simple-history');
|
181 |
-
|
182 |
-
if ($is_image) {
|
183 |
$message .= "</a>";
|
184 |
}
|
185 |
|
@@ -189,7 +242,7 @@ class SimpleMediaLogger extends SimpleLogger
|
|
189 |
$message .= "<span class='SimpleHistoryLogitem__inlineDivided'>" . __('{attachment_size_format}', "simple-history") . "</span> ";
|
190 |
$message .= "<span class='SimpleHistoryLogitem__inlineDivided'>" . __('{attachment_filetype_extension}', "simple-history") . "</span>";
|
191 |
if ($full_image_width && $full_image_height) {
|
192 |
-
$message .= " <span class='SimpleHistoryLogitem__inlineDivided'>" . __('{full_image_width} × {full_image_height}') . "</span>";
|
193 |
}
|
194 |
//$message .= " <span class='SimpleHistoryLogitem__inlineDivided'>" . sprintf( __('<a href="%1$s">Edit attachment</a>'), $edit_link ) . "</span>";
|
195 |
$message .= "</p>";
|
@@ -216,7 +269,7 @@ class SimpleMediaLogger extends SimpleLogger
|
|
216 |
if ( file_exists( $file ) ) {
|
217 |
$file_size = filesize( $file );
|
218 |
}
|
219 |
-
|
220 |
$this->infoMessage(
|
221 |
'attachment_created',
|
222 |
array(
|
@@ -230,7 +283,7 @@ class SimpleMediaLogger extends SimpleLogger
|
|
230 |
);
|
231 |
|
232 |
}
|
233 |
-
|
234 |
/**
|
235 |
* An attachmet is changed
|
236 |
* is this only being called if the title of the attachment is changed?!
|
@@ -238,7 +291,7 @@ class SimpleMediaLogger extends SimpleLogger
|
|
238 |
* @param int $attachment_id
|
239 |
*/
|
240 |
function on_edit_attachment($attachment_id) {
|
241 |
-
|
242 |
$attachment_post = get_post( $attachment_id );
|
243 |
$filename = esc_html( wp_basename( $attachment_post->guid ) );
|
244 |
$mime = get_post_mime_type( $attachment_post );
|
@@ -257,11 +310,11 @@ class SimpleMediaLogger extends SimpleLogger
|
|
257 |
|
258 |
}
|
259 |
|
260 |
-
/**
|
261 |
* Called when an attachment is deleted
|
262 |
*/
|
263 |
function on_delete_attachment($attachment_id) {
|
264 |
-
|
265 |
$attachment_post = get_post( $attachment_id );
|
266 |
$filename = esc_html( wp_basename( $attachment_post->guid ) );
|
267 |
$mime = get_post_mime_type( $attachment_post );
|
10 |
|
11 |
/**
|
12 |
* Get array with information about this logger
|
13 |
+
*
|
14 |
* @return array
|
15 |
*/
|
16 |
function getInfo() {
|
17 |
|
18 |
+
$arr_info = array(
|
19 |
"name" => "Media/Attachments Logger",
|
20 |
"description" => "Logs media uploads and edits",
|
21 |
"capability" => "edit_pages",
|
30 |
"options" => array(
|
31 |
_x("Added media", "Media logger: search", "simple-history") => array(
|
32 |
"attachment_created"
|
33 |
+
),
|
34 |
_x("Updated media", "Media logger: search", "simple-history") => array(
|
35 |
"attachment_updated"
|
36 |
+
),
|
37 |
_x("Deleted media", "Media logger: search", "simple-history") => array(
|
38 |
"attachment_deleted"
|
39 |
+
),
|
40 |
)
|
41 |
) // end search array
|
42 |
) // end labels
|
43 |
);
|
44 |
+
|
45 |
return $arr_info;
|
46 |
|
47 |
}
|
48 |
|
49 |
public function loaded() {
|
50 |
+
|
51 |
add_action("admin_init", array($this, "on_admin_init"));
|
52 |
|
53 |
+
add_action( 'xmlrpc_call_success_mw_newMediaObject', array($this, "on_mw_newMediaObject"), 10, 2 );
|
54 |
+
|
55 |
}
|
56 |
|
57 |
function on_admin_init() {
|
62 |
|
63 |
}
|
64 |
|
65 |
+
/**
|
66 |
+
* Filter that fires after a new attachment has been added via the XML-RPC MovableType API.
|
67 |
+
*
|
68 |
+
* @since 2.0.21
|
69 |
+
*
|
70 |
+
* @param int $id ID of the new attachment.
|
71 |
+
* @param array $args An array of arguments to add the attachment.
|
72 |
+
*/
|
73 |
+
function on_mw_newMediaObject($attachment_id, $args) {
|
74 |
+
|
75 |
+
$attachment_post = get_post( $attachment_id );
|
76 |
+
$filename = esc_html( wp_basename( $attachment_post->guid ) );
|
77 |
+
$mime = get_post_mime_type( $attachment_post );
|
78 |
+
$file = get_attached_file( $attachment_id );
|
79 |
+
$file_size = false;
|
80 |
+
|
81 |
+
if ( file_exists( $file ) ) {
|
82 |
+
$file_size = filesize( $file );
|
83 |
+
}
|
84 |
+
|
85 |
+
$this->infoMessage(
|
86 |
+
'attachment_created',
|
87 |
+
array(
|
88 |
+
"post_type" => get_post_type( $attachment_post ),
|
89 |
+
"attachment_id" => $attachment_id,
|
90 |
+
"attachment_title" => get_the_title( $attachment_post ),
|
91 |
+
"attachment_filename" => $filename,
|
92 |
+
"attachment_mime" => $mime,
|
93 |
+
"attachment_filesize" => $file_size
|
94 |
+
)
|
95 |
+
);
|
96 |
+
|
97 |
+
}
|
98 |
+
|
99 |
/**
|
100 |
* Modify plain output to inlcude link to post
|
101 |
*/
|
102 |
public function getLogRowPlainTextOutput($row) {
|
103 |
+
|
104 |
$message = $row->message;
|
105 |
$context = $row->context;
|
106 |
$message_key = $context["_message_key"];
|
108 |
$attachment_id = $context["attachment_id"];
|
109 |
$attachment_post = get_post( $attachment_id );
|
110 |
$attachment_is_available = is_a($attachment_post, "WP_Post");
|
111 |
+
|
112 |
// Only link to attachment if it is still available
|
113 |
if ( $attachment_is_available ) {
|
114 |
|
119 |
} else if ( "attachment_created" == $message_key ) {
|
120 |
|
121 |
$message = __('Uploaded {post_type} <a href="{edit_link}">"{attachment_title}"</a>', "simple-history");
|
122 |
+
|
123 |
}
|
124 |
|
125 |
+
$context["post_type"] = esc_html( $context["post_type"] );
|
126 |
+
$context["attachment_filename"] = esc_html( $context["attachment_filename"] );
|
127 |
+
$context["edit_link"] = get_edit_post_link( $attachment_id );
|
128 |
|
129 |
+
$message = $this->interpolate($message, $context);
|
|
|
|
|
130 |
|
131 |
+
} else {
|
132 |
+
|
133 |
+
// Attachment post is not available, attachment has probably been deleted
|
134 |
+
$message = parent::getLogRowPlainTextOutput( $row );
|
135 |
+
|
136 |
+
}
|
137 |
+
|
138 |
+
return $message;
|
139 |
|
140 |
}
|
141 |
|
148 |
$message_key = $context["_message_key"];
|
149 |
$output = "";
|
150 |
|
151 |
+
$attachment_id = $context["attachment_id"];
|
152 |
+
$attachment_post = get_post( $attachment_id );
|
153 |
+
$attachment_is_available = is_a($attachment_post, "WP_Post");
|
154 |
+
|
155 |
if ( "attachment_updated" == $message_key ) {
|
156 |
+
|
157 |
// Attachment is changed = don't show thumbs and all
|
158 |
|
159 |
} else if ( "attachment_deleted" == $message_key ) {
|
160 |
+
|
161 |
// Attachment is deleted = don't show thumbs and all
|
162 |
|
163 |
} else if ( "attachment_created" == $message_key ) {
|
193 |
if ( $full_image_width && $full_image_height ) {
|
194 |
|
195 |
$context["full_image_width"] = $full_image_width;
|
196 |
+
$context["full_image_height"] = $full_image_height;
|
197 |
$context["attachment_thumb"] = sprintf('<div class="SimpleHistoryLogitemThumbnail"><img src="%1$s"></div>', $thumb_src[0] );
|
198 |
+
|
199 |
}
|
200 |
|
201 |
} else if ($is_audio) {
|
211 |
} else {
|
212 |
|
213 |
// use wordpress icon for other media types
|
214 |
+
if ( $attachment_is_available ) {
|
215 |
+
$context["attachment_thumb"] = wp_get_attachment_image( $attachment_id, null, true );
|
216 |
+
}
|
217 |
+
/*else {
|
218 |
+
// Add icon for deleted media?
|
219 |
+
$context["attachment_thumb"] = "thumb";
|
220 |
+
}*/
|
221 |
|
222 |
}
|
223 |
+
|
224 |
$context["attachment_size_format"] = size_format( $row->context["attachment_filesize"] );
|
225 |
$context["attachment_filetype_extension"] = strtoupper( $filetype["ext"] );
|
226 |
|
227 |
if ( ! empty( $context["attachment_thumb"] ) ) {
|
228 |
+
|
229 |
+
if ( $is_image ) {
|
230 |
+
$message .= "<a class='SimpleHistoryLogitemThumbnailLink' href='".$edit_link."'>";
|
231 |
}
|
232 |
+
|
233 |
$message .= __('{attachment_thumb}', 'simple-history');
|
234 |
+
|
235 |
+
if ( $is_image ) {
|
236 |
$message .= "</a>";
|
237 |
}
|
238 |
|
242 |
$message .= "<span class='SimpleHistoryLogitem__inlineDivided'>" . __('{attachment_size_format}', "simple-history") . "</span> ";
|
243 |
$message .= "<span class='SimpleHistoryLogitem__inlineDivided'>" . __('{attachment_filetype_extension}', "simple-history") . "</span>";
|
244 |
if ($full_image_width && $full_image_height) {
|
245 |
+
$message .= " <span class='SimpleHistoryLogitem__inlineDivided'>" . __('{full_image_width} × {full_image_height}', "simple-history") . "</span>";
|
246 |
}
|
247 |
//$message .= " <span class='SimpleHistoryLogitem__inlineDivided'>" . sprintf( __('<a href="%1$s">Edit attachment</a>'), $edit_link ) . "</span>";
|
248 |
$message .= "</p>";
|
269 |
if ( file_exists( $file ) ) {
|
270 |
$file_size = filesize( $file );
|
271 |
}
|
272 |
+
|
273 |
$this->infoMessage(
|
274 |
'attachment_created',
|
275 |
array(
|
283 |
);
|
284 |
|
285 |
}
|
286 |
+
|
287 |
/**
|
288 |
* An attachmet is changed
|
289 |
* is this only being called if the title of the attachment is changed?!
|
291 |
* @param int $attachment_id
|
292 |
*/
|
293 |
function on_edit_attachment($attachment_id) {
|
294 |
+
|
295 |
$attachment_post = get_post( $attachment_id );
|
296 |
$filename = esc_html( wp_basename( $attachment_post->guid ) );
|
297 |
$mime = get_post_mime_type( $attachment_post );
|
310 |
|
311 |
}
|
312 |
|
313 |
+
/**
|
314 |
* Called when an attachment is deleted
|
315 |
*/
|
316 |
function on_delete_attachment($attachment_id) {
|
317 |
+
|
318 |
$attachment_post = get_post( $attachment_id );
|
319 |
$filename = esc_html( wp_basename( $attachment_post->guid ) );
|
320 |
$mime = get_post_mime_type( $attachment_post );
|
loggers/SimpleOptionsLogger.php
CHANGED
@@ -202,14 +202,14 @@ class SimpleOptionsLogger extends SimpleLogger
|
|
202 |
return;
|
203 |
}
|
204 |
|
205 |
-
$this->debugMessage(
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
) );
|
214 |
|
215 |
|
@@ -240,7 +240,7 @@ class SimpleOptionsLogger extends SimpleLogger
|
|
240 |
</tr>
|
241 |
',
|
242 |
__("New value", "simple-history"),
|
243 |
-
esc_html( $context["new_value"] )
|
244 |
);
|
245 |
|
246 |
$output .= sprintf(
|
@@ -251,7 +251,7 @@ class SimpleOptionsLogger extends SimpleLogger
|
|
251 |
</tr>
|
252 |
',
|
253 |
__("Old value", "simple-history"),
|
254 |
-
esc_html( $context["old_value"] )
|
255 |
);
|
256 |
}
|
257 |
|
202 |
return;
|
203 |
}
|
204 |
|
205 |
+
$this->debugMessage( 'option_updated', array(
|
206 |
+
'option' => $option,
|
207 |
+
'old_value' => $old_value,
|
208 |
+
'new_value' => $new_value,
|
209 |
+
'REQUEST_URI' => $_SERVER['REQUEST_URI'],
|
210 |
+
'referer' => wp_get_referer(),
|
211 |
+
'option_page' => $option_page,
|
212 |
+
'$_REQUEST' => print_r($_REQUEST, true),
|
213 |
) );
|
214 |
|
215 |
|
240 |
</tr>
|
241 |
',
|
242 |
__("New value", "simple-history"),
|
243 |
+
esc_html( mb_strimwidth( $context["new_value"], 0, 250, "..." ) )
|
244 |
);
|
245 |
|
246 |
$output .= sprintf(
|
251 |
</tr>
|
252 |
',
|
253 |
__("Old value", "simple-history"),
|
254 |
+
esc_html( mb_strimwidth( $context["old_value"], 0, 250, "..." ) )
|
255 |
);
|
256 |
}
|
257 |
|
loggers/SimplePluginLogger.php
CHANGED
@@ -1,33 +1,7 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
/*
|
4 |
-
|
5 |
-
|
6 |
-
# logga installs/updates av plugins som är silent
|
7 |
-
|
8 |
-
// Innan update körs en av dessa
|
9 |
-
$current = get_site_option( 'active_sitewide_plugins', array() );
|
10 |
-
$current = get_option( 'active_plugins', array() );
|
11 |
-
|
12 |
-
// efter update körs en av dessa
|
13 |
-
update_site_option( 'active_sitewide_plugins', $current );
|
14 |
-
update_option('active_plugins', $current);
|
15 |
-
|
16 |
-
// så: jämför om arrayen har ändrats, och om den har det = ny plugin aktiverats
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
# extra stuff
|
22 |
-
vid aktivering/installation av plugin: spara resultat från
|
23 |
-
get_plugin_files($plugin)
|
24 |
-
så vid ev intrång/skadlig kod uppladdad så kan man analysera lite
|
25 |
-
|
26 |
-
*/
|
27 |
-
|
28 |
-
|
29 |
/**
|
30 |
-
* Logs
|
31 |
*/
|
32 |
class SimplePluginLogger extends SimpleLogger
|
33 |
{
|
@@ -147,7 +121,15 @@ class SimplePluginLogger extends SimpleLogger
|
|
147 |
|
148 |
//do_action( 'current_screen', $current_screen );
|
149 |
// The first hook where current screen is available
|
150 |
-
add_action( 'current_screen', array( $this, "save_versions_before_update" ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
151 |
add_action( 'delete_site_transient_update_plugins', array( $this, "remove_saved_versions" ) );
|
152 |
|
153 |
// Fires after a plugin has been activated.
|
@@ -160,10 +142,8 @@ class SimplePluginLogger extends SimpleLogger
|
|
160 |
// this hook does not fire.
|
161 |
add_action( 'deactivated_plugin', array( $this, "on_deactivated_plugin" ), 10, 2 );
|
162 |
|
163 |
-
|
164 |
// Fires after the upgrades has done it's thing
|
165 |
// Check hook extra for upgrader initiator
|
166 |
-
//add_action( 'upgrader_post_install', array( $this, "on_upgrader_post_install" ), 10, 3 );
|
167 |
add_action( 'upgrader_process_complete', array( $this, "on_upgrader_process_complete" ), 10, 2 );
|
168 |
|
169 |
// Dirty check for things that we can't catch using filters or actions
|
@@ -172,14 +152,55 @@ class SimplePluginLogger extends SimpleLogger
|
|
172 |
// Detect files removed
|
173 |
add_action( 'setted_transient', array( $this, 'on_setted_transient_for_remove_files' ), 10, 2 );
|
174 |
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
183 |
|
184 |
}
|
185 |
|
@@ -220,10 +241,10 @@ class SimplePluginLogger extends SimpleLogger
|
|
220 |
$plugins_deleted = $_POST["checked"];
|
221 |
$plugins_before_update = json_decode( get_option( $this->slug . "_plugin_info_before_update", false ), true );
|
222 |
|
223 |
-
foreach ($plugins_deleted as $plugin) {
|
224 |
|
225 |
$context = array(
|
226 |
-
"plugin" => $plugin
|
227 |
);
|
228 |
|
229 |
if ( is_array( $plugins_before_update ) && isset( $plugins_before_update[ $plugin ] ) ) {
|
@@ -252,7 +273,7 @@ class SimplePluginLogger extends SimpleLogger
|
|
252 |
* Save all plugin information before a plugin is updated or removed.
|
253 |
* This way we can know both the old (pre updated/removed) and the current version of the plugin
|
254 |
*/
|
255 |
-
public function save_versions_before_update() {
|
256 |
|
257 |
$current_screen = get_current_screen();
|
258 |
$request_uri = $_SERVER["SCRIPT_NAME"];
|
@@ -286,10 +307,11 @@ class SimplePluginLogger extends SimpleLogger
|
|
286 |
}
|
287 |
|
288 |
}
|
|
|
289 |
|
290 |
/**
|
291 |
* when plugin updates are done wp_clean_plugins_cache() is called,
|
292 |
-
* which in
|
293 |
* delete_site_transient( 'update_plugins' );
|
294 |
* do_action( 'delete_site_transient_' . $transient, $transient );
|
295 |
* delete_site_transient_update_plugins
|
@@ -359,13 +381,24 @@ class SimplePluginLogger extends SimpleLogger
|
|
359 |
}
|
360 |
|
361 |
/**
|
362 |
-
* Called when
|
363 |
-
* (not bulk)
|
364 |
*/
|
365 |
function on_upgrader_process_complete( $plugin_upgrader_instance, $arr_data ) {
|
366 |
|
|
|
|
|
|
|
|
|
367 |
/*
|
368 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
369 |
# WordPress core update
|
370 |
|
371 |
$arr_data:
|
1 |
<?php
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
/**
|
4 |
+
* Logs plugin installs, updates, and deletions
|
5 |
*/
|
6 |
class SimplePluginLogger extends SimpleLogger
|
7 |
{
|
121 |
|
122 |
//do_action( 'current_screen', $current_screen );
|
123 |
// The first hook where current screen is available
|
124 |
+
//add_action( 'current_screen', array( $this, "save_versions_before_update" ) );
|
125 |
+
|
126 |
+
/**
|
127 |
+
* At least the plugin bulk upgrades fires this action before upgrade
|
128 |
+
* We use it to fetch the current version of all plugins, before they are upgraded
|
129 |
+
*/
|
130 |
+
add_filter( 'upgrader_pre_install', array( $this, "save_versions_before_update"), 10, 2);
|
131 |
+
|
132 |
+
// Clear our transient after an update is done
|
133 |
add_action( 'delete_site_transient_update_plugins', array( $this, "remove_saved_versions" ) );
|
134 |
|
135 |
// Fires after a plugin has been activated.
|
142 |
// this hook does not fire.
|
143 |
add_action( 'deactivated_plugin', array( $this, "on_deactivated_plugin" ), 10, 2 );
|
144 |
|
|
|
145 |
// Fires after the upgrades has done it's thing
|
146 |
// Check hook extra for upgrader initiator
|
|
|
147 |
add_action( 'upgrader_process_complete', array( $this, "on_upgrader_process_complete" ), 10, 2 );
|
148 |
|
149 |
// Dirty check for things that we can't catch using filters or actions
|
152 |
// Detect files removed
|
153 |
add_action( 'setted_transient', array( $this, 'on_setted_transient_for_remove_files' ), 10, 2 );
|
154 |
|
155 |
+
add_action("admin_action_delete-selected", array($this, "on_action_delete_selected"), 10, 1);
|
156 |
+
|
157 |
+
|
158 |
+
}
|
159 |
+
|
160 |
+
/*
|
161 |
+
* When a plugin has been deleted there is no way for us to get
|
162 |
+
* the real name of the plugin, only the dir and main index file.
|
163 |
+
* So before a plugin is deleted we save all needed info in a transient
|
164 |
+
*/
|
165 |
+
function on_action_delete_selected() {
|
166 |
+
|
167 |
+
// Same as in plugins.php
|
168 |
+
if ( ! current_user_can('delete_plugins') ) {
|
169 |
+
wp_die(__('You do not have sufficient permissions to delete plugins for this site.'));
|
170 |
+
}
|
171 |
+
|
172 |
+
// Same as in plugins.php
|
173 |
+
check_admin_referer('bulk-plugins');
|
174 |
+
|
175 |
+
// Verify delete must be set
|
176 |
+
if ( ! isset( $_POST["verify-delete"] ) || ! $_POST["verify-delete"] ) {
|
177 |
+
return;
|
178 |
+
}
|
179 |
+
|
180 |
+
// An arr of plugins must be set
|
181 |
+
if ( ! isset( $_POST["checked"] ) || ! is_array( $_POST["checked"] ) ) {
|
182 |
+
return;
|
183 |
+
}
|
184 |
+
|
185 |
+
// If we get this far it looks like a plugin is begin deleted
|
186 |
+
// Get and save info about it
|
187 |
+
|
188 |
+
$this->save_versions_before_update();
|
189 |
+
|
190 |
+
|
191 |
+
}
|
192 |
+
|
193 |
+
/**
|
194 |
+
* Saves info about all installed plugins to an option.
|
195 |
+
* When we are done logging then we remove the option.
|
196 |
+
*/
|
197 |
+
function save_versions_before_update($bool, $hook_extra) {
|
198 |
+
|
199 |
+
$plugins = get_plugins();
|
200 |
+
|
201 |
+
update_option( $this->slug . "_plugin_info_before_update", SimpleHistory::json_encode( $plugins ) );
|
202 |
+
|
203 |
+
return $bool;
|
204 |
|
205 |
}
|
206 |
|
241 |
$plugins_deleted = $_POST["checked"];
|
242 |
$plugins_before_update = json_decode( get_option( $this->slug . "_plugin_info_before_update", false ), true );
|
243 |
|
244 |
+
foreach ( $plugins_deleted as $plugin ) {
|
245 |
|
246 |
$context = array(
|
247 |
+
"plugin" => $plugin // plugin-name-folder/plugin-main-file.php
|
248 |
);
|
249 |
|
250 |
if ( is_array( $plugins_before_update ) && isset( $plugins_before_update[ $plugin ] ) ) {
|
273 |
* Save all plugin information before a plugin is updated or removed.
|
274 |
* This way we can know both the old (pre updated/removed) and the current version of the plugin
|
275 |
*/
|
276 |
+
/*public function save_versions_before_update() {
|
277 |
|
278 |
$current_screen = get_current_screen();
|
279 |
$request_uri = $_SERVER["SCRIPT_NAME"];
|
307 |
}
|
308 |
|
309 |
}
|
310 |
+
*/
|
311 |
|
312 |
/**
|
313 |
* when plugin updates are done wp_clean_plugins_cache() is called,
|
314 |
+
* which in its turn run:
|
315 |
* delete_site_transient( 'update_plugins' );
|
316 |
* do_action( 'delete_site_transient_' . $transient, $transient );
|
317 |
* delete_site_transient_update_plugins
|
381 |
}
|
382 |
|
383 |
/**
|
384 |
+
* Called when plugins is updated or installed
|
|
|
385 |
*/
|
386 |
function on_upgrader_process_complete( $plugin_upgrader_instance, $arr_data ) {
|
387 |
|
388 |
+
// Can't use get_plugins() here to get version of plugins updated from
|
389 |
+
// Tested that, and it will get the new version (and that's the correct answer I guess. but too bad for us..)
|
390 |
+
// $plugs = get_plugins();
|
391 |
+
// $context["_debug_get_plugins"] = SimpleHistory::json_encode( $plugs );
|
392 |
/*
|
393 |
+
|
394 |
+
Try with these instead:
|
395 |
+
$current = get_site_transient( 'update_plugins' );
|
396 |
+
add_filter('upgrader_clear_destination', array($this, 'delete_old_plugin'), 10, 4);
|
397 |
+
|
398 |
+
*/
|
399 |
+
|
400 |
+
/*
|
401 |
+
|
402 |
# WordPress core update
|
403 |
|
404 |
$arr_data:
|
loggers/SimplePostLogger.php
CHANGED
@@ -1,5 +1,74 @@
|
|
1 |
<?php
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
/**
|
4 |
* Logs changes to posts and pages, including custom post types
|
5 |
*/
|
@@ -13,8 +82,89 @@ class SimplePostLogger extends SimpleLogger
|
|
13 |
|
14 |
add_action("admin_init", array($this, "on_admin_init"));
|
15 |
|
|
|
|
|
16 |
}
|
17 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
/**
|
19 |
* Get array with information about this logger
|
20 |
*
|
@@ -70,19 +220,85 @@ class SimplePostLogger extends SimpleLogger
|
|
70 |
|
71 |
}
|
72 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
/**
|
74 |
* Called when a post is restored from the trash
|
75 |
*/
|
76 |
function on_untrash_post($post_id) {
|
77 |
|
78 |
-
$post = get_post($post_id);
|
79 |
|
80 |
-
$this->
|
81 |
-
|
82 |
array(
|
83 |
"post_id" => $post_id,
|
84 |
-
"post_type" => get_post_type($post),
|
85 |
-
"post_title" => get_the_title($post)
|
86 |
)
|
87 |
);
|
88 |
|
@@ -233,7 +449,7 @@ class SimplePostLogger extends SimpleLogger
|
|
233 |
|
234 |
} else if ( "post_deleted" == $message_key ) {
|
235 |
|
236 |
-
$message = __('Deleted {post_type} "{post_title}"');
|
237 |
|
238 |
} else if ( "post_created" == $message_key ) {
|
239 |
|
1 |
<?php
|
2 |
|
3 |
+
/*
|
4 |
+
- vid start av app: login, körs titt som tätt
|
5 |
+
- XMLRPC_REQUEST": true
|
6 |
+
do_action( 'xmlrpc_call', 'wp.editPost' );
|
7 |
+
|
8 |
+
* All built-in XML-RPC methods use the action xmlrpc_call, with a parameter
|
9 |
+
* equal to the method's name, e.g., wp.getUsersBlogs, wp.newPost, etc.
|
10 |
+
do_action( 'xmlrpc_call', 'wp.getUsersBlogs' );
|
11 |
+
*/
|
12 |
+
|
13 |
+
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Fires after a new category has been successfully created via XML-RPC.
|
17 |
+
*
|
18 |
+
* @since 3.4.0
|
19 |
+
*
|
20 |
+
* @param int $cat_id ID of the new category.
|
21 |
+
* @param array $args An array of new category arguments.
|
22 |
+
*/
|
23 |
+
# do_action( 'xmlrpc_call_success_wp_newCategory', $cat_id, $args );
|
24 |
+
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Fires after a category has been successfully deleted via XML-RPC.
|
28 |
+
*
|
29 |
+
* @since 3.4.0
|
30 |
+
*
|
31 |
+
* @param int $category_id ID of the deleted category.
|
32 |
+
* @param array $args An array of arguments to delete the category.
|
33 |
+
*/
|
34 |
+
# do_action( 'xmlrpc_call_success_wp_deleteCategory', $category_id, $args );
|
35 |
+
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Fires after a comment has been successfully deleted via XML-RPC.
|
39 |
+
*
|
40 |
+
* @since 3.4.0
|
41 |
+
*
|
42 |
+
* @param int $comment_ID ID of the deleted comment.
|
43 |
+
* @param array $args An array of arguments to delete the comment.
|
44 |
+
*/
|
45 |
+
# do_action( 'xmlrpc_call_success_wp_deleteComment', $comment_ID, $args );
|
46 |
+
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Fires after a comment has been successfully updated via XML-RPC.
|
50 |
+
*
|
51 |
+
* @since 3.4.0
|
52 |
+
*
|
53 |
+
* @param int $comment_ID ID of the updated comment.
|
54 |
+
* @param array $args An array of arguments to update the comment.
|
55 |
+
*/
|
56 |
+
# do_action( 'xmlrpc_call_success_wp_editComment', $comment_ID, $args );
|
57 |
+
|
58 |
+
|
59 |
+
/**
|
60 |
+
* Fires after a new comment has been successfully created via XML-RPC.
|
61 |
+
*
|
62 |
+
* @since 3.4.0
|
63 |
+
*
|
64 |
+
* @param int $comment_ID ID of the new comment.
|
65 |
+
* @param array $args An array of new comment arguments.
|
66 |
+
*/
|
67 |
+
# do_action( 'xmlrpc_call_success_wp_newComment', $comment_ID, $args );
|
68 |
+
|
69 |
+
|
70 |
+
|
71 |
+
|
72 |
/**
|
73 |
* Logs changes to posts and pages, including custom post types
|
74 |
*/
|
82 |
|
83 |
add_action("admin_init", array($this, "on_admin_init"));
|
84 |
|
85 |
+
$this->add_xml_rpc_hooks();
|
86 |
+
|
87 |
}
|
88 |
|
89 |
+
/**
|
90 |
+
* Filters to XML RPC calls needs to be added early, admin_init is to late
|
91 |
+
*/
|
92 |
+
function add_xml_rpc_hooks() {
|
93 |
+
|
94 |
+
// Debug: log all XML-RPC requests
|
95 |
+
/*
|
96 |
+
add_action("xmlrpc_call", function($method) {
|
97 |
+
SimpleLogger()->debug("XML-RPC call for method '{method}'", array("method" => $method));
|
98 |
+
}, 10, 1);
|
99 |
+
*/
|
100 |
+
|
101 |
+
add_action('xmlrpc_call_success_blogger_newPost', array($this, "on_xmlrpc_newPost"), 10, 2);
|
102 |
+
add_action('xmlrpc_call_success_mw_newPost', array($this, "on_xmlrpc_newPost"), 10,2 );
|
103 |
+
|
104 |
+
add_action('xmlrpc_call_success_blogger_editPost', array($this, "on_xmlrpc_editPost"), 10, 2);
|
105 |
+
add_action('xmlrpc_call_success_mw_editPost', array($this, "on_xmlrpc_editPost"), 10, 2);
|
106 |
+
|
107 |
+
add_action('xmlrpc_call_success_blogger_deletePost', array($this, "on_xmlrpc_deletePost"), 10, 2);
|
108 |
+
add_action('xmlrpc_call_success_wp_deletePage', array($this, "on_xmlrpc_deletePost"), 10, 2);
|
109 |
+
|
110 |
+
add_action("xmlrpc_call", array($this, "on_xmlrpc_call"), 10, 1);
|
111 |
+
|
112 |
+
}
|
113 |
+
|
114 |
+
function on_xmlrpc_call($method) {
|
115 |
+
|
116 |
+
$arr_methods_to_act_on = array(
|
117 |
+
"wp.deletePost"
|
118 |
+
);
|
119 |
+
|
120 |
+
$raw_post_data = null;
|
121 |
+
$message = null;
|
122 |
+
$context = array();
|
123 |
+
|
124 |
+
if ( in_array( $method, $arr_methods_to_act_on ) ) {
|
125 |
+
|
126 |
+
// Setup common stuff
|
127 |
+
$raw_post_data = file_get_contents("php://input");
|
128 |
+
$context["wp.deletePost.xmldata"] = $this->simpleHistory->json_encode( $raw_post_data );
|
129 |
+
$message = new IXR_Message( $raw_post_data );
|
130 |
+
|
131 |
+
if ( ! $message->parse() ) {
|
132 |
+
return;
|
133 |
+
}
|
134 |
+
|
135 |
+
$context["wp.deletePost.xmlrpc_message"] = $this->simpleHistory->json_encode( $message );
|
136 |
+
$context["wp.deletePost.xmlrpc_message.messageType"] = $this->simpleHistory->json_encode( $message->messageType );
|
137 |
+
$context["wp.deletePost.xmlrpc_message.methodName"] = $this->simpleHistory->json_encode( $message->methodName );
|
138 |
+
$context["wp.deletePost.xmlrpc_message.messageParams"] = $this->simpleHistory->json_encode( $message->params );
|
139 |
+
|
140 |
+
// Actions for delete post
|
141 |
+
if ( "wp.deletePost" == $method ) {
|
142 |
+
|
143 |
+
// 4 params, where the last is the post id
|
144 |
+
if ( ! isset( $message->params[3] ) ) {
|
145 |
+
return;
|
146 |
+
}
|
147 |
+
|
148 |
+
$post_ID = $message->params[3];
|
149 |
+
|
150 |
+
$post = get_post( $post_ID );
|
151 |
+
|
152 |
+
$context = array(
|
153 |
+
"post_id" => $post->ID,
|
154 |
+
"post_type" => get_post_type( $post ),
|
155 |
+
"post_title" => get_the_title( $post )
|
156 |
+
);
|
157 |
+
|
158 |
+
$this->infoMessage( "post_trashed", $context );
|
159 |
+
|
160 |
+
|
161 |
+
} // if delete post
|
162 |
+
|
163 |
+
}
|
164 |
+
|
165 |
+
}
|
166 |
+
|
167 |
+
|
168 |
/**
|
169 |
* Get array with information about this logger
|
170 |
*
|
220 |
|
221 |
}
|
222 |
|
223 |
+
/**
|
224 |
+
* Fires after a post has been successfully deleted via the XML-RPC Blogger API.
|
225 |
+
*
|
226 |
+
* @since 2.0.21
|
227 |
+
*
|
228 |
+
* @param int $post_ID ID of the deleted post.
|
229 |
+
* @param array $args An array of arguments to delete the post.
|
230 |
+
*/
|
231 |
+
function on_xmlrpc_deletePost($post_ID, $args) {
|
232 |
+
|
233 |
+
$post = get_post( $post_ID );
|
234 |
+
|
235 |
+
$context = array(
|
236 |
+
"post_id" => $post->ID,
|
237 |
+
"post_type" => get_post_type( $post ),
|
238 |
+
"post_title" => get_the_title( $post )
|
239 |
+
);
|
240 |
+
|
241 |
+
$this->infoMessage( "post_deleted", $context );
|
242 |
+
|
243 |
+
}
|
244 |
+
|
245 |
+
/**
|
246 |
+
* Fires after a post has been successfully updated via the XML-RPC API.
|
247 |
+
*
|
248 |
+
* @since 2.0.21
|
249 |
+
*
|
250 |
+
* @param int $post_ID ID of the updated post.
|
251 |
+
* @param array $args An array of arguments for the post to edit.
|
252 |
+
*/
|
253 |
+
function on_xmlrpc_editPost($post_ID, $args) {
|
254 |
+
|
255 |
+
$post = get_post( $post_ID );
|
256 |
+
|
257 |
+
$context = array(
|
258 |
+
"post_id" => $post->ID,
|
259 |
+
"post_type" => get_post_type( $post ),
|
260 |
+
"post_title" => get_the_title( $post )
|
261 |
+
);
|
262 |
+
|
263 |
+
$this->infoMessage( "post_updated", $context );
|
264 |
+
|
265 |
+
}
|
266 |
+
|
267 |
+
/**
|
268 |
+
* Fires after a new post has been successfully created via the XML-RPC API.
|
269 |
+
*
|
270 |
+
* @since 2.0.21
|
271 |
+
*
|
272 |
+
* @param int $post_ID ID of the new post.
|
273 |
+
* @param array $args An array of new post arguments.
|
274 |
+
*/
|
275 |
+
function on_xmlrpc_newPost($post_ID, $args) {
|
276 |
+
|
277 |
+
$post = get_post( $post_ID );
|
278 |
+
|
279 |
+
$context = array(
|
280 |
+
"post_id" => $post->ID,
|
281 |
+
"post_type" => get_post_type( $post ),
|
282 |
+
"post_title" => get_the_title( $post )
|
283 |
+
);
|
284 |
+
|
285 |
+
$this->infoMessage( "post_created", $context );
|
286 |
+
|
287 |
+
}
|
288 |
+
|
289 |
/**
|
290 |
* Called when a post is restored from the trash
|
291 |
*/
|
292 |
function on_untrash_post($post_id) {
|
293 |
|
294 |
+
$post = get_post( $post_id );
|
295 |
|
296 |
+
$this->infoMessage(
|
297 |
+
"post_restored",
|
298 |
array(
|
299 |
"post_id" => $post_id,
|
300 |
+
"post_type" => get_post_type( $post ),
|
301 |
+
"post_title" => get_the_title( $post )
|
302 |
)
|
303 |
);
|
304 |
|
449 |
|
450 |
} else if ( "post_deleted" == $message_key ) {
|
451 |
|
452 |
+
$message = __('Deleted {post_type} "{post_title}"', 'simple-history');
|
453 |
|
454 |
} else if ( "post_created" == $message_key ) {
|
455 |
|
loggers/SimpleThemeLogger.php
CHANGED
@@ -29,7 +29,7 @@ class SimpleThemeLogger extends SimpleLogger
|
|
29 |
'widget_added' => __('Added widget "{widget_id_base}" to sidebar "{sidebar_id}"', "simple-history"),
|
30 |
'widget_order_changed' => __('Changed widget order "{widget_id_base}" in sidebar "{sidebar_id}"', "simple-history"),
|
31 |
'widget_edited' => __('Changed widget "{widget_id_base}" in sidebar "{sidebar_id}"', "simple-history"),
|
32 |
-
"custom_background_changed" => __("Changed settings for the theme custom background", "
|
33 |
),
|
34 |
"labels" => array(
|
35 |
"search" => array(
|
@@ -605,6 +605,7 @@ return;
|
|
605 |
|
606 |
$context = $row->context;
|
607 |
$message_key = $context["_message_key"];
|
|
|
608 |
$output = "";
|
609 |
|
610 |
// Widget changed or added or removed
|
@@ -616,7 +617,10 @@ return;
|
|
616 |
|
617 |
if ( $widget && $sidebar ) {
|
618 |
|
619 |
-
|
|
|
|
|
|
|
620 |
"widget_id_base" => $widget->name,
|
621 |
"sidebar_id" => $sidebar["name"],
|
622 |
) );
|
@@ -628,9 +632,9 @@ return;
|
|
628 |
|
629 |
}
|
630 |
|
631 |
-
// Fallback to default/parent output
|
632 |
if ( ! $output ) {
|
633 |
-
|
634 |
$output .= parent::getLogRowPlainTextOutput($row);
|
635 |
|
636 |
}
|
29 |
'widget_added' => __('Added widget "{widget_id_base}" to sidebar "{sidebar_id}"', "simple-history"),
|
30 |
'widget_order_changed' => __('Changed widget order "{widget_id_base}" in sidebar "{sidebar_id}"', "simple-history"),
|
31 |
'widget_edited' => __('Changed widget "{widget_id_base}" in sidebar "{sidebar_id}"', "simple-history"),
|
32 |
+
"custom_background_changed" => __("Changed settings for the theme custom background", "simple-history")
|
33 |
),
|
34 |
"labels" => array(
|
35 |
"search" => array(
|
605 |
|
606 |
$context = $row->context;
|
607 |
$message_key = $context["_message_key"];
|
608 |
+
$message = $row->message;
|
609 |
$output = "";
|
610 |
|
611 |
// Widget changed or added or removed
|
617 |
|
618 |
if ( $widget && $sidebar ) {
|
619 |
|
620 |
+
// Translate message first
|
621 |
+
$message = $this->messages[ $message_key ]["translated_text"];
|
622 |
+
|
623 |
+
$message = $this->interpolate( $message, array(
|
624 |
"widget_id_base" => $widget->name,
|
625 |
"sidebar_id" => $sidebar["name"],
|
626 |
) );
|
632 |
|
633 |
}
|
634 |
|
635 |
+
// Fallback to default/parent output if nothing was added to output
|
636 |
if ( ! $output ) {
|
637 |
+
|
638 |
$output .= parent::getLogRowPlainTextOutput($row);
|
639 |
|
640 |
}
|
loggers/SimpleUserLogger.php
CHANGED
@@ -3,8 +3,7 @@
|
|
3 |
/**
|
4 |
* Logs changes to user logins (and logouts)
|
5 |
*/
|
6 |
-
class SimpleUserLogger extends SimpleLogger
|
7 |
-
{
|
8 |
|
9 |
public $slug = __CLASS__;
|
10 |
|
@@ -21,7 +20,7 @@ class SimpleUserLogger extends SimpleLogger
|
|
21 |
"capability" => "edit_users",
|
22 |
"messages" => array(
|
23 |
'user_login_failed' => __('Failed to login to account with username "{login_user_login}" because an incorrect password was entered', "simple-history"),
|
24 |
-
'user_unknown_login_failed' => __('Failed to login with username "{failed_login_username}" because no user with that username
|
25 |
'user_logged_in' => __('Logged in', "simple-history"),
|
26 |
'user_unknown_logged_in' => __("Unknown user logged in", "simple-history"),
|
27 |
'user_logged_out' => __("Logged out", "simple-history"),
|
@@ -33,7 +32,7 @@ class SimpleUserLogger extends SimpleLogger
|
|
33 |
Text used in admin:
|
34 |
Log Out of All Other Sessions
|
35 |
Left your account logged in at a public computer? Lost your phone? This will log you out everywhere except your current browser
|
36 |
-
|
37 |
'user_session_destroy_others' => _x(
|
38 |
'Logged out from all other sessions',
|
39 |
'User destroys other login sessions for themself',
|
@@ -42,7 +41,7 @@ class SimpleUserLogger extends SimpleLogger
|
|
42 |
/*
|
43 |
Text used in admin:
|
44 |
'Log %s out of all sessions' ), $profileuser->display_name );
|
45 |
-
|
46 |
'user_session_destroy_everywhere' => _x(
|
47 |
'Logged out "{user_display_name}" from all sessions',
|
48 |
'User destroys all login sessions for a user',
|
@@ -57,29 +56,29 @@ class SimpleUserLogger extends SimpleLogger
|
|
57 |
"options" => array(
|
58 |
_x("Successful user logins", "User logger: search", "simple-history") => array(
|
59 |
"user_logged_in",
|
60 |
-
"user_unknown_logged_in"
|
61 |
),
|
62 |
_x("Failed user logins", "User logger: search", "simple-history") => array(
|
63 |
'user_login_failed',
|
64 |
-
'user_unknown_login_failed'
|
65 |
),
|
66 |
-
_x('User logouts',
|
67 |
-
"user_logged_out"
|
68 |
),
|
69 |
-
_x('Created users',
|
70 |
-
"user_created"
|
71 |
),
|
72 |
_x("User profile updates", "User logger: search", "simple-history") => array(
|
73 |
-
"user_updated_profile"
|
|
|
|
|
|
|
74 |
),
|
75 |
-
_x('User deletions', 'User logger: search', 'simple-history') => array(
|
76 |
-
"user_deleted"
|
77 |
-
)
|
78 |
|
79 |
-
)
|
80 |
-
) // end search
|
81 |
|
82 |
-
) // end labels
|
83 |
|
84 |
);
|
85 |
#sf_d($arr_info);exit;
|
@@ -93,14 +92,14 @@ class SimpleUserLogger extends SimpleLogger
|
|
93 |
public function loaded() {
|
94 |
|
95 |
// Plain logins and logouts
|
96 |
-
add_action("wp_login", array($this, "on_wp_login"
|
97 |
-
add_action("wp_logout", array($this, "on_wp_logout"
|
98 |
|
99 |
// Failed login attempt to username that exists
|
100 |
add_action("wp_authenticate_user", array($this, "on_wp_authenticate_user"), 10, 2);
|
101 |
|
102 |
// Failed to login to user that did not exist (perhaps brute force)
|
103 |
-
add_filter(
|
104 |
|
105 |
// User is changed
|
106 |
add_action("profile_update", array($this, "on_profile_update"), 10, 2);
|
@@ -109,14 +108,13 @@ class SimpleUserLogger extends SimpleLogger
|
|
109 |
add_action("user_register", array($this, "on_user_register"), 10, 2);
|
110 |
|
111 |
// User is deleted
|
112 |
-
add_action(
|
113 |
|
114 |
// User sessions is destroyed. AJAX call that we hook onto early.
|
115 |
add_action("wp_ajax_destroy-sessions", array($this, "on_destroy_user_session"), 0);
|
116 |
|
117 |
}
|
118 |
|
119 |
-
|
120 |
/**
|
121 |
* Called when user dessions are destroyed from admin
|
122 |
* Can be called for current logged in user = destroy all other sessions
|
@@ -129,31 +127,31 @@ class SimpleUserLogger extends SimpleLogger
|
|
129 |
|
130 |
/*
|
131 |
Post params:
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
|
137 |
-
$user = get_userdata(
|
138 |
|
139 |
-
if (
|
140 |
-
if (
|
141 |
$user = false;
|
142 |
-
} elseif (
|
143 |
$user = false;
|
144 |
}
|
145 |
}
|
146 |
|
147 |
-
if (
|
148 |
// Could not log out user sessions. Please try again.
|
149 |
return;
|
150 |
}
|
151 |
|
152 |
-
$sessions = WP_Session_Tokens::get_instance(
|
153 |
|
154 |
$context = array();
|
155 |
|
156 |
-
if (
|
157 |
|
158 |
$this->infoMessage("user_session_destroy_others");
|
159 |
|
@@ -178,11 +176,11 @@ class SimpleUserLogger extends SimpleLogger
|
|
178 |
*/
|
179 |
public function on_delete_user($user_id, $reassign) {
|
180 |
|
181 |
-
$wp_user_to_delete = get_userdata(
|
182 |
|
183 |
// wp_user->roles (array) - the roles the user is part of.
|
184 |
$role = null;
|
185 |
-
if (
|
186 |
$role = $wp_user_to_delete->roles[0];
|
187 |
}
|
188 |
|
@@ -210,20 +208,20 @@ class SimpleUserLogger extends SimpleLogger
|
|
210 |
$output = parent::getLogRowPlainTextOutput($row);
|
211 |
$current_user_id = get_current_user_id();
|
212 |
|
213 |
-
if (
|
214 |
|
215 |
-
$wp_user = get_user_by(
|
216 |
|
217 |
// If edited_user_id and _user_id is the same then a user edited their own profile
|
218 |
// Note: it's not the same thing as the currently logged in user (but.. it can be!)
|
219 |
-
if (
|
220 |
|
221 |
if ($wp_user) {
|
222 |
|
223 |
-
$context["edit_profile_link"] = get_edit_user_link(
|
224 |
|
225 |
// User still exist, so link to their profile
|
226 |
-
if (
|
227 |
|
228 |
// User that is viewing the log is the same as the edited user
|
229 |
$msg = __('Edited <a href="{edit_profile_link}">your profile</a>', "simple-history");
|
@@ -251,7 +249,7 @@ class SimpleUserLogger extends SimpleLogger
|
|
251 |
// Edited user still exist, so link to their profile
|
252 |
$context["edit_profile_link"] = get_edit_user_link($wp_user->ID);
|
253 |
$msg = __('Edited the profile for user <a href="{edit_profile_link}">{edited_user_login} ({edited_user_email})</a>', "simple-history");
|
254 |
-
$output = $this->interpolate(
|
255 |
|
256 |
} else {
|
257 |
|
@@ -261,58 +259,11 @@ class SimpleUserLogger extends SimpleLogger
|
|
261 |
|
262 |
}
|
263 |
|
264 |
-
}
|
265 |
|
266 |
return $output;
|
267 |
}
|
268 |
|
269 |
-
|
270 |
-
/**
|
271 |
-
* Log failed login attempt to username that exists
|
272 |
-
*
|
273 |
-
* @param object $user user object that was tried to gain access to
|
274 |
-
* @param string password used
|
275 |
-
*/
|
276 |
-
function on_wp_authenticate_user($user, $password) {
|
277 |
-
|
278 |
-
// Only log failed attempts
|
279 |
-
if ( ! wp_check_password($password, $user->user_pass, $user->ID) ) {
|
280 |
-
|
281 |
-
// Overwrite some vars that Simple History set automagically
|
282 |
-
$context = array(
|
283 |
-
"_initiator" => SimpleLoggerLogInitiators::WEB_USER,
|
284 |
-
"_user_id" => null,
|
285 |
-
"_user_login" => null,
|
286 |
-
"_user_email" => null,
|
287 |
-
"login_user_id" => $user->ID,
|
288 |
-
"login_user_email" => $user->user_email,
|
289 |
-
"login_user_login" => $user->user_login,
|
290 |
-
"server_http_user_agent" => $_SERVER["HTTP_USER_AGENT"],
|
291 |
-
"_occasionsID" => __CLASS__ . '/' . __FUNCTION__ . "/failed_user_login/userid:{$user->ID}"
|
292 |
-
);
|
293 |
-
|
294 |
-
/**
|
295 |
-
* Maybe store password too
|
296 |
-
* Default is to not do this because of privacy and security
|
297 |
-
*
|
298 |
-
* @since 2.0
|
299 |
-
*
|
300 |
-
* @param bool $log_password
|
301 |
-
*/
|
302 |
-
$log_password = false;
|
303 |
-
$log_password = apply_filters("simple_history/comments_logger/log_failed_password", $log_password);
|
304 |
-
if ($log_password) {
|
305 |
-
$context["login_user_password"] = $password;
|
306 |
-
}
|
307 |
-
|
308 |
-
$this->warningMessage("user_login_failed", $context);
|
309 |
-
|
310 |
-
}
|
311 |
-
|
312 |
-
return $user;
|
313 |
-
|
314 |
-
}
|
315 |
-
|
316 |
/**
|
317 |
* User logs in
|
318 |
*
|
@@ -321,34 +272,44 @@ class SimpleUserLogger extends SimpleLogger
|
|
321 |
*/
|
322 |
function on_wp_login($user_login, $user) {
|
323 |
|
324 |
-
$context = array(
|
|
|
|
|
|
|
|
|
325 |
|
326 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
327 |
|
328 |
$context = array(
|
329 |
-
"user_id" => $
|
330 |
-
"user_email" => $
|
331 |
-
"user_login" => $
|
332 |
);
|
333 |
|
334 |
// Override some data that is usually set automagically by Simple History
|
335 |
// Because wp_get_current_user() does not return any data yet at this point
|
336 |
$context["_initiator"] = SimpleLoggerLogInitiators::WP_USER;
|
337 |
-
$context["_user_id"] = $
|
338 |
-
$context["_user_login"] = $
|
339 |
-
$context["_user_email"] = $
|
340 |
$context["server_http_user_agent"] = $_SERVER["HTTP_USER_AGENT"];
|
341 |
|
342 |
$this->infoMessage("user_logged_in", $context);
|
343 |
|
344 |
} else {
|
345 |
|
346 |
-
//
|
347 |
-
$this->warningMessage("user_unknown_logged_in", $context
|
348 |
-
|
349 |
-
|
350 |
}
|
351 |
-
|
352 |
}
|
353 |
|
354 |
/**
|
@@ -366,10 +327,11 @@ class SimpleUserLogger extends SimpleLogger
|
|
366 |
*/
|
367 |
function on_profile_update($user_id) {
|
368 |
|
369 |
-
if (
|
370 |
return;
|
|
|
371 |
|
372 |
-
$wp_user_edited = get_userdata(
|
373 |
|
374 |
$context = array(
|
375 |
"edited_user_id" => $wp_user_edited->ID,
|
@@ -387,14 +349,15 @@ class SimpleUserLogger extends SimpleLogger
|
|
387 |
*/
|
388 |
function on_user_register($user_id) {
|
389 |
|
390 |
-
if (
|
391 |
return;
|
|
|
392 |
|
393 |
-
$wp_user_added = get_userdata(
|
394 |
|
395 |
// wp_user->roles (array) - the roles the user is part of.
|
396 |
$role = null;
|
397 |
-
if (
|
398 |
$role = $wp_user_added->roles[0];
|
399 |
}
|
400 |
|
@@ -410,19 +373,66 @@ class SimpleUserLogger extends SimpleLogger
|
|
410 |
|
411 |
}
|
412 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
413 |
/**
|
414 |
* Attempt to login to user that does not exist
|
415 |
*/
|
416 |
function on_authenticate($user, $username, $password) {
|
417 |
|
418 |
// Don't log empty usernames
|
419 |
-
if (
|
420 |
return $user;
|
421 |
}
|
422 |
|
423 |
// If username is not a user in the system then this
|
424 |
// is consideraded a failed login attempt
|
425 |
-
$wp_user = get_user_by(
|
426 |
|
427 |
if (false === $wp_user) {
|
428 |
|
@@ -432,7 +442,11 @@ class SimpleUserLogger extends SimpleLogger
|
|
432 |
"server_http_user_agent" => $_SERVER["HTTP_USER_AGENT"],
|
433 |
// count all failed logins to unknown users as the same occasions,
|
434 |
// to prevent log being flooded with login/hack attempts
|
435 |
-
"_occasionsID" => __CLASS__ . '/' . __FUNCTION__
|
|
|
|
|
|
|
|
|
436 |
);
|
437 |
|
438 |
/**
|
@@ -455,7 +469,6 @@ class SimpleUserLogger extends SimpleLogger
|
|
455 |
|
456 |
return $user;
|
457 |
|
458 |
-
|
459 |
}
|
460 |
|
461 |
}
|
3 |
/**
|
4 |
* Logs changes to user logins (and logouts)
|
5 |
*/
|
6 |
+
class SimpleUserLogger extends SimpleLogger {
|
|
|
7 |
|
8 |
public $slug = __CLASS__;
|
9 |
|
20 |
"capability" => "edit_users",
|
21 |
"messages" => array(
|
22 |
'user_login_failed' => __('Failed to login to account with username "{login_user_login}" because an incorrect password was entered', "simple-history"),
|
23 |
+
'user_unknown_login_failed' => __('Failed to login with username "{failed_login_username}" because no user with that username exists', "simple-history"),
|
24 |
'user_logged_in' => __('Logged in', "simple-history"),
|
25 |
'user_unknown_logged_in' => __("Unknown user logged in", "simple-history"),
|
26 |
'user_logged_out' => __("Logged out", "simple-history"),
|
32 |
Text used in admin:
|
33 |
Log Out of All Other Sessions
|
34 |
Left your account logged in at a public computer? Lost your phone? This will log you out everywhere except your current browser
|
35 |
+
*/
|
36 |
'user_session_destroy_others' => _x(
|
37 |
'Logged out from all other sessions',
|
38 |
'User destroys other login sessions for themself',
|
41 |
/*
|
42 |
Text used in admin:
|
43 |
'Log %s out of all sessions' ), $profileuser->display_name );
|
44 |
+
*/
|
45 |
'user_session_destroy_everywhere' => _x(
|
46 |
'Logged out "{user_display_name}" from all sessions',
|
47 |
'User destroys all login sessions for a user',
|
56 |
"options" => array(
|
57 |
_x("Successful user logins", "User logger: search", "simple-history") => array(
|
58 |
"user_logged_in",
|
59 |
+
"user_unknown_logged_in",
|
60 |
),
|
61 |
_x("Failed user logins", "User logger: search", "simple-history") => array(
|
62 |
'user_login_failed',
|
63 |
+
'user_unknown_login_failed',
|
64 |
),
|
65 |
+
_x('User logouts', 'User logger: search', 'simple-history') => array(
|
66 |
+
"user_logged_out",
|
67 |
),
|
68 |
+
_x('Created users', 'User logger: search', 'simple-history') => array(
|
69 |
+
"user_created",
|
70 |
),
|
71 |
_x("User profile updates", "User logger: search", "simple-history") => array(
|
72 |
+
"user_updated_profile",
|
73 |
+
),
|
74 |
+
_x('User deletions', 'User logger: search', 'simple-history') => array(
|
75 |
+
"user_deleted",
|
76 |
),
|
|
|
|
|
|
|
77 |
|
78 |
+
),
|
79 |
+
), // end search
|
80 |
|
81 |
+
), // end labels
|
82 |
|
83 |
);
|
84 |
#sf_d($arr_info);exit;
|
92 |
public function loaded() {
|
93 |
|
94 |
// Plain logins and logouts
|
95 |
+
add_action("wp_login", array($this, "on_wp_login"), 10, 3);
|
96 |
+
add_action("wp_logout", array($this, "on_wp_logout"));
|
97 |
|
98 |
// Failed login attempt to username that exists
|
99 |
add_action("wp_authenticate_user", array($this, "on_wp_authenticate_user"), 10, 2);
|
100 |
|
101 |
// Failed to login to user that did not exist (perhaps brute force)
|
102 |
+
add_filter('authenticate', array($this, "on_authenticate"), 10, 3);
|
103 |
|
104 |
// User is changed
|
105 |
add_action("profile_update", array($this, "on_profile_update"), 10, 2);
|
108 |
add_action("user_register", array($this, "on_user_register"), 10, 2);
|
109 |
|
110 |
// User is deleted
|
111 |
+
add_action('delete_user', array($this, "on_delete_user"), 10, 2);
|
112 |
|
113 |
// User sessions is destroyed. AJAX call that we hook onto early.
|
114 |
add_action("wp_ajax_destroy-sessions", array($this, "on_destroy_user_session"), 0);
|
115 |
|
116 |
}
|
117 |
|
|
|
118 |
/**
|
119 |
* Called when user dessions are destroyed from admin
|
120 |
* Can be called for current logged in user = destroy all other sessions
|
127 |
|
128 |
/*
|
129 |
Post params:
|
130 |
+
nonce: a14df12195
|
131 |
+
user_id: 1
|
132 |
+
action: destroy-sessions
|
133 |
+
*/
|
134 |
|
135 |
+
$user = get_userdata((int) $_POST['user_id']);
|
136 |
|
137 |
+
if ($user) {
|
138 |
+
if (!current_user_can('edit_user', $user->ID)) {
|
139 |
$user = false;
|
140 |
+
} elseif (!wp_verify_nonce($_POST['nonce'], 'update-user_' . $user->ID)) {
|
141 |
$user = false;
|
142 |
}
|
143 |
}
|
144 |
|
145 |
+
if (!$user) {
|
146 |
// Could not log out user sessions. Please try again.
|
147 |
return;
|
148 |
}
|
149 |
|
150 |
+
$sessions = WP_Session_Tokens::get_instance($user->ID);
|
151 |
|
152 |
$context = array();
|
153 |
|
154 |
+
if ($user->ID === get_current_user_id()) {
|
155 |
|
156 |
$this->infoMessage("user_session_destroy_others");
|
157 |
|
176 |
*/
|
177 |
public function on_delete_user($user_id, $reassign) {
|
178 |
|
179 |
+
$wp_user_to_delete = get_userdata($user_id);
|
180 |
|
181 |
// wp_user->roles (array) - the roles the user is part of.
|
182 |
$role = null;
|
183 |
+
if (is_array($wp_user_to_delete->roles) && !empty($wp_user_to_delete->roles[0])) {
|
184 |
$role = $wp_user_to_delete->roles[0];
|
185 |
}
|
186 |
|
208 |
$output = parent::getLogRowPlainTextOutput($row);
|
209 |
$current_user_id = get_current_user_id();
|
210 |
|
211 |
+
if ("user_updated_profile" == $context["_message_key"]) {
|
212 |
|
213 |
+
$wp_user = get_user_by("id", $context["edited_user_id"]);
|
214 |
|
215 |
// If edited_user_id and _user_id is the same then a user edited their own profile
|
216 |
// Note: it's not the same thing as the currently logged in user (but.. it can be!)
|
217 |
+
if ($context["edited_user_id"] === $context["_user_id"]) {
|
218 |
|
219 |
if ($wp_user) {
|
220 |
|
221 |
+
$context["edit_profile_link"] = get_edit_user_link($wp_user->ID);
|
222 |
|
223 |
// User still exist, so link to their profile
|
224 |
+
if ($current_user_id === $context["_user_id"]) {
|
225 |
|
226 |
// User that is viewing the log is the same as the edited user
|
227 |
$msg = __('Edited <a href="{edit_profile_link}">your profile</a>', "simple-history");
|
249 |
// Edited user still exist, so link to their profile
|
250 |
$context["edit_profile_link"] = get_edit_user_link($wp_user->ID);
|
251 |
$msg = __('Edited the profile for user <a href="{edit_profile_link}">{edited_user_login} ({edited_user_email})</a>', "simple-history");
|
252 |
+
$output = $this->interpolate($msg, $context);
|
253 |
|
254 |
} else {
|
255 |
|
259 |
|
260 |
}
|
261 |
|
262 |
+
}// if user_updated_profile
|
263 |
|
264 |
return $output;
|
265 |
}
|
266 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
267 |
/**
|
268 |
* User logs in
|
269 |
*
|
272 |
*/
|
273 |
function on_wp_login($user_login, $user) {
|
274 |
|
275 |
+
$context = array(
|
276 |
+
"user_login" => $user_login
|
277 |
+
);
|
278 |
+
|
279 |
+
if ( isset( $user_login ) ) {
|
280 |
|
281 |
+
$user_obj = get_user_by( "login", $user_login );
|
282 |
+
|
283 |
+
} else if ( isset( $user ) && isset( $user->ID ) ) {
|
284 |
+
|
285 |
+
$user_obj = get_user_by( "id", $user->ID );
|
286 |
+
|
287 |
+
}
|
288 |
+
|
289 |
+
if ( is_a( $user_obj, "WP_User" ) ) {
|
290 |
|
291 |
$context = array(
|
292 |
+
"user_id" => $user_obj->ID,
|
293 |
+
"user_email" => $user_obj->user_email,
|
294 |
+
"user_login" => $user_obj->user_login,
|
295 |
);
|
296 |
|
297 |
// Override some data that is usually set automagically by Simple History
|
298 |
// Because wp_get_current_user() does not return any data yet at this point
|
299 |
$context["_initiator"] = SimpleLoggerLogInitiators::WP_USER;
|
300 |
+
$context["_user_id"] = $user_obj->ID;
|
301 |
+
$context["_user_login"] = $user_obj->user_login;
|
302 |
+
$context["_user_email"] = $user_obj->user_email;
|
303 |
$context["server_http_user_agent"] = $_SERVER["HTTP_USER_AGENT"];
|
304 |
|
305 |
$this->infoMessage("user_logged_in", $context);
|
306 |
|
307 |
} else {
|
308 |
|
309 |
+
// Could not get any info about the user logging in
|
310 |
+
$this->warningMessage("user_unknown_logged_in", $context);
|
|
|
|
|
311 |
}
|
312 |
+
|
313 |
}
|
314 |
|
315 |
/**
|
327 |
*/
|
328 |
function on_profile_update($user_id) {
|
329 |
|
330 |
+
if (!$user_id || !is_numeric($user_id)) {
|
331 |
return;
|
332 |
+
}
|
333 |
|
334 |
+
$wp_user_edited = get_userdata($user_id);
|
335 |
|
336 |
$context = array(
|
337 |
"edited_user_id" => $wp_user_edited->ID,
|
349 |
*/
|
350 |
function on_user_register($user_id) {
|
351 |
|
352 |
+
if (!$user_id || !is_numeric($user_id)) {
|
353 |
return;
|
354 |
+
}
|
355 |
|
356 |
+
$wp_user_added = get_userdata($user_id);
|
357 |
|
358 |
// wp_user->roles (array) - the roles the user is part of.
|
359 |
$role = null;
|
360 |
+
if (is_array($wp_user_added->roles) && !empty($wp_user_added->roles[0])) {
|
361 |
$role = $wp_user_added->roles[0];
|
362 |
}
|
363 |
|
373 |
|
374 |
}
|
375 |
|
376 |
+
/**
|
377 |
+
* Log failed login attempt to username that exists
|
378 |
+
*
|
379 |
+
* @param object $user user object that was tried to gain access to
|
380 |
+
* @param string password used
|
381 |
+
*/
|
382 |
+
function on_wp_authenticate_user($user, $password) {
|
383 |
+
|
384 |
+
// Only log failed attempts
|
385 |
+
if (!wp_check_password($password, $user->user_pass, $user->ID)) {
|
386 |
+
|
387 |
+
// Overwrite some vars that Simple History set automagically
|
388 |
+
$context = array(
|
389 |
+
"_initiator" => SimpleLoggerLogInitiators::WEB_USER,
|
390 |
+
"_user_id" => null,
|
391 |
+
"_user_login" => null,
|
392 |
+
"_user_email" => null,
|
393 |
+
"login_user_id" => $user->ID,
|
394 |
+
"login_user_email" => $user->user_email,
|
395 |
+
"login_user_login" => $user->user_login,
|
396 |
+
"server_http_user_agent" => $_SERVER["HTTP_USER_AGENT"],
|
397 |
+
//"_occasionsID" => __CLASS__ . '/' . __FUNCTION__ . "/failed_user_login/userid:{$user->ID}"
|
398 |
+
"_occasionsID" => __CLASS__ . '/failed_user_login',
|
399 |
+
);
|
400 |
+
|
401 |
+
/**
|
402 |
+
* Maybe store password too
|
403 |
+
* Default is to not do this because of privacy and security
|
404 |
+
*
|
405 |
+
* @since 2.0
|
406 |
+
*
|
407 |
+
* @param bool $log_password
|
408 |
+
*/
|
409 |
+
$log_password = false;
|
410 |
+
$log_password = apply_filters("simple_history/comments_logger/log_failed_password", $log_password);
|
411 |
+
if ($log_password) {
|
412 |
+
$context["login_user_password"] = $password;
|
413 |
+
}
|
414 |
+
|
415 |
+
$this->warningMessage("user_login_failed", $context);
|
416 |
+
|
417 |
+
}
|
418 |
+
|
419 |
+
return $user;
|
420 |
+
|
421 |
+
}
|
422 |
+
|
423 |
/**
|
424 |
* Attempt to login to user that does not exist
|
425 |
*/
|
426 |
function on_authenticate($user, $username, $password) {
|
427 |
|
428 |
// Don't log empty usernames
|
429 |
+
if (!trim($username)) {
|
430 |
return $user;
|
431 |
}
|
432 |
|
433 |
// If username is not a user in the system then this
|
434 |
// is consideraded a failed login attempt
|
435 |
+
$wp_user = get_user_by("login", $username);
|
436 |
|
437 |
if (false === $wp_user) {
|
438 |
|
442 |
"server_http_user_agent" => $_SERVER["HTTP_USER_AGENT"],
|
443 |
// count all failed logins to unknown users as the same occasions,
|
444 |
// to prevent log being flooded with login/hack attempts
|
445 |
+
// "_occasionsID" => __CLASS__ . '/' . __FUNCTION__
|
446 |
+
// Use same occasionsID as for failed login attempts to existing users,
|
447 |
+
// because log can flood otherwise if hacker is rotating existing and non-existing usernames
|
448 |
+
//"_occasionsID" => __CLASS__ . '/' . __FUNCTION__ . "/failed_user_login/userid:{$user->ID}"
|
449 |
+
"_occasionsID" => __CLASS__ . '/failed_user_login',
|
450 |
);
|
451 |
|
452 |
/**
|
469 |
|
470 |
return $user;
|
471 |
|
|
|
472 |
}
|
473 |
|
474 |
}
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Donate link: http://eskapism.se/sida/donate/
|
|
4 |
Tags: history, log, changes, changelog, audit, trail, pages, attachments, users, cms, dashboard, admin, syslog, feed, activity, stream
|
5 |
Requires at least: 3.6.0
|
6 |
Tested up to: 4.1
|
7 |
-
Stable tag: 2.0.
|
8 |
|
9 |
View changes made by users within WordPress. See who created a page, uploaded an attachment or approved an comment, and more.
|
10 |
|
@@ -76,9 +76,15 @@ if ( function_exists("SimpleLogger") ) {
|
|
76 |
|
77 |
#### Translations/Languages
|
78 |
|
79 |
-
|
80 |
|
81 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
|
83 |
#### Contribute at GitHub
|
84 |
|
@@ -101,12 +107,120 @@ initiated by a specific user.
|
|
101 |
|
102 |
3. Events have context with extra details - Each logged event can include useful rich formatted extra information. For example: a plugin install can contain author info and a the url to the plugin, and an uploaded image can contain a thumbnail of the image.
|
103 |
|
|
|
104 |
|
105 |
== Changelog ==
|
106 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
= 2.0.6 (November 2014) =
|
108 |
|
109 |
-
- Added: [WordPress 4.1 added the feature to log out a user from all their sessions](http://codex.wordpress.org/Version_4.1#Users). Simple History now logs when a user is logged out from all their sessions except the current browser, or if an admin destroys all sessions for a user. [View screenshot of new session logout log item](
|
110 |
|
111 |
- Added: filter to shortcut loading of a dropin. Example that completely skips loading the RSS-feed-dropin:
|
112 |
`add_filter("simple_history/dropin/load_dropin_SimpleHistoryRSSDropin", "__return_false");`
|
@@ -150,6 +264,25 @@ I've spend hundreds of hours making this update, so if you use it and like it pl
|
|
150 |
- Users see different logs depending on their capability, for example an administrator will see what plugins have been installed, but an editor will not see any plugin related logs
|
151 |
- Much much more.
|
152 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
153 |
= 1.3.6 =
|
154 |
- Added Polish translation
|
155 |
- Added correct XML encoding and header
|
4 |
Tags: history, log, changes, changelog, audit, trail, pages, attachments, users, cms, dashboard, admin, syslog, feed, activity, stream
|
5 |
Requires at least: 3.6.0
|
6 |
Tested up to: 4.1
|
7 |
+
Stable tag: 2.0.22
|
8 |
|
9 |
View changes made by users within WordPress. See who created a page, uploaded an attachment or approved an comment, and more.
|
10 |
|
76 |
|
77 |
#### Translations/Languages
|
78 |
|
79 |
+
So far Simple History is translated to:
|
80 |
|
81 |
+
* Swedish
|
82 |
+
* German
|
83 |
+
* Polish
|
84 |
+
* Danish
|
85 |
+
* Dutch
|
86 |
+
|
87 |
+
I'm looking for translations of Simple History in more languages! If you're interested please check out the [localization](https://developer.wordpress.org/plugins/internationalization/localization/) part of the Plugin Handbook for info on how to translate plugins. When you're done with your translation email it to me at par.thernstrom@gmail.com, or [add a pull request](https://github.com/bonny/WordPress-Simple-History/).
|
88 |
|
89 |
#### Contribute at GitHub
|
90 |
|
107 |
|
108 |
3. Events have context with extra details - Each logged event can include useful rich formatted extra information. For example: a plugin install can contain author info and a the url to the plugin, and an uploaded image can contain a thumbnail of the image.
|
109 |
|
110 |
+
4. Click on the IP address of an entry to view the location of for example a failed login attempt.
|
111 |
|
112 |
== Changelog ==
|
113 |
|
114 |
+
= 2.0.22 (February 2015) =
|
115 |
+
|
116 |
+
- Fixed: Deleted plugins were not logged correctly (name and other info was missing).
|
117 |
+
- Added: Filter `simple_history/logger/load_logger` and `simple_history/dropin/load_dropin` that can be used to control the loading of each logger or dropin. See [example file](https://github.com/bonny/WordPress-Simple-History/blob/master/examples.php) for usage examples.
|
118 |
+
- Fixed: modal window with context data now works better on small screens.
|
119 |
+
- Changed: Misc internal changes.
|
120 |
+
|
121 |
+
= 2.0.21 (February 2015) =
|
122 |
+
|
123 |
+
- Added: Updates via XML RPC are now logged, for example when using the WordPress app for iOS or Android. Supported actions for now is post/page created, edited, deleted, and media uploads.
|
124 |
+
- Added: `_xmlrpc_request` is added to context of event when an event is initiated through a XML-RPC all.
|
125 |
+
- Changed: RSS feed now has loglevel of event prepended to the title.
|
126 |
+
- Changed: Options logger now only shows the first 250 chars of new and old option values. Really long values could make the log look strange.
|
127 |
+
- Added: If constant SIMPLE_HISTORY_LOG_DEBUG is defined and true automatically adds $_GET, $_POST, and more info to each logged event. Mostly useful for the developer, but maybe some of you are a bit paranoid and want it too.
|
128 |
+
- Updated: German translation updated.
|
129 |
+
|
130 |
+
= 2.0.20 (February 2015) =
|
131 |
+
|
132 |
+
- Added: changes via [WP-CLI](http://wp-cli.org) is now detected (was previously shown as "other").
|
133 |
+
- Added: severity level (info, warning, debug, etc.) of event is includes in the RSS output.
|
134 |
+
- Changed the way user login is logged. Should fix https://github.com/bonny/WordPress-Simple-History/issues/40 + possible more related issues.
|
135 |
+
- Added: filter `simple_history/simple_logger/log_message_key` added, that can be used to shortcut log messages. See [example file](https://github.com/bonny/WordPress-Simple-History/blob/master/examples.php) for usage. Fixes https://wordpress.org/support/topic/stop-logging-certain-types-of-activity.
|
136 |
+
- Added: now uses object caching at some places. Should speed up some parts of the plugin for users with caching enabled.
|
137 |
+
- Fixed: IP info popup can now be closed with `esc`.
|
138 |
+
- Fixed: works better on small screens (like mobile phones) + misc other style related fixes.
|
139 |
+
|
140 |
+
= 2.0.19 (February 2015) =
|
141 |
+
|
142 |
+
- Added: Dutch translation by [https://github.com/niknetniko](https://github.com/niknetniko). Thanks!
|
143 |
+
- Changed: better compatibilty with plugins like [WP User Avatar](https://wordpress.org/plugins/wp-user-avatar/).
|
144 |
+
- Updated: German translation update.
|
145 |
+
|
146 |
+
= 2.0.18 (January 2015) =
|
147 |
+
|
148 |
+
- Fixed: really correctly show the version number of the previous version!
|
149 |
+
|
150 |
+
= 2.0.17 (January 2015) =
|
151 |
+
|
152 |
+
- Added: messages added using for example `SimpleLogger()->info( __("My log message") )` that have translations now auto translated the message back to english before storing the message (together with the text domain). Then upon retrieval it uses the english message + the text domain to translate the message to the currently selected language. This makes it easier to make multilingual log entries. (Yeah, I know its hard to understand what the heck this does, but it's something good and cool, trust me!)
|
153 |
+
- Added: A sidebar with text contents on the history page.
|
154 |
+
- Changed: Search now shows only the search box by default, with a link to show all search options.
|
155 |
+
- Fixed: Search is now available at the dashboard again. Hooray!
|
156 |
+
- Fixed: Old entries were not cleared automatically. Now it correctly removes old events, so your database will not risk growing to large.
|
157 |
+
- Fixed: Quick stats could show two messages sometimes.
|
158 |
+
- Fixed: When headers like `HTTP_X_FORWARDED_FOR` exists all valid IPs in that header is now stored.
|
159 |
+
- Fixed: Plugin updates via third party software like [InfiniteWP](http://infinitewp.com/) should now correctly show the version number of the previous version.
|
160 |
+
- Updated: German translation updated.
|
161 |
+
- Notice: Do you read these messages? Then you must love this plugin! Come on then, [go and give it a nice review](https://wordpress.org/support/view/plugin-reviews/simple-history).
|
162 |
+
|
163 |
+
= 2.0.16 (January 2015) =
|
164 |
+
|
165 |
+
- Fixed: Use the [X-Forwarded-For header](http://en.wikipedia.org/wiki/X-Forwarded-For), if it is set, to determine remote IP address. Should now correctly store IP addresses for servers behind load balancers or for clients going through proxies. Fixes https://wordpress.org/support/topic/use-x-forwarded-for-http-header-when-logging-remote_addr.
|
166 |
+
- Changed: Failed login attempts from unknown and known users are now grouped together. This change was made because a hacker could make many login attempts to a site and rotate the logins, so they would try with both existing and non existing user names, which would make the log flood with failed login attempts.
|
167 |
+
- Changed: use "n similar events" instead of "n more", to more cleary mark that the grouped events are not necessary exactly the same kind.
|
168 |
+
- Changed: Quick stats text changed, to also include other sources. Previous behavior was to only include events from WordPress users, but now also events from anonymous users and WordPress (like from WP-Cron) are included.
|
169 |
+
|
170 |
+
= 2.0.15 (January 2015) =
|
171 |
+
|
172 |
+
- Fixed: Widget changes where not always translated.
|
173 |
+
- Fixed: More RSS fixes to make feed valid. Maybe even for real this time.
|
174 |
+
- Updated: German translation updated.
|
175 |
+
|
176 |
+
= 2.0.14 (January 2015) =
|
177 |
+
|
178 |
+
- Added: Danish translation added. Thanks [ThomasDK81](https://github.com/ThomasDK81)!
|
179 |
+
- Misc translation fixes, for example the log levels where not translateable (it may be a good idea to keep the original English ones however because they are the ones that are common in other software).
|
180 |
+
|
181 |
+
= 2.0.13 (January 2015) =
|
182 |
+
|
183 |
+
- Fixed: RSS feed is now valid according to http://validator.w3.org/. Fixes https://wordpress.org/support/topic/a-feed-which-was-valid-under-v206-is-no-longer-under-v209-latest.
|
184 |
+
- Translation fixes. Thanks [ThomasDK81](https://github.com/ThomasDK81)!
|
185 |
+
|
186 |
+
= 2.0.12 (January 2015) =
|
187 |
+
|
188 |
+
- Fixed: Deleted attachments did not get translations.
|
189 |
+
- Fixed: A notice when showing details for a deleted attachment.
|
190 |
+
|
191 |
+
= 2.0.11 (January 2015) =
|
192 |
+
|
193 |
+
- Fixed: Comments where not logged correctly.
|
194 |
+
- Fixed: Comments where not translated correctly.
|
195 |
+
- Updated: German translation updated.
|
196 |
+
|
197 |
+
= 2.0.10 (January 2015) =
|
198 |
+
|
199 |
+
- Updated: Polish translation updated. Thanks [https://github.com/m-czardybon](m-czardybon)!
|
200 |
+
- Updated: German translation updated. Thanks [http://klein-aber-fein.de/](Ralph)!
|
201 |
+
- Updated: Swedish translation updated.
|
202 |
+
|
203 |
+
= 2.0.9 (December 2014) =
|
204 |
+
|
205 |
+
- Actually enable IP address lookup for all users. Sorry for missing to do that! ;)
|
206 |
+
|
207 |
+
= 2.0.8 (December 2014) =
|
208 |
+
|
209 |
+
- Added: IP addresses can now be clicked to view IP address info from [ipinfo.io](http://ipinfo.io). This will get you the location and network of an IP address and help you determine from where for example a failed login attempt originates from. [See screenshot of IP address info in action](http://glui.me/?d=y89nbgmvmfnxl4r/ip%20address%20information%20popup.png/).
|
210 |
+
- Added: new action `simple_history/admin_footer`, to output HTML and JavaScript in footer on pages that belong to Simple History
|
211 |
+
- Added: new trigger for JavaScript: `SimpleHistory:logReloadStart`. Fired when the log starts to reload, like when using the pagination or using the filter function.
|
212 |
+
- Fixed: use Mustache-inspired template tags instead of Underscore default ones, because they don't work with PHP with asp_tags on.
|
213 |
+
- Updated: Swedish translation updated
|
214 |
+
|
215 |
+
= 2.0.7 (December 2014) =
|
216 |
+
|
217 |
+
- Fix: no message when restoring page from trash
|
218 |
+
- Fix: use correct width for media attachment
|
219 |
+
- Add: filter `simple_history/logrowhtmloutput/classes`, to modify HTML classes added to each log row item
|
220 |
+
|
221 |
= 2.0.6 (November 2014) =
|
222 |
|
223 |
+
- Added: [WordPress 4.1 added the feature to log out a user from all their sessions](http://codex.wordpress.org/Version_4.1#Users). Simple History now logs when a user is logged out from all their sessions except the current browser, or if an admin destroys all sessions for a user. [View screenshot of new session logout log item](https://dl.dropboxusercontent.com/s/k4cmfmncekmfiib/2014-12-simple-history-changelog-user-sessions.png)
|
224 |
|
225 |
- Added: filter to shortcut loading of a dropin. Example that completely skips loading the RSS-feed-dropin:
|
226 |
`add_filter("simple_history/dropin/load_dropin_SimpleHistoryRSSDropin", "__return_false");`
|
264 |
- Users see different logs depending on their capability, for example an administrator will see what plugins have been installed, but an editor will not see any plugin related logs
|
265 |
- Much much more.
|
266 |
|
267 |
+
= 1.3.11 =
|
268 |
+
- Don't use deprecated function get_commentdata(). Fixes https://wordpress.org/support/topic/get_commentdata-function-is-deprecated.
|
269 |
+
- Don't use mysql_query() directly. Fixes https://wordpress.org/support/topic/deprecated-mysql-warning.
|
270 |
+
- Beta testers wanted! I'm working on the next version of Simple History and now I need some beta testers. If you want to try out the shiny new and cool version please download the [v2 branch](https://github.com/bonny/WordPress-Simple-History/tree/v2) over at GitHub. Thanks!
|
271 |
+
|
272 |
+
= 1.3.10 =
|
273 |
+
- Fix: correct usage of "its"
|
274 |
+
- Fix: removed serif font in log. Fixes https://wordpress.org/support/topic/two-irritations-and-pleas-for-change.
|
275 |
+
|
276 |
+
= 1.3.9 =
|
277 |
+
- Fixed strict standards warning
|
278 |
+
- Tested on WordPress 4.0
|
279 |
+
|
280 |
+
= 1.3.8 =
|
281 |
+
- Added filter for rss feed: `simple_history/rss_feed_show`. Fixes more things in this thread: http://wordpress.org/support/topic/more-rss-feed-items.
|
282 |
+
|
283 |
+
= 1.3.7 =
|
284 |
+
- Added filter for rss feed: `simple_history/rss_feed_args`. Fixes http://wordpress.org/support/topic/more-rss-feed-items.
|
285 |
+
|
286 |
= 1.3.6 =
|
287 |
- Added Polish translation
|
288 |
- Added correct XML encoding and header
|
screenshot-1.png
DELETED
Binary file
|
screenshot-2.png
DELETED
Binary file
|
screenshot-3.png
DELETED
Binary file
|
templates/settings-statsForGeeks.php
CHANGED
@@ -100,9 +100,9 @@ echo "<p class='hide-if-no-js'><button class='button js-SimpleHistoryShowsStatsF
|
|
100 |
echo "
|
101 |
<thead>
|
102 |
<tr>
|
103 |
-
<th>Slug</th>
|
104 |
-
<th>Name</th>
|
105 |
<th>Description</th>
|
|
|
106 |
<th>Capability</th>
|
107 |
<th>Rows count</th>
|
108 |
</tr>
|
@@ -143,23 +143,36 @@ echo "<p class='hide-if-no-js'><button class='button js-SimpleHistoryShowsStatsF
|
|
143 |
}
|
144 |
|
145 |
$logger_info = $logger->getInfo();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
|
147 |
printf(
|
148 |
'
|
149 |
<tr class="%6$s">
|
150 |
-
<td
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
<td>%
|
|
|
|
|
|
|
155 |
</tr>
|
156 |
',
|
157 |
$one_logger_count->count,
|
158 |
$one_logger_slug,
|
159 |
esc_html( $logger_info["name"]),
|
160 |
-
esc_html( $logger_info["description"]),
|
161 |
esc_html( $logger_info["capability"]),
|
162 |
-
$loopnum % 2 ? " alt " : "" // 6
|
|
|
163 |
);
|
164 |
|
165 |
$loopnum++;
|
100 |
echo "
|
101 |
<thead>
|
102 |
<tr>
|
103 |
+
<th>Name + Slug</th>
|
|
|
104 |
<th>Description</th>
|
105 |
+
<th>Messages</th>
|
106 |
<th>Capability</th>
|
107 |
<th>Rows count</th>
|
108 |
</tr>
|
143 |
}
|
144 |
|
145 |
$logger_info = $logger->getInfo();
|
146 |
+
$logger_messages = $logger_info["messages"];
|
147 |
+
|
148 |
+
$html_logger_messages = "";
|
149 |
+
foreach ($logger_messages as $message_key => $message) {
|
150 |
+
$html_logger_messages .= sprintf('<li>%1$s</li>', esc_html($message));
|
151 |
+
}
|
152 |
+
if ($html_logger_messages) {
|
153 |
+
$html_logger_messages = "<ul>{$html_logger_messages}</ul>";
|
154 |
+
}
|
155 |
|
156 |
printf(
|
157 |
'
|
158 |
<tr class="%6$s">
|
159 |
+
<td>
|
160 |
+
<p><strong>%3$s</strong>
|
161 |
+
<br><code>%2$s</code></p>
|
162 |
+
</td>
|
163 |
+
<td><p>%4$s</p></td>
|
164 |
+
<td>%7$s</td>
|
165 |
+
<td><p>%5$s</p></td>
|
166 |
+
<td><p>%1$s</p></td>
|
167 |
</tr>
|
168 |
',
|
169 |
$one_logger_count->count,
|
170 |
$one_logger_slug,
|
171 |
esc_html( $logger_info["name"]),
|
172 |
+
esc_html( $logger_info["description"]), // 4
|
173 |
esc_html( $logger_info["capability"]),
|
174 |
+
$loopnum % 2 ? " alt " : "", // 6
|
175 |
+
$html_logger_messages // 7
|
176 |
);
|
177 |
|
178 |
$loopnum++;
|